From 6a4307a3703b0a19abe728266deea5381145dadb Mon Sep 17 00:00:00 2001 From: shankar Date: Mon, 5 Apr 2010 05:59:47 +0000 Subject: Fixing memory leaks git-svn-id: http://svn.apache.org/repos/asf/axis/axis2/c/core/trunk@930802 13f79535-47bb-0310-9956-ffa450edef68 --- axiom/src/attachments/mime_parser.c | 5 ++++ axiom/src/soap/soap_envelope.c | 2 ++ build/win32/makefile | 34 ++++++++++++++-------------- samples/client/echo/echo.c | 11 ++++----- samples/server/echo/echo.c | 11 ++++----- samples/server/math/math.c | 17 +++++++------- samples/server/mtom/mtom.c | 12 ++++------ samples/user_guide/clients/echo_util.c | 15 ++++++------ src/core/receivers/raw_xml_in_out_msg_recv.c | 1 + src/modules/mod_addr/addr_out_handler.c | 5 ++++ util/src/thread_pool.c | 5 +++- 11 files changed, 61 insertions(+), 57 deletions(-) diff --git a/axiom/src/attachments/mime_parser.c b/axiom/src/attachments/mime_parser.c index f36286c..9da9c9f 100644 --- a/axiom/src/attachments/mime_parser.c +++ b/axiom/src/attachments/mime_parser.c @@ -297,6 +297,11 @@ axiom_mime_parser_free( mime_parser->len_array = NULL; } + if(mime_parser->mime_boundary) + { + AXIS2_FREE(env->allocator, mime_parser->mime_boundary); + } + if(mime_parser) { AXIS2_FREE(env->allocator, mime_parser); diff --git a/axiom/src/soap/soap_envelope.c b/axiom/src/soap/soap_envelope.c index 48e10f7..390d4a4 100644 --- a/axiom/src/soap/soap_envelope.c +++ b/axiom/src/soap/soap_envelope.c @@ -433,6 +433,7 @@ axiom_soap_envelope_create_default_soap_envelope( return NULL; } soap_envelope = axiom_soap_envelope_create(env, om_ns); + axiom_namespace_free(om_ns, env); soap_header = axiom_soap_header_create_with_parent(env, soap_envelope); soap_body = axiom_soap_body_create_with_parent(env, soap_envelope); @@ -449,6 +450,7 @@ axiom_soap_envelope_create_default_soap_envelope( return NULL; } soap_envelope = axiom_soap_envelope_create(env, om_ns); + axiom_namespace_free(om_ns, env); soap_header = axiom_soap_header_create_with_parent(env, soap_envelope); soap_body = axiom_soap_body_create_with_parent(env, soap_envelope); diff --git a/build/win32/makefile b/build/win32/makefile index eb4d398..4913921 100644 --- a/build/win32/makefile +++ b/build/win32/makefile @@ -1160,7 +1160,7 @@ AXIS2_SAMPLES_BIN = $(AXIS2_BINDIR)\samples\bin $(AXIS2_SAMPLES_BIN)\math.exe : $(CC) $(CFLAGS) $(AXIS2_SOURCE_DIR)\samples\client\math\*.c /Fo$(AXIS2_INTDIR_CLI)\math\ /c - $(LD) $(LDFLAGS) $(AXIS2_INTDIR_CLI)\math\*.obj $(AXUTIL).lib $(AXIOM).lib \ + $(LD) $(LDFLAGS) /FIXED:No $(AXIS2_INTDIR_CLI)\math\*.obj $(AXUTIL).lib $(AXIOM).lib \ $(AXIS2_PARSER).lib $(LIBS) $(AXIS2_ENGINE).lib /OUT:$(AXIS2_SAMPLES_BIN)\math.exe -@$(_VC_MANIFEST_EMBED_EXE) @@ -1168,7 +1168,7 @@ axis2_client_math: $(AXIS2_SAMPLES_BIN)\math.exe $(AXIS2_SAMPLES_BIN)\echo.exe : $(CC) $(CFLAGS) $(AXIS2_SOURCE_DIR)\samples\client\echo\echo.c /Fo$(AXIS2_INTDIR_CLI)\echo\ /c - $(LD) $(LDFLAGS) $(AXIS2_INTDIR_CLI)\echo\*.obj $(AXUTIL).lib $(AXIOM).lib \ + $(LD) $(LDFLAGS) /FIXED:No $(AXIS2_INTDIR_CLI)\echo\*.obj $(AXUTIL).lib $(AXIOM).lib \ $(AXIS2_PARSER).lib $(LIBS) $(AXIS2_ENGINE).lib /OUT:$(AXIS2_SAMPLES_BIN)\echo.exe -@$(_VC_MANIFEST_EMBED_EXE) @@ -1176,7 +1176,7 @@ axis2_client_echo: $(AXIS2_SAMPLES_BIN)\echo.exe $(AXIS2_SAMPLES_BIN)\google.exe : $(CC) $(CFLAGS) $(AXIS2_SOURCE_DIR)\samples\client\google\*.c /Fo$(AXIS2_INTDIR_CLI)\gslc\ /c - $(LD) $(LDFLAGS) $(AXIS2_INTDIR_CLI)\gslc\*.obj $(AXUTIL).lib $(AXIOM).lib \ + $(LD) $(LDFLAGS) /FIXED:No $(AXIS2_INTDIR_CLI)\gslc\*.obj $(AXUTIL).lib $(AXIOM).lib \ $(AXIS2_PARSER).lib $(LIBS) $(AXIS2_ENGINE).lib /OUT:$(AXIS2_SAMPLES_BIN)\google.exe -@$(_VC_MANIFEST_EMBED_EXE) @@ -1184,7 +1184,7 @@ axis2_client_google_spell : $(AXIS2_SAMPLES_BIN)\google.exe $(AXIS2_SAMPLES_BIN)\yahoo.exe : $(CC) $(CFLAGS) $(AXIS2_SOURCE_DIR)\samples\client\yahoo\*.c /Fo$(AXIS2_INTDIR_CLI)\yahoo\ /c - $(LD) $(LDFLAGS) $(AXIS2_INTDIR_CLI)\yahoo\*.obj $(AXUTIL).lib $(AXIOM).lib $(AXIS2_PARSER).lib $(LIBS) \ + $(LD) $(LDFLAGS) /FIXED:No $(AXIS2_INTDIR_CLI)\yahoo\*.obj $(AXUTIL).lib $(AXIOM).lib $(AXIS2_PARSER).lib $(LIBS) \ $(AXIS2_ENGINE).lib /OUT:$(AXIS2_SAMPLES_BIN)\yahoo.exe -@$(_VC_MANIFEST_EMBED_EXE) @@ -1192,7 +1192,7 @@ axis2_client_yahoo: $(AXIS2_SAMPLES_BIN)\yahoo.exe $(AXIS2_SAMPLES_BIN)\notify.exe : $(CC) $(CFLAGS) $(AXIS2_SOURCE_DIR)\samples\client\notify\*.c /Fo$(AXIS2_INTDIR_CLI)\notify\ /c - $(LD) $(LDFLAGS) $(AXIS2_INTDIR_CLI)\notify\*.obj $(AXUTIL).lib $(AXIOM).lib $(AXIS2_PARSER).lib $(LIBS) \ + $(LD) $(LDFLAGS) /FIXED:No $(AXIS2_INTDIR_CLI)\notify\*.obj $(AXUTIL).lib $(AXIOM).lib $(AXIS2_PARSER).lib $(LIBS) \ $(AXIS2_ENGINE).lib /OUT:$(AXIS2_SAMPLES_BIN)\notify.exe -@$(_VC_MANIFEST_EMBED_EXE) @@ -1201,7 +1201,7 @@ axis2_client_notify: $(AXIS2_SAMPLES_BIN)\notify.exe $(AXIS2_SAMPLES_BIN)\mtom.exe : $(CC) $(CFLAGS) $(AXIS2_SOURCE_DIR)\samples\client\mtom\*.c /Fo$(AXIS2_INTDIR_CLI)\mtom\ /c - $(LD) $(LDFLAGS) $(AXIS2_INTDIR_CLI)\mtom\*.obj $(AXUTIL).lib $(AXIOM).lib $(AXIS2_PARSER).lib $(LIBS) \ + $(LD) $(LDFLAGS) /FIXED:No $(AXIS2_INTDIR_CLI)\mtom\*.obj $(AXUTIL).lib $(AXIOM).lib $(AXIS2_PARSER).lib $(LIBS) \ $(AXIS2_ENGINE).lib /OUT:$(AXIS2_SAMPLES_BIN)\mtom.exe -@$(_VC_MANIFEST_EMBED_EXE) @@ -1212,7 +1212,7 @@ axis2_client_mtom: $(AXIS2_SAMPLES_BIN)\mtom.exe $(AXIS2_SAMPLES_BIN)\mtom_callback.exe : $(CC) $(CFLAGS) $(AXIS2_SOURCE_DIR)\samples\client\mtom_callback\*.c /Fo$(AXIS2_INTDIR_CLI)\mtom_callback\ /c - $(LD) $(LDFLAGS) $(AXIS2_INTDIR_CLI)\mtom_callback\*.obj $(AXUTIL).lib $(AXIOM).lib $(AXIS2_PARSER).lib $(LIBS) \ + $(LD) $(LDFLAGS) /FIXED:No $(AXIS2_INTDIR_CLI)\mtom_callback\*.obj $(AXUTIL).lib $(AXIOM).lib $(AXIS2_PARSER).lib $(LIBS) \ $(AXIS2_ENGINE).lib /OUT:$(AXIS2_SAMPLES_BIN)\mtom_callback.exe -@$(_VC_MANIFEST_EMBED_EXE) @@ -1231,14 +1231,14 @@ axis2_client_userguide_int: $(AXIS2_SAMPLES_BIN)\echo_blocking.exe : $(CC) $(CFLAGS) $(AXIS2_SOURCE_DIR)\samples\user_guide\clients\echo_blocking.c \ $(AXIS2_SOURCE_DIR)\samples\user_guide\clients\echo_util.c /Fo$(AXIS2_INTDIR)\userguide\echo_blocking\ /c - $(LD) $(LDFLAGS) $(AXIS2_INTDIR)\userguide\echo_blocking\*.obj $(AXUTIL).lib \ + $(LD) $(LDFLAGS) /FIXED:No $(AXIS2_INTDIR)\userguide\echo_blocking\*.obj $(AXUTIL).lib \ $(AXIOM).lib $(AXIS2_PARSER).lib $(LIBS) $(AXIS2_ENGINE).lib /OUT:$(AXIS2_SAMPLES_BIN)\echo_blocking.exe -@$(_VC_MANIFEST_EMBED_EXE) $(AXIS2_SAMPLES_BIN)\echo_non_blocking.exe : $(CC) $(CFLAGS) $(AXIS2_SOURCE_DIR)\samples\user_guide\clients\echo_non_blocking.c \ $(AXIS2_SOURCE_DIR)\samples\user_guide\clients\echo_util.c /Fo$(AXIS2_INTDIR)\userguide\echo_non_blocking\ /c - $(LD) $(LDFLAGS) $(AXIS2_INTDIR)\userguide\echo_non_blocking\*.obj $(AXUTIL).lib \ + $(LD) $(LDFLAGS) /FIXED:No $(AXIS2_INTDIR)\userguide\echo_non_blocking\*.obj $(AXUTIL).lib \ $(AXIOM).lib $(AXIS2_PARSER).lib $(LIBS) $(AXIS2_ENGINE).lib \ /OUT:$(AXIS2_SAMPLES_BIN)\echo_non_blocking.exe -@$(_VC_MANIFEST_EMBED_EXE) @@ -1246,7 +1246,7 @@ $(AXIS2_SAMPLES_BIN)\echo_non_blocking.exe : $(AXIS2_SAMPLES_BIN)\echo_blocking_addr.exe : $(CC) $(CFLAGS) $(AXIS2_SOURCE_DIR)\samples\user_guide\clients\echo_blocking_addr.c \ $(AXIS2_SOURCE_DIR)\samples\user_guide\clients\echo_util.c /Fo$(AXIS2_INTDIR)\userguide\echo_blocking_addr\ /c - $(LD) $(LDFLAGS) $(AXIS2_INTDIR)\userguide\echo_blocking_addr\*.obj $(AXUTIL).lib \ + $(LD) $(LDFLAGS) /FIXED:No $(AXIS2_INTDIR)\userguide\echo_blocking_addr\*.obj $(AXUTIL).lib \ $(AXIOM).lib $(AXIS2_PARSER).lib $(LIBS) $(AXIS2_ENGINE).lib \ /OUT:$(AXIS2_SAMPLES_BIN)\echo_blocking_addr.exe -@$(_VC_MANIFEST_EMBED_EXE) @@ -1254,7 +1254,7 @@ $(AXIS2_SAMPLES_BIN)\echo_blocking_addr.exe : $(AXIS2_SAMPLES_BIN)\echo_rest.exe : $(CC) $(CFLAGS) $(AXIS2_SOURCE_DIR)\samples\user_guide\clients\echo_rest.c \ $(AXIS2_SOURCE_DIR)\samples\user_guide\clients\echo_util.c /Fo$(AXIS2_INTDIR)\userguide\echo_rest\ /c - $(LD) $(LDFLAGS) $(AXIS2_INTDIR)\userguide\echo_rest\*.obj $(AXUTIL).lib \ + $(LD) $(LDFLAGS) /FIXED:No $(AXIS2_INTDIR)\userguide\echo_rest\*.obj $(AXUTIL).lib \ $(AXIOM).lib $(AXIS2_PARSER).lib $(LIBS) $(AXIS2_ENGINE).lib \ /OUT:$(AXIS2_SAMPLES_BIN)\echo_rest.exe -@$(_VC_MANIFEST_EMBED_EXE) @@ -1262,14 +1262,14 @@ $(AXIS2_SAMPLES_BIN)\echo_rest.exe : $(AXIS2_SAMPLES_BIN)\echo_blocking_dual.exe : $(CC) $(CFLAGS) $(AXIS2_SOURCE_DIR)\samples\user_guide\clients\echo_blocking_dual.c \ $(AXIS2_SOURCE_DIR)\samples\user_guide\clients\echo_util.c /Fo$(AXIS2_INTDIR)\userguide\echo_blocking_dual\ /c - $(LD) $(LDFLAGS) $(AXIS2_INTDIR)\userguide\echo_blocking_dual\*.obj $(AXUTIL).lib \ + $(LD) $(LDFLAGS) /FIXED:No $(AXIS2_INTDIR)\userguide\echo_blocking_dual\*.obj $(AXUTIL).lib \ $(AXIOM).lib $(AXIS2_PARSER).lib $(LIBS) $(AXIS2_ENGINE).lib /OUT:$(AXIS2_SAMPLES_BIN)\echo_blocking_dual.exe -@$(_VC_MANIFEST_EMBED_EXE) $(AXIS2_SAMPLES_BIN)\echo_non_blocking_dual.exe : $(CC) $(CFLAGS) $(AXIS2_SOURCE_DIR)\samples\user_guide\clients\echo_non_blocking_dual.c \ $(AXIS2_SOURCE_DIR)\samples\user_guide\clients\echo_util.c /Fo$(AXIS2_INTDIR)\userguide\echo_non_blocking_dual\ /c - $(LD) $(LDFLAGS) $(AXIS2_INTDIR)\userguide\echo_non_blocking_dual\*.obj $(AXUTIL).lib \ + $(LD) $(LDFLAGS) /FIXED:No $(AXIS2_INTDIR)\userguide\echo_non_blocking_dual\*.obj $(AXUTIL).lib \ $(AXIOM).lib $(AXIS2_PARSER).lib $(LIBS) $(AXIS2_ENGINE).lib \ /OUT:$(AXIS2_SAMPLES_BIN)\echo_non_blocking_dual.exe -@$(_VC_MANIFEST_EMBED_EXE) @@ -1277,7 +1277,7 @@ $(AXIS2_SAMPLES_BIN)\echo_non_blocking_dual.exe : $(AXIS2_SAMPLES_BIN)\echo_blocking_soap11.exe : $(CC) $(CFLAGS) $(AXIS2_SOURCE_DIR)\samples\user_guide\clients\echo_blocking_soap11.c \ $(AXIS2_SOURCE_DIR)\samples\user_guide\clients\echo_util.c /Fo$(AXIS2_INTDIR)\userguide\echo_blocking_soap11\ /c - $(LD) $(LDFLAGS) $(AXIS2_INTDIR)\userguide\echo_blocking_soap11\*.obj $(AXUTIL).lib \ + $(LD) $(LDFLAGS) /FIXED:No $(AXIS2_INTDIR)\userguide\echo_blocking_soap11\*.obj $(AXUTIL).lib \ $(AXIOM).lib $(AXIS2_PARSER).lib $(LIBS) \ $(AXIS2_ENGINE).lib /OUT:$(AXIS2_SAMPLES_BIN)\echo_blocking_soap11.exe -@$(_VC_MANIFEST_EMBED_EXE) @@ -1286,7 +1286,7 @@ $(AXIS2_SAMPLES_BIN)\echo_blocking_soap11.exe : $(AXIS2_SAMPLES_BIN)\echo_blocking_auth.exe : $(CC) $(CFLAGS) $(AXIS2_SOURCE_DIR)\samples\user_guide\clients\echo_blocking_auth.c \ $(AXIS2_SOURCE_DIR)\samples\user_guide\clients\echo_util.c /Fo$(AXIS2_INTDIR)\userguide\echo_blocking_auth\ /c - $(LD) $(LDFLAGS) $(AXIS2_INTDIR)\userguide\echo_blocking_auth\*.obj $(AXUTIL).lib \ + $(LD) $(LDFLAGS) /FIXED:No $(AXIS2_INTDIR)\userguide\echo_blocking_auth\*.obj $(AXUTIL).lib \ $(AXIOM).lib $(AXIS2_PARSER).lib $(LIBS) \ $(AXIS2_ENGINE).lib /OUT:$(AXIS2_SAMPLES_BIN)\echo_blocking_auth.exe -@$(_VC_MANIFEST_EMBED_EXE) @@ -1310,7 +1310,7 @@ $(MTOM_SENDING_CALLBACK_INTDIR) : $(MTOM_SENDING_CALLBACK_OBJS) : $(MTOM_SENDING_CALLBACK_INTDIR) $(AXIS2_SAMPLES_LIB)\mtom_sending_callback\mtom_sending_callback.dll : $(MTOM_SENDING_CALLBACK_OBJS) - $(LD) $(LDFLAGS) $(MTOM_SENDING_CALLBACK_OBJS) $(AXUTIL).lib $(AXIOM).lib \ + $(LD) $(LDFLAGS) /FIXED:No $(MTOM_SENDING_CALLBACK_OBJS) $(AXUTIL).lib $(AXIOM).lib \ $(AXIS2_PARSER).lib $(LIBS) $(AXIS2_ENGINE).lib /DLL /OUT:$(AXIS2_SAMPLES_LIB)\mtom_sending_callback\mtom_sending_callback.dll -@$(_VC_MANIFEST_EMBED_DLL) @@ -1331,7 +1331,7 @@ $(MTOM_CACHING_CALLBACK_INTDIR) : $(MTOM_CACHING_CALLBACK_OBJS) : $(MTOM_CACHING_CALLBACK_INTDIR) $(AXIS2_SAMPLES_LIB)\mtom_caching_callback\mtom_caching_callback.dll : $(MTOM_CACHING_CALLBACK_OBJS) - $(LD) $(LDFLAGS) $(MTOM_CACHING_CALLBACK_OBJS) $(AXUTIL).lib $(AXIOM).lib \ + $(LD) $(LDFLAGS) /FIXED:No $(MTOM_CACHING_CALLBACK_OBJS) $(AXUTIL).lib $(AXIOM).lib \ $(AXIS2_PARSER).lib $(LIBS) $(AXIS2_ENGINE).lib /DLL /OUT:$(AXIS2_SAMPLES_LIB)\mtom_caching_callback\mtom_caching_callback.dll -@$(_VC_MANIFEST_EMBED_DLL) diff --git a/samples/client/echo/echo.c b/samples/client/echo/echo.c index 94a0a20..6a06920 100644 --- a/samples/client/echo/echo.c +++ b/samples/client/echo/echo.c @@ -176,15 +176,12 @@ build_om_payload_for_echo_svc( axiom_namespace_t *ns1 = NULL; axis2_char_t *om_str = NULL; - ns1 = - axiom_namespace_create(env, "http://ws.apache.org/axis2/services/echo", - "ns1"); - echo_om_ele = - axiom_element_create(env, NULL, "echoString", ns1, &echo_om_node); - text_om_ele = - axiom_element_create(env, echo_om_node, "text", NULL, &text_om_node); + ns1 = axiom_namespace_create(env, "http://ws.apache.org/axis2/services/echo", "ns1"); + echo_om_ele = axiom_element_create(env, NULL, "echoString", ns1, &echo_om_node); + text_om_ele = axiom_element_create(env, echo_om_node, "text", NULL, &text_om_node); axiom_element_set_text(text_om_ele, env, "Hello World!", text_om_node); om_str = axiom_node_to_string(echo_om_node, env); + axiom_namespace_free(ns1, env); if (om_str) { diff --git a/samples/server/echo/echo.c b/samples/server/echo/echo.c index 2ce6a08..bb3ec1d 100644 --- a/samples/server/echo/echo.c +++ b/samples/server/echo/echo.c @@ -95,14 +95,11 @@ build_om_programatically( axiom_element_t *text_om_ele = NULL; axiom_namespace_t *ns1 = NULL; - ns1 = - axiom_namespace_create(env, "http://ws.apache.org/axis2/c/samples", - "ns1"); - echo_om_ele = - axiom_element_create(env, NULL, "echoString", ns1, &echo_om_node); - text_om_ele = - axiom_element_create(env, echo_om_node, "text", NULL, &text_om_node); + ns1 = axiom_namespace_create(env, "http://ws.apache.org/axis2/c/samples", "ns1"); + echo_om_ele = axiom_element_create(env, NULL, "echoString", ns1, &echo_om_node); + text_om_ele = axiom_element_create(env, echo_om_node, "text", NULL, &text_om_node); axiom_element_set_text(text_om_ele, env, text, text_om_node); + axiom_namespace_free(ns1, env); return echo_om_node; } diff --git a/samples/server/math/math.c b/samples/server/math/math.c index c3236a2..505c5e5 100644 --- a/samples/server/math/math.c +++ b/samples/server/math/math.c @@ -132,10 +132,10 @@ axis2_math_add( result = param1 + param2; sprintf(result_str, "%ld", result); - ns1 = axiom_namespace_create(env, - "http://axis2/test/namespace1", "ns1"); + ns1 = axiom_namespace_create(env, "http://axis2/test/namespace1", "ns1"); ele1 = axiom_element_create(env, NULL, "result", ns1, &node1); text1 = axiom_text_create(env, node1, result_str, &node2); + axiom_namespace_free(ns1, env); return node1; } @@ -261,11 +261,10 @@ axis2_math_sub( result = param1 - param2; sprintf(result_str, "%ld", result); - ns1 = axiom_namespace_create(env, - "http://axis2/test/namespace1", "ns1"); + ns1 = axiom_namespace_create(env, "http://axis2/test/namespace1", "ns1"); ele1 = axiom_element_create(env, NULL, "result", ns1, &node1); text1 = axiom_text_create(env, node1, result_str, &node2); - + axiom_namespace_free(ns1, env); return node1; } @@ -390,10 +389,10 @@ axis2_math_mul( result = param1 * param2; sprintf(result_str, "%ld", result); - ns1 = axiom_namespace_create(env, - "http://axis2/test/namespace1", "ns1"); + ns1 = axiom_namespace_create(env, "http://axis2/test/namespace1", "ns1"); ele1 = axiom_element_create(env, NULL, "result", ns1, &node1); text1 = axiom_text_create(env, node1, result_str, &node2); + axiom_namespace_free(ns1, env); return node1; } @@ -521,10 +520,10 @@ axis2_math_div( result = param1 / param2; sprintf(result_str, "%ld", result); - ns1 = axiom_namespace_create(env, - "http://axis2/test/namespace1", "ns1"); + ns1 = axiom_namespace_create(env,"http://axis2/test/namespace1", "ns1"); ele1 = axiom_element_create(env, NULL, "result", ns1, &node1); text1 = axiom_text_create(env, node1, result_str, &node2); + axiom_namespace_free(ns1, env); return node1; } diff --git a/samples/server/mtom/mtom.c b/samples/server/mtom/mtom.c index f00b68b..3f10d70 100644 --- a/samples/server/mtom/mtom.c +++ b/samples/server/mtom/mtom.c @@ -245,14 +245,10 @@ axiom_node_t *build_response2( axiom_node_t *text_node = NULL; axiom_namespace_t *ns1 = NULL; - ns1 = - axiom_namespace_create(env, "http://ws.apache.org/axis2/c/samples", - "ns1"); - mtom_om_ele = - axiom_element_create(env, NULL, "response", ns1, &mtom_om_node); - - axiom_text_create_with_data_handler(env, mtom_om_node, data_handler, - &text_node); + ns1 = axiom_namespace_create(env, "http://ws.apache.org/axis2/c/samples","ns1"); + mtom_om_ele = axiom_element_create(env, NULL, "response", ns1, &mtom_om_node); + axiom_text_create_with_data_handler(env, mtom_om_node, data_handler, &text_node); + axiom_namespace_free(ns1, env); return mtom_om_node; } diff --git a/samples/user_guide/clients/echo_util.c b/samples/user_guide/clients/echo_util.c index a38158b..c3ede56 100644 --- a/samples/user_guide/clients/echo_util.c +++ b/samples/user_guide/clients/echo_util.c @@ -30,19 +30,18 @@ build_om_payload_for_echo_svc( axiom_namespace_t *ns1 = NULL; axis2_char_t *om_str = NULL; - ns1 = - axiom_namespace_create(env, "http://ws.apache.org/axis2/services/echo", - "ns1"); - echo_om_ele = - axiom_element_create(env, NULL, "echoString", ns1, &echo_om_node); - text_om_ele = - axiom_element_create(env, echo_om_node, "text", NULL, &text_om_node); + ns1 = axiom_namespace_create(env, "http://ws.apache.org/axis2/services/echo", "ns1"); + echo_om_ele = axiom_element_create(env, NULL, "echoString", ns1, &echo_om_node); + text_om_ele = axiom_element_create(env, echo_om_node, "text", NULL, &text_om_node); axiom_element_set_text(text_om_ele, env, "Hello World!", text_om_node); + axiom_namespace_free(ns1, env); om_str = axiom_node_to_string(echo_om_node, env); if (om_str) + { printf("\nSending OM : %s\n", om_str); - AXIS2_FREE(env->allocator, om_str); + AXIS2_FREE(env->allocator, om_str); + } return echo_om_node; } diff --git a/src/core/receivers/raw_xml_in_out_msg_recv.c b/src/core/receivers/raw_xml_in_out_msg_recv.c index 9335f92..c213683 100644 --- a/src/core/receivers/raw_xml_in_out_msg_recv.c +++ b/src/core/receivers/raw_xml_in_out_msg_recv.c @@ -313,6 +313,7 @@ axis2_raw_xml_in_out_msg_recv_invoke_business_logic_sync( } default_envelope = axiom_soap_envelope_create(env, env_ns); + axiom_namespace_free(env_ns, env); if(!default_envelope) { diff --git a/src/modules/mod_addr/addr_out_handler.c b/src/modules/mod_addr/addr_out_handler.c index dbf47a4..6b70580 100644 --- a/src/modules/mod_addr/addr_out_handler.c +++ b/src/modules/mod_addr/addr_out_handler.c @@ -325,6 +325,8 @@ axis2_addr_out_handler_invoke( } }/* if(epr_to) */ + axiom_namespace_free(addressing_namespace, env); + action = axis2_msg_info_headers_get_action(msg_info_headers, env); if(action && *action) { @@ -599,6 +601,7 @@ axis2_addr_out_handler_add_to_soap_header( addr_ns_obj = axiom_namespace_create(env, addr_ns, AXIS2_WSA_DEFAULT_PREFIX); address_ele = axiom_element_create(env, hb_node, EPR_ADDRESS, addr_ns_obj, &address_node); + axiom_namespace_free(addr_ns_obj, env); if(address_ele) { axiom_namespace_t *dec_ns = NULL; @@ -623,6 +626,7 @@ axis2_addr_out_handler_add_to_soap_header( reference_ele = axiom_element_create(env, header_block_node, EPR_REFERENCE_PARAMETERS, addr_ns_obj, &reference_node); + axiom_namespace_free(addr_ns_obj, env); ref_attribute_list = axis2_endpoint_ref_get_ref_attribute_list(endpoint_ref, env); if(ref_attribute_list) @@ -667,6 +671,7 @@ axis2_addr_out_handler_add_to_soap_header( reference_ele = axiom_element_create(env, header_block_node, AXIS2_WSA_METADATA, addr_ns_obj, &reference_node); + axiom_namespace_free(addr_ns_obj, env); } meta_attribute_list = axis2_endpoint_ref_get_metadata_attribute_list(endpoint_ref, env); diff --git a/util/src/thread_pool.c b/util/src/thread_pool.c index cf1078d..2ba7c7c 100644 --- a/util/src/thread_pool.c +++ b/util/src/thread_pool.c @@ -126,6 +126,7 @@ AXIS2_EXTERN void AXIS2_CALL axutil_free_thread_env( struct axutil_env *thread_env) { + axutil_allocator_t * allocator; if(!thread_env) { return; @@ -143,5 +144,7 @@ axutil_free_thread_env( { AXIS2_ERROR_FREE(thread_env->error); } - AXIS2_FREE(thread_env->allocator, thread_env); + allocator = thread_env->allocator; + AXIS2_FREE(allocator, thread_env); + axutil_allocator_free(allocator); } -- cgit v1.1-32-gdbae