You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by da...@apache.org on 2006/02/23 07:29:14 UTC

svn commit: r380048 - in /webservices/axis2/trunk/c/modules/core: deployment/conf_builder.c deployment/dep_engine.c description/op.c engine/conf.c phaseresolver/phase_holder.c phaseresolver/phase_resolver.c

Author: damitha
Date: Wed Feb 22 22:29:08 2006
New Revision: 380048

URL: http://svn.apache.org/viewcvs?rev=380048&view=rev
Log:
More memory leak fixes

Modified:
    webservices/axis2/trunk/c/modules/core/deployment/conf_builder.c
    webservices/axis2/trunk/c/modules/core/deployment/dep_engine.c
    webservices/axis2/trunk/c/modules/core/description/op.c
    webservices/axis2/trunk/c/modules/core/engine/conf.c
    webservices/axis2/trunk/c/modules/core/phaseresolver/phase_holder.c
    webservices/axis2/trunk/c/modules/core/phaseresolver/phase_resolver.c

Modified: webservices/axis2/trunk/c/modules/core/deployment/conf_builder.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/deployment/conf_builder.c?rev=380048&r1=380047&r2=380048&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/conf_builder.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/conf_builder.c Wed Feb 22 22:29:08 2006
@@ -556,6 +556,7 @@
     axis2_om_children_qname_iterator_t *phases = NULL;
     axis2_qname_t *qphase = NULL;
     axis2_om_element_t *phase_orders_element;
+    axis2_status_t status = AXIS2_FAILURE;
     
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK((*env)->error, phase_orders_node, AXIS2_FAILURE);
@@ -574,6 +575,11 @@
     phases = AXIS2_OM_ELEMENT_GET_CHILDREN_WITH_QNAME(phase_orders_element, env,
         qphase, phase_orders_node);
     AXIS2_QNAME_FREE(qphase, env);
+    if(!phases)
+    {
+        AXIS2_ARRAY_LIST_FREE(phase_list, env);
+        return NULL;
+    }
     
     while (AXIS2_TRUE == AXIS2_OM_CHILDREN_QNAME_ITERATOR_HAS_NEXT(phases, env))
     {

Modified: webservices/axis2/trunk/c/modules/core/deployment/dep_engine.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/deployment/dep_engine.c?rev=380048&r1=380047&r2=380048&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/dep_engine.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/dep_engine.c Wed Feb 22 22:29:08 2006
@@ -492,6 +492,12 @@
         engine_impl->curr_file = NULL;
     }
     
+    if(engine_impl->phases_info)
+    {
+        AXIS2_PHASES_INFO_FREE(engine_impl->phases_info, env);
+        engine_impl->phases_info = NULL;
+    }
+    
     if(engine_impl->conf_builder)
     {
         AXIS2_CONF_BUILDER_FREE(engine_impl->conf_builder, env);

Modified: webservices/axis2/trunk/c/modules/core/description/op.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/description/op.c?rev=380048&r1=380047&r2=380048&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/description/op.c (original)
+++ webservices/axis2/trunk/c/modules/core/description/op.c Wed Feb 22 22:29:08 2006
@@ -455,28 +455,6 @@
     }
     message_out = NULL;
     
-    /*op_impl->phases_in_fault_flow = axis2_array_list_create(env, 0);
-    if(NULL == op_impl->phases_in_fault_flow)
-    {
-        axis2_op_free(&(op_impl->op), env);
-        return NULL;
-    }
-     
-    op_impl->phases_out_fault_flow = axis2_array_list_create(env, 0);
-    if(NULL == op_impl->phases_out_fault_flow)
-    {
-        axis2_op_free(&(op_impl->op), env);
-        return NULL;
-    }*/
-    /*
-    op_impl->modulerefs = axis2_array_list_create(env, 0);
-    if(NULL == op_impl->modulerefs)
-    {
-        axis2_op_free(&(op_impl->op), env);
-        return NULL;
-    }
-    */
-    
     axis2_op_set_msg_exchange_pattern(&(op_impl->op), env, 
         (axis2_char_t *) AXIS2_MEP_URI_IN_OUT);
     
@@ -695,6 +673,7 @@
             }
       
         }
+   
         AXIS2_ARRAY_LIST_FREE(op_impl->remaining_phases_inflow, env);
         op_impl->remaining_phases_inflow = NULL;
     }

Modified: webservices/axis2/trunk/c/modules/core/engine/conf.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/engine/conf.c?rev=380048&r1=380047&r2=380048&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/engine/conf.c (original)
+++ webservices/axis2/trunk/c/modules/core/engine/conf.c Wed Feb 22 22:29:08 2006
@@ -414,7 +414,7 @@
         }
     }
     
-    config_impl->out_phases = axis2_array_list_create(env, 0);		
+    /*config_impl->out_phases = axis2_array_list_create(env, 0);		
 	if(NULL == config_impl->out_phases)
 	{
         axis2_conf_free(&(config_impl->conf), env);
@@ -436,7 +436,7 @@
         axis2_conf_free(&(config_impl->conf), env);
 		AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
         return NULL;
-	}
+	}*/
 	
     config_impl->all_svcs = axis2_hash_make(env);
     if(NULL == config_impl->all_svcs)

