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/01/27 07:36:19 UTC

svn commit: r372768 - in /webservices/axis2/trunk/c/modules/core: deployment/svc_builder.c description/param_container.c

Author: damitha
Date: Thu Jan 26 22:36:11 2006
New Revision: 372768

URL: http://svn.apache.org/viewcvs?rev=372768&view=rev
Log:
Fixed some memory leaks in svc builder

Modified:
    webservices/axis2/trunk/c/modules/core/deployment/svc_builder.c
    webservices/axis2/trunk/c/modules/core/description/param_container.c

Modified: webservices/axis2/trunk/c/modules/core/deployment/svc_builder.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/deployment/svc_builder.c?rev=372768&r1=372767&r2=372768&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/svc_builder.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/svc_builder.c Thu Jan 26 22:36:11 2006
@@ -266,6 +266,8 @@
     }
     itr = AXIS2_OM_ELEMENT_GET_CHILDREN_WITH_QNAME(svc_element, env, qparamst,
         svc_node);
+    AXIS2_QNAME_FREE(qparamst, env);
+    qparamst = NULL;
     parent = AXIS2_SVC_GET_PARENT(builder_impl->svc, env);
     param_container_l = (axis2_param_container_t *)
         AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(builder_impl->svc->wsdl_svc->
@@ -274,8 +276,6 @@
         itr, param_container_l, parent->param_container);
     if(AXIS2_SUCCESS != status)
     {
-        AXIS2_QNAME_FREE(qparamst, env);
-        qparamst = NULL;
         return AXIS2_FAILURE;
     }
 
@@ -287,6 +287,8 @@
     /*qdesc = axis2_qname_create(env, AXIS2_DESCRIPTION, NULL, NULL);
     desc_element = AXIS2_OM_ELEMENT_GET_FIRST_CHILD_WITH_QNAME(svc_element, env,
         qdesc, svc_node, &desc_node);
+    AXIS2_QNAME_FREE(qdesc, env) ;
+    qdesc = NULL;
     if(NULL != desc_element)
     {
         axis2_om_element_t *desc_value_element = NULL;
@@ -381,6 +383,8 @@
     qmodulest = axis2_qname_create(env, AXIS2_MODULEST, NULL, NULL);
     module_refs = AXIS2_OM_ELEMENT_GET_CHILDREN_WITH_QNAME(svc_element, env,
         qmodulest, svc_node);
+    AXIS2_QNAME_FREE(qmodulest, env) ;
+    qmodulest = NULL;
     status = axis2_svc_builder_process_module_refs(svc_builder, env, module_refs);
     if(AXIS2_SUCCESS != status)
     {
@@ -391,7 +395,8 @@
     qinflowst = axis2_qname_create(env, AXIS2_INFLOWST, NULL, NULL);
     in_flow_element = AXIS2_OM_ELEMENT_GET_FIRST_CHILD_WITH_QNAME(svc_element, 
         env, qinflowst, svc_node, &in_flow_node);
-    
+    AXIS2_QNAME_FREE(qinflowst, env) ;
+    qinflowst = NULL; 
     if(in_flow_element != NULL && NULL != in_flow_node)
     {
         axis2_flow_t *flow = NULL;
@@ -407,6 +412,8 @@
     qoutflowst = axis2_qname_create(env, AXIS2_OUTFLOWST, NULL, NULL);
     out_flow_element = AXIS2_OM_ELEMENT_GET_FIRST_CHILD_WITH_QNAME(svc_element,
         env, qoutflowst, svc_node, &out_flow_node);
+    AXIS2_QNAME_FREE(qoutflowst, env) ;
+    qoutflowst = NULL;
     if(NULL != out_flow_element && NULL != out_flow_node)
     {
         axis2_flow_t *flow = NULL;
@@ -422,6 +429,8 @@
     qin_faultflowst = axis2_qname_create(env, AXIS2_IN_FAILTFLOW, NULL, NULL);
     in_faultflow_element = AXIS2_OM_ELEMENT_GET_FIRST_CHILD_WITH_QNAME(svc_element, 
         env, qin_faultflowst, svc_node, &in_faultflow_node);
+    AXIS2_QNAME_FREE(qin_faultflowst, env) ;
+    qin_faultflowst = NULL;
     
     if(in_faultflow_element != NULL && NULL != in_faultflow_node)
     {
@@ -439,6 +448,8 @@
     qout_faultflowst = axis2_qname_create(env, AXIS2_OUT_FAILTFLOW, NULL, NULL);
     out_faultflow_element = AXIS2_OM_ELEMENT_GET_FIRST_CHILD_WITH_QNAME(svc_element,
         env, qoutflowst, svc_node, &out_faultflow_node);
+    AXIS2_QNAME_FREE(qout_faultflowst, env) ;
+    qout_faultflowst = NULL;
     if(NULL != out_faultflow_element && NULL != out_faultflow_node)
     {
         axis2_flow_t *flow = NULL;
@@ -457,7 +468,8 @@
     qopst = axis2_qname_create(env, AXIS2_OPERATIONST, NULL, NULL);
     operation_itr = AXIS2_OM_ELEMENT_GET_CHILDREN_WITH_QNAME(svc_element, env,
         qopst, svc_node);
-    
+    AXIS2_QNAME_FREE(qopst, env) ;
+    qopst = NULL; 
     ops = axis2_svc_builder_process_ops(svc_builder, env, operation_itr);
     if(ops)
     {
@@ -491,22 +503,15 @@
         }
         AXIS2_SVC_ADD_OP(builder_impl->svc, env, op_desc);   
     }
+    AXIS2_ARRAY_LIST_FREE(ops, env);
     /*
     qmodule_config = axis2_qname_create(env, AXIS2_MODULECONFIG, NULL, NULL);
     module_configs_itr = AXIS2_OM_ELEMENT_GET_CHILDREN_WITH_QNAME(svc_element,
         env, qmodule_config, svc_node);
+    AXIS2_QNAME_FREE(qmodule_config, env) ;
     status = axis2_svc_builder_process_svc_module_conf(svc_builder, env, 
         module_configs_itr, builder_impl->svc->param_container, builder_impl->svc);
     */
-    AXIS2_QNAME_FREE(qparamst, env);
-    /*AXIS2_QNAME_FREE(qdesc, env) ;*/
-    AXIS2_QNAME_FREE(qmodulest, env) ;
-    AXIS2_QNAME_FREE(qinflowst, env) ;
-    AXIS2_QNAME_FREE(qoutflowst, env) ;
-    AXIS2_QNAME_FREE(qin_faultflowst, env) ;
-    AXIS2_QNAME_FREE(qout_faultflowst, env) ;
-    AXIS2_QNAME_FREE(qopst, env) ;
-    /*AXIS2_QNAME_FREE(qmodule_config, env) ; */
     return status;
 }
 
@@ -534,7 +539,6 @@
         axis2_qname_t *qparamst = NULL;
         axis2_qname_t *qmsgrecv = NULL;
         axis2_qname_t *qmodulest = NULL;
-        /*axis2_qname_t *qmodule_config = NULL;*/
         axis2_qname_t *qattname = NULL;
         axis2_char_t *mep_url = NULL;
         axis2_char_t *op_name = NULL;
@@ -551,6 +555,8 @@
         op_element = AXIS2_OM_NODE_GET_DATA_ELEMENT(op_node, env);
         qattname = axis2_qname_create(env, AXIS2_ATTNAME, NULL, NULL);
         op_name_att = AXIS2_OM_ELEMENT_GET_ATTRIBUTE(op_element, env, qattname);
+        AXIS2_QNAME_FREE(qattname, env);
+        qattname = NULL;
         if(NULL == op_name_att)
         {
             AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_OPERATION_NAME_MISSING,
@@ -560,6 +566,8 @@
         /* set the mep of the operation */
         qmep = axis2_qname_create(env, AXIS2_MEP, NULL, NULL);
         op_mep_att = AXIS2_OM_ELEMENT_GET_ATTRIBUTE(op_element, env, qmep);
+        AXIS2_QNAME_FREE(qmep, env);
+        qmep = NULL;
         if(NULL != op_mep_att)
         {
             mep_url = AXIS2_OM_ATTRIBUTE_GET_VALUE(op_mep_att, env);
@@ -571,7 +579,6 @@
         }
         op_name = AXIS2_OM_ATTRIBUTE_GET_VALUE(op_name_att, env);
         qopname = axis2_qname_create(env, op_name, NULL, NULL);
-        
         wsdl_op = AXIS2_SVC_GET_WSDL_OP(builder_impl->svc, env, qopname);
         if(NULL == wsdl_op)
         {
@@ -606,10 +613,14 @@
                 AXIS2_OP_SET_WSDL_OP(op_desc, env, wsdl_op);
             } 
         }
+        AXIS2_QNAME_FREE(qopname, env);
+        qopname = NULL;
         /* operation parameters */
         qparamst = axis2_qname_create(env, AXIS2_PARAMETERST, NULL, NULL);
         params_itr = AXIS2_OM_ELEMENT_GET_CHILDREN_WITH_QNAME(op_element, env,
             qparamst, op_node);
+        AXIS2_QNAME_FREE(qparamst, env);
+        qparamst = NULL;
         status = AXIS2_DESC_BUILDER_PROCESS_PARAMS(svc_builder->desc_builder, 
             env, params_itr, op_desc->param_container, builder_impl->svc->
                 param_container);        
@@ -618,6 +629,8 @@
         qmsgrecv = axis2_qname_create(env, AXIS2_MESSAGERECEIVER, NULL, NULL);
         recv_element = AXIS2_OM_ELEMENT_GET_FIRST_CHILD_WITH_QNAME(op_element, 
             env, qmsgrecv, op_node, &recv_node);
+        AXIS2_QNAME_FREE(qmsgrecv, env);
+        qmsgrecv = NULL;
         if(NULL != recv_element && NULL != recv_node)
         {
             axis2_msg_recv_t *msg_recv = NULL;
@@ -638,6 +651,8 @@
         qmodulest = axis2_qname_create(env, AXIS2_MODULEST, NULL, NULL);
         module_itr = AXIS2_OM_ELEMENT_GET_CHILDREN_WITH_QNAME(op_element, env,
             qmodulest, op_node);
+        AXIS2_QNAME_FREE(qmodulest, env);
+        qmodulest = NULL;
         status = AXIS2_DESC_BUILDER_PROCESS_OP_MODULE_REFS(svc_builder->
             desc_builder, env, module_itr, op_desc);
         if(AXIS2_SUCCESS != status)
@@ -653,15 +668,7 @@
         }
         
         /* adding operation */
-        status = AXIS2_ARRAY_LIST_ADD(ops, env, op_desc);
-        
-        AXIS2_QNAME_FREE(qmep, env);
-        AXIS2_QNAME_FREE(qopname, env);
-        AXIS2_QNAME_FREE(qparamst, env);
-        AXIS2_QNAME_FREE(qmsgrecv, env);
-        AXIS2_QNAME_FREE(qmodulest, env);
-        /*AXIS2_QNAME_FREE(qmodule_config, env);*/
-        AXIS2_QNAME_FREE(qattname, env);
+        status = AXIS2_ARRAY_LIST_ADD(ops, env, op_desc); 
     }
     return ops;
 }
@@ -687,6 +694,8 @@
         qattname = axis2_qname_create(env, AXIS2_ATTNAME, NULL, NULL);
         module_name_att = AXIS2_OM_ELEMENT_GET_ATTRIBUTE(module_conf_element,
             env, qattname);
+        AXIS2_QNAME_FREE(qattname, env);
+        qattname = NULL;
         if(NULL == module_name_att)
         {
             AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_INVALID_MODULE_CONF,
@@ -722,6 +731,8 @@
         qref = axis2_qname_create(env, AXIS2_REF, NULL, NULL);
         module_ref_att = AXIS2_OM_ELEMENT_GET_ATTRIBUTE(module_ref_element,
             env, qref);
+        AXIS2_QNAME_FREE(qref, env);
+        qref = NULL;
         if(NULL != module_ref_att)
         {
             axis2_char_t *ref_name = NULL;
@@ -740,6 +751,8 @@
             {
                 AXIS2_SVC_ADD_MODULE_REF(builder_impl->svc, env, qrefname);
             }
+            AXIS2_QNAME_FREE(qrefname, env);
+            qrefname = NULL;
         }
     }
     return AXIS2_SUCCESS;

Modified: webservices/axis2/trunk/c/modules/core/description/param_container.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/description/param_container.c?rev=372768&r1=372767&r2=372768&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/description/param_container.c (original)
+++ webservices/axis2/trunk/c/modules/core/description/param_container.c Thu Jan 26 22:36:11 2006
@@ -127,15 +127,15 @@
         for (hi = axis2_hash_first (param_container_impl->params, env); hi;
                  hi = axis2_hash_next ( env, hi))
         {
-            struct axis2_param *param = NULL;
+            axis2_param_t *param = NULL;
             axis2_hash_this (hi, NULL, NULL, &val);
-            param = (struct axis2_param *) val;
+            param = (axis2_param_t *) val;
             if (param)
-               AXIS2_PARAM_FREE (param, env);
-            
+            {
+                AXIS2_PARAM_FREE (param, env);
+                param = NULL;
+            }
             val = NULL;
-            param = NULL;
-               
         }
 		axis2_hash_free(param_container_impl->params, env);
     }