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 sa...@apache.org on 2006/03/30 05:59:04 UTC

svn commit: r389986 - in /webservices/axis2/trunk/c: modules/core/addr/msg_info_headers.c modules/core/clientapi/call.c modules/core/clientapi/mep_client.c modules/core/deployment/conf_init.c samples/client/addr_echo/echo_client.c

Author: samisa
Date: Wed Mar 29 19:59:03 2006
New Revision: 389986

URL: http://svn.apache.org/viewcvs?rev=389986&view=rev
Log:
Memory leak fixes for client side

Modified:
    webservices/axis2/trunk/c/modules/core/addr/msg_info_headers.c
    webservices/axis2/trunk/c/modules/core/clientapi/call.c
    webservices/axis2/trunk/c/modules/core/clientapi/mep_client.c
    webservices/axis2/trunk/c/modules/core/deployment/conf_init.c
    webservices/axis2/trunk/c/samples/client/addr_echo/echo_client.c

Modified: webservices/axis2/trunk/c/modules/core/addr/msg_info_headers.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/addr/msg_info_headers.c?rev=389986&r1=389985&r2=389986&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/addr/msg_info_headers.c (original)
+++ webservices/axis2/trunk/c/modules/core/addr/msg_info_headers.c Wed Mar 29 19:59:03 2006
@@ -593,6 +593,11 @@
         AXIS2_ENDPOINT_REF_FREE(msg_info_headers_impl->to, env);
         msg_info_headers_impl->to = NULL;
     }
+    if (msg_info_headers_impl->from)
+    {
+        AXIS2_ENDPOINT_REF_FREE(msg_info_headers_impl->from, env);
+        msg_info_headers_impl->from = NULL;
+    }
     if (msg_info_headers_impl->reply_to)
     {
         AXIS2_ENDPOINT_REF_FREE(msg_info_headers_impl->reply_to, env);

Modified: webservices/axis2/trunk/c/modules/core/clientapi/call.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/clientapi/call.c?rev=389986&r1=389985&r2=389986&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/clientapi/call.c (original)
+++ webservices/axis2/trunk/c/modules/core/clientapi/call.c Wed Mar 29 19:59:03 2006
@@ -60,6 +60,8 @@
     axis2_op_t *op_template;
     /** last response message context */
     axis2_msg_ctx_t *last_res_msg_ctx;
+    /* used to hold the service created in assume service */
+    axis2_svc_t *axis_svc_private;
 
 } axis2_call_impl_t;
 
@@ -209,6 +211,7 @@
     call_impl->op_template = NULL;
     call_impl->last_res_msg_ctx = NULL;
     call_impl->svc_ctx = NULL;
+    call_impl->axis_svc_private = NULL;
     
     if(svc_ctx)
     {
@@ -309,11 +312,17 @@
         }
     }    
    
-    if(NULL != call_impl->op_template)
+    if (call_impl->axis_svc_private)
+    {
+        AXIS2_SVC_FREE(call_impl->axis_svc_private, env);
+        call_impl->axis_svc_private = NULL;
+    }
+
+    /*if(NULL != call_impl->op_template)
     {
         AXIS2_OP_FREE(call_impl->op_template, env);
         call_impl->op_template = NULL;
-    } 
+    }*/ 
 
     AXIS2_FREE((*env)->allocator, call_impl);
     call_impl = NULL;
@@ -1304,7 +1313,13 @@
         axis2_phases_info_t *info = NULL;
         
         /* we will assume a Service and operations */
-        axis_svc = axis2_svc_create_with_qname(env, assumed_svc_qname);
+        if (call_impl->axis_svc_private)
+        {
+            AXIS2_SVC_FREE(call_impl->axis_svc_private, env);
+            call_impl->axis_svc_private = NULL;
+        }
+        call_impl->axis_svc_private = axis2_svc_create_with_qname(env, assumed_svc_qname);
+        axis_svc = call_impl->axis_svc_private;
         qtemp_op = axis2_qname_create(env, "TemplateOperation", NULL, NULL);
         call_impl->op_template = axis2_op_create_with_qname(env, qtemp_op);
         AXIS2_OP_SET_MSG_EXCHANGE_PATTERN(call_impl->op_template, env, AXIS2_MEP_URI_OUT_IN);

Modified: webservices/axis2/trunk/c/modules/core/clientapi/mep_client.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/clientapi/mep_client.c?rev=389986&r1=389985&r2=389986&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/clientapi/mep_client.c (original)
+++ webservices/axis2/trunk/c/modules/core/clientapi/mep_client.c Wed Mar 29 19:59:03 2006
@@ -570,6 +570,12 @@
     if (response_envelope) 
     {
         AXIS2_MSG_CTX_SET_SOAP_ENVELOPE(response, env, response_envelope);
+        if (engine)
+        {
+            AXIS2_ENGINE_FREE(engine, env);
+            engine = NULL;
+        }
+                    
         engine = axis2_engine_create(env, conf_ctx);
         if (engine)
         {

Modified: webservices/axis2/trunk/c/modules/core/deployment/conf_init.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/deployment/conf_init.c?rev=389986&r1=389985&r2=389986&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/conf_init.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/conf_init.c Wed Mar 29 19:59:03 2006
@@ -104,6 +104,8 @@
 
     axis2_init_modules(env, conf_ctx);
     axis2_init_transports(env, conf_ctx);
+
+    AXIS2_PHASE_RESOLVER_FREE(phase_resolver, env);
    
     return conf_ctx;
 }

Modified: webservices/axis2/trunk/c/samples/client/addr_echo/echo_client.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/samples/client/addr_echo/echo_client.c?rev=389986&r1=389985&r2=389986&view=diff
==============================================================================
--- webservices/axis2/trunk/c/samples/client/addr_echo/echo_client.c (original)
+++ webservices/axis2/trunk/c/samples/client/addr_echo/echo_client.c Wed Mar 29 19:59:03 2006
@@ -218,6 +218,11 @@
     {
         AXIS2_CALL_FREE(call, &env);
     }
+    if (endpoint_ref)
+    {
+        AXIS2_ENDPOINT_REF_FREE(endpoint_ref, &env);
+        endpoint_ref = NULL;
+    }
     return status;
 }