You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by da...@apache.org on 2006/03/03 08:17:57 UTC

svn commit: r382700 - in /webservices/axis2/trunk/c/modules/core: deployment/arch_file_data.c description/svc_grp.c

Author: damitha
Date: Thu Mar  2 23:17:54 2006
New Revision: 382700

URL: http://svn.apache.org/viewcvs?rev=382700&view=rev
Log:
Now services are freed by arch_file_data instead of service group.
Otherwise there will be leaks in exception flows

Modified:
    webservices/axis2/trunk/c/modules/core/deployment/arch_file_data.c
    webservices/axis2/trunk/c/modules/core/description/svc_grp.c

Modified: webservices/axis2/trunk/c/modules/core/deployment/arch_file_data.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/deployment/arch_file_data.c?rev=382700&r1=382699&r2=382700&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/arch_file_data.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/arch_file_data.c Thu Mar  2 23:17:54 2006
@@ -274,6 +274,22 @@
     
     if(file_data_impl->svc_map)
     {
+        axis2_hash_index_t *hi = NULL;
+        void *val = NULL;
+
+        for (hi = axis2_hash_first (file_data_impl->svc_map, env); hi;
+                 hi = axis2_hash_next ( env, hi))
+        {
+            axis2_svc_t *svc = NULL;
+            axis2_hash_this (hi, NULL, NULL, &val);
+            svc = (axis2_svc_t *) val;
+            if (svc)
+            {
+                AXIS2_SVC_FREE (svc, env);
+                svc = NULL;
+            }
+            val = NULL;
+        }
         axis2_hash_free(file_data_impl->svc_map, env);
         file_data_impl->svc_map = NULL;        
     }

Modified: webservices/axis2/trunk/c/modules/core/description/svc_grp.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/description/svc_grp.c?rev=382700&r1=382699&r2=382700&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/description/svc_grp.c (original)
+++ webservices/axis2/trunk/c/modules/core/description/svc_grp.c Thu Mar  2 23:17:54 2006
@@ -275,22 +275,7 @@
     
     if(NULL != svc_grp_impl->svcs)
     {
-        axis2_hash_index_t *hi = NULL;
-        void *val = NULL;
-        for (hi = axis2_hash_first (svc_grp_impl->svcs, env); hi;
-                 hi = axis2_hash_next ( env, hi))
-        {
-            axis2_svc_t *svc = NULL;
-            axis2_hash_this (hi, NULL, NULL, &val);
-            svc = (axis2_svc_t *) val;
-            if (svc)
-            {
-                AXIS2_SVC_FREE (svc, env);
-                svc = NULL;
-            }
-            val = NULL;
-               
-        }
+        /* Services are freed by arch_file_data */
         axis2_hash_free(svc_grp_impl->svcs, env);
         svc_grp_impl->svcs = NULL;
     }