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 di...@apache.org on 2007/11/30 13:31:39 UTC
svn commit: r599799 - in /webservices/axis2/trunk/c/src/core:
deployment/dep_engine.c engine/conf.c
Author: dinesh
Date: Fri Nov 30 04:31:34 2007
New Revision: 599799
URL: http://svn.apache.org/viewvc?rev=599799&view=rev
Log:
fixed memory leaks in fault path
Modified:
webservices/axis2/trunk/c/src/core/deployment/dep_engine.c
webservices/axis2/trunk/c/src/core/engine/conf.c
Modified: webservices/axis2/trunk/c/src/core/deployment/dep_engine.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/src/core/deployment/dep_engine.c?rev=599799&r1=599798&r2=599799&view=diff
==============================================================================
--- webservices/axis2/trunk/c/src/core/deployment/dep_engine.c (original)
+++ webservices/axis2/trunk/c/src/core/deployment/dep_engine.c Fri Nov 30 04:31:34 2007
@@ -1423,7 +1423,6 @@
axis2_svc_grp_t *svc_grp = NULL;
axis2_char_t *file_name = NULL;
axis2_module_desc_t *meta_data = NULL;
- axis2_arch_reader_t *arch_reader = NULL;
dep_engine->curr_file = (axis2_arch_file_data_t *)
axutil_array_list_get(dep_engine->ws_to_deploy, env, i);
@@ -1433,18 +1432,23 @@
{
case AXIS2_SVC:
{
- arch_reader = axis2_arch_reader_create(env);
+ if (dep_engine->arch_reader)
+ {
+ axis2_arch_reader_free(dep_engine->arch_reader, env);
+ dep_engine->arch_reader = NULL;
+ }
+ dep_engine->arch_reader = axis2_arch_reader_create (env);
svc_grp = axis2_svc_grp_create_with_conf(env, dep_engine->conf);
file_name = axis2_arch_file_data_get_name(dep_engine->
curr_file, env);
- status = axis2_arch_reader_process_svc_grp(arch_reader, env,
+ status = axis2_arch_reader_process_svc_grp(dep_engine->arch_reader, env,
file_name,
dep_engine, svc_grp);
if (AXIS2_SUCCESS != status)
{
- axis2_arch_reader_free(arch_reader, env);
- arch_reader = NULL;
+ axis2_arch_reader_free(dep_engine->arch_reader, env);
+ dep_engine->curr_file = NULL;
AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_SVC,
AXIS2_FAILURE);
return status;
@@ -1453,8 +1457,8 @@
status = axis2_dep_engine_add_new_svc(dep_engine, env, svc_grp);
if (AXIS2_SUCCESS != status)
{
- axis2_arch_reader_free(arch_reader, env);
- arch_reader = NULL;
+ axis2_arch_reader_free(dep_engine->arch_reader, env);
+ dep_engine->curr_file = NULL;
AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_SVC,
AXIS2_FAILURE);
return status;
@@ -1464,10 +1468,10 @@
}
case AXIS2_MODULE:
{
- arch_reader = axis2_arch_reader_create(env);
if (dep_engine->arch_reader)
{
axis2_arch_reader_free(dep_engine->arch_reader, env);
+ dep_engine->arch_reader = NULL;
}
dep_engine->arch_reader = axis2_arch_reader_create(env);
meta_data = axis2_module_desc_create(env);
@@ -1478,8 +1482,9 @@
dep_engine, meta_data);
if (AXIS2_SUCCESS != status)
{
- axis2_arch_reader_free(arch_reader, env);
- arch_reader = NULL;
+ axis2_arch_reader_free (dep_engine->arch_reader, env);
+ dep_engine->arch_reader = NULL;
+ dep_engine->curr_file = NULL;
AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_MODULE,
AXIS2_FAILURE);
return AXIS2_FAILURE;
@@ -1488,18 +1493,18 @@
meta_data);
if (AXIS2_SUCCESS != status)
{
- axis2_arch_reader_free(arch_reader, env);
- arch_reader = NULL;
+ axis2_arch_reader_free (dep_engine->arch_reader, env);
+ dep_engine->arch_reader = NULL;
+ dep_engine->curr_file = NULL;
AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_MODULE,
AXIS2_FAILURE);
return AXIS2_FAILURE;
}
-
dep_engine->curr_file = NULL;
break;
}
};
- axis2_arch_reader_free(arch_reader, env);
+ axis2_arch_reader_free (dep_engine->arch_reader, env);
dep_engine->arch_reader = NULL;
dep_engine->curr_file = NULL;
}
Modified: webservices/axis2/trunk/c/src/core/engine/conf.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/src/core/engine/conf.c?rev=599799&r1=599798&r2=599799&view=diff
==============================================================================
--- webservices/axis2/trunk/c/src/core/engine/conf.c (original)
+++ webservices/axis2/trunk/c/src/core/engine/conf.c Fri Nov 30 04:31:34 2007
@@ -516,6 +516,11 @@
axis2_desc_free(conf->base, env);
}
+ if (conf->axis2_xml)
+ {
+ AXIS2_FREE (env->allocator, conf->axis2_xml);
+ }
+
if (conf)
{
AXIS2_FREE(env->allocator, conf);
@@ -1391,7 +1396,6 @@
{
axutil_file_t *file = NULL;
axis2_char_t *file_name = NULL;
- axis2_arch_reader_t *arch_reader = NULL;
const axis2_char_t *repos_path = NULL;
axis2_arch_file_data_t *file_data = NULL;
axis2_char_t *temp_path1 = NULL;
@@ -1403,11 +1407,6 @@
axis2_bool_t flag;
axis2_char_t *axis2_xml;
- arch_reader = axis2_arch_reader_create(env);
- if (!arch_reader)
- {
- return AXIS2_FAILURE;
- }
file_name = axutil_qname_get_localpart(module_ref, env);
file =
(axutil_file_t *) axis2_arch_reader_create_module_arch(env,
@@ -1456,7 +1455,7 @@
file_data = axis2_arch_file_data_create_with_type_and_file(env,
AXIS2_MODULE,
file);
-
+ axutil_file_free (file, env);
if (!flag)
{
dep_engine =
@@ -1476,9 +1475,22 @@
*/
axis2_dep_engine_set_module_dir (dep_engine, env, path);
+
+ if (path)
+ {
+ AXIS2_FREE (env->allocator, path);
+ }
+
+ if (file_data)
+ {
+ axis2_arch_file_data_free(file_data, env);
+ }
+
module_desc =
axis2_dep_engine_build_module(dep_engine, env, file, conf);
is_new_module = AXIS2_TRUE;
+ AXIS2_LOG_ERROR (env->log, AXIS2_LOG_SI, "free dep engine");
+ axis2_dep_engine_free (dep_engine, env);
}
if (module_desc)
@@ -1507,6 +1519,7 @@
AXIS2_ERROR_SET(env->error, AXIS2_ERROR_INVALID_MODULE, AXIS2_FAILURE);
return AXIS2_FAILURE;
}
+
if (to_be_engaged)
{
axis2_phase_resolver_t *phase_resolver = NULL;
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org