Modified: webservices/axis2/trunk/c/modules/core/phaseresolver/phase_holder.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/phaseresolver/phase_holder.c?rev=380048&r1=380047&r2=380048&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/phaseresolver/phase_holder.c (original)
+++ webservices/axis2/trunk/c/modules/core/phaseresolver/phase_holder.c Wed Feb 22 22:29:08 2006
@@ -128,16 +128,18 @@
     
     phase_holder_impl = AXIS2_INTF_TO_IMPL(phase_holder);
    
-	if(NULL != phase_holder->ops)
-    {
-        AXIS2_FREE((*env)->allocator, phase_holder->ops);
-        phase_holder->ops = NULL;
-    }
-    if(NULL != phase_holder_impl->phase_list)
+    /*if(NULL != phase_holder_impl->phase_list)
     {
         AXIS2_ARRAY_LIST_FREE(phase_holder_impl->phase_list, env);
         phase_holder_impl->phase_list = NULL;
+    }*/
+	
+    if(NULL != phase_holder->ops)
+    {
+        AXIS2_FREE((*env)->allocator, phase_holder->ops);
+        phase_holder->ops = NULL;
     }
+
     if(phase_holder_impl)
     {
         AXIS2_FREE((*env)->allocator, phase_holder_impl);

Modified: webservices/axis2/trunk/c/modules/core/phaseresolver/phase_resolver.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/phaseresolver/phase_resolver.c?rev=380048&r1=380047&r2=380048&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/phaseresolver/phase_resolver.c (original)
+++ webservices/axis2/trunk/c/modules/core/phaseresolver/phase_resolver.c Wed Feb 22 22:29:08 2006
@@ -249,22 +249,23 @@
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     
     phase_resolver_impl = AXIS2_INTF_TO_IMPL(phase_resolver);
-    
-	if(NULL != phase_resolver->ops)
-    {
-        AXIS2_FREE((*env)->allocator, phase_resolver->ops);
-        phase_resolver->ops = NULL;
-    }
-    
+     
     phase_resolver_impl->axis2_config = NULL;
     
     phase_resolver_impl->svc = NULL;
     
-    if(NULL != phase_resolver_impl->phase_holder)
+    if(phase_resolver_impl->phase_holder)
     {
         AXIS2_PHASE_HOLDER_FREE(phase_resolver_impl->phase_holder, env);
         phase_resolver_impl->phase_holder = NULL;
     }
+	
+    if(phase_resolver->ops)
+    {
+        AXIS2_FREE((*env)->allocator, phase_resolver->ops);
+        phase_resolver->ops = NULL;
+    }
+
     if(phase_resolver_impl)
     {
         AXIS2_FREE((*env)->allocator, phase_resolver_impl);
@@ -1299,8 +1300,14 @@
                 phase_list = 
                     AXIS2_CONF_GET_IN_PHASES_UPTO_AND_INCLUDING_POST_DISPATCH(
                         resolver_impl->axis2_config, env);
+                if(resolver_impl->phase_holder)
+                {
+                    AXIS2_PHASE_HOLDER_FREE(resolver_impl->phase_holder, env);
+                    resolver_impl->phase_holder = NULL;
+                } 
                 resolver_impl->phase_holder = 
                     axis2_phase_holder_create_with_phases(env, phase_list);
+                if(!resolver_impl->phase_holder) continue;
                 break;
             }
             case AXIS2_OUTFLOW:
@@ -1309,8 +1316,14 @@
 
                 phase_list = AXIS2_CONF_GET_OUTFLOW(resolver_impl->axis2_config,
                         env);
+                if(resolver_impl->phase_holder)
+                {
+                    AXIS2_PHASE_HOLDER_FREE(resolver_impl->phase_holder, env);
+                    resolver_impl->phase_holder = NULL;
+                } 
                 resolver_impl->phase_holder = 
                     axis2_phase_holder_create_with_phases(env, phase_list);
+                if(!resolver_impl->phase_holder) continue;
                 break;
             }
             case AXIS2_FAULT_INFLOW:
@@ -1319,8 +1332,14 @@
 
                 phase_list = AXIS2_CONF_GET_IN_FAULT_FLOW(resolver_impl->
                     axis2_config, env);
+                if(resolver_impl->phase_holder)
+                {
+                    AXIS2_PHASE_HOLDER_FREE(resolver_impl->phase_holder, env);
+                    resolver_impl->phase_holder = NULL;
+                } 
                 resolver_impl->phase_holder = 
                     axis2_phase_holder_create_with_phases(env, phase_list);
+                if(!resolver_impl->phase_holder) continue;
                 break;
             }
             case AXIS2_FAULT_OUTFLOW:
@@ -1329,8 +1348,14 @@
 
                 phase_list = AXIS2_CONF_GET_OUT_FAULT_FLOW(resolver_impl->
                     axis2_config, env);
+                if(resolver_impl->phase_holder)
+                {
+                    AXIS2_PHASE_HOLDER_FREE(resolver_impl->phase_holder, env);
+                    resolver_impl->phase_holder = NULL;
+                } 
                 resolver_impl->phase_holder = 
                     axis2_phase_holder_create_with_phases(env, phase_list);
+                if(!resolver_impl->phase_holder) continue;
                 break;
             }
         }