Moved freeing parameters to param.c (new internal function),
authorFrantišek Dvořák <valtri@civ.zcu.cz>
Fri, 4 Feb 2005 11:41:13 +0000 (11:41 +0000)
committerFrantišek Dvořák <valtri@civ.zcu.cz>
Fri, 4 Feb 2005 11:41:13 +0000 (11:41 +0000)
fixed memory leak in context.

org.glite.lb.common/interface/context-int.h
org.glite.lb.common/project/version.properties
org.glite.lb.common/src/context.c
org.glite.lb.common/src/param.c

index c9f6acf..6890d7d 100644 (file)
@@ -172,6 +172,8 @@ extern int edg_wll_ContextReopen(edg_wll_Context);
 extern int edg_wll_SetSequenceCode(edg_wll_Context, const char *, int);
 extern int edg_wll_IncSequenceCode(edg_wll_Context ctx);
 
+extern void edg_wll_FreeParams(edg_wll_Context context);
+
 
 #ifdef __cplusplus
 }
index a40bcb5..2d1ce12 100644 (file)
@@ -1,4 +1,4 @@
 #Wed Jan 12 04:09:34 CET 2005
-module.version=1.2.1
+module.version=1.3.0
 module.build=145
 module.age=1
index 3e6bbcd..1e37089 100644 (file)
@@ -79,21 +79,7 @@ void edg_wll_FreeContext(edg_wll_Context ctx)
        if (ctx->dumpStorage) free(ctx->dumpStorage);
        if (ctx->purgeStorage) free(ctx->purgeStorage);
 
-        if (ctx->p_jobid) edg_wlc_JobIdFree(ctx->p_jobid);
-        if (ctx->p_host) free(ctx->p_host);
-        if (ctx->p_instance) free(ctx->p_instance);
-        if (ctx->p_destination) free(ctx->p_destination);
-        if (ctx->p_user_lbproxy) free(ctx->p_user_lbproxy);
-        if (ctx->p_query_server) free(ctx->p_query_server);
-        if (ctx->p_notif_server) free(ctx->p_notif_server);
-        if (ctx->p_proxy_filename) free(ctx->p_proxy_filename);
-        if (ctx->p_cert_filename) free(ctx->p_cert_filename);
-        if (ctx->p_key_filename) free(ctx->p_key_filename);
-
-       /* do not free (references only)
-        * ctx->job_index
-        * ctx->job_index_cols
-        * ctx->mysql */
+       edg_wll_FreeParams(ctx);
 
        free(ctx);
 }
index f1e9ab5..001261c 100644 (file)
@@ -433,6 +433,40 @@ int edg_wll_GetParam(edg_wll_Context ctx,edg_wll_ContextParam param,...)
        return edg_wll_Error(ctx, NULL, NULL);
 }
 
+void edg_wll_FreeParams(edg_wll_Context ctx) {
+       if (ctx->p_jobid) edg_wlc_JobIdFree(ctx->p_jobid);
+       if (ctx->p_host) free(ctx->p_host);
+       if (ctx->p_instance) free(ctx->p_instance);
+       if (ctx->p_destination) free(ctx->p_destination);
+       if (ctx->p_user_lbproxy) free(ctx->p_user_lbproxy);
+       if (ctx->p_query_server) free(ctx->p_query_server);
+       if (ctx->p_notif_server) free(ctx->p_notif_server);
+       if (ctx->p_proxy_filename) free(ctx->p_proxy_filename);
+       if (ctx->p_cert_filename) free(ctx->p_cert_filename);
+       if (ctx->p_key_filename) free(ctx->p_key_filename);
+       if (ctx->p_lbproxy_store_sock) free(ctx->p_lbproxy_store_sock);
+       if (ctx->p_lbproxy_serve_sock) free(ctx->p_lbproxy_serve_sock);
+
+       ctx->p_jobid = NULL;
+       ctx->p_host = NULL;
+       ctx->p_instance = NULL;
+       ctx->p_destination = NULL;
+       ctx->p_user_lbproxy = NULL;
+       ctx->p_query_server = NULL;
+       ctx->p_notif_server = NULL;
+       ctx->p_proxy_filename = NULL;
+       ctx->p_cert_filename = NULL;
+       ctx->p_key_filename = NULL;
+       ctx->p_lbproxy_store_sock = NULL;
+       ctx->p_lbproxy_serve_sock = NULL;
+
+       /* do not free (references only)
+        * ctx->job_index
+        * ctx->job_index_cols
+        * ctx->mysql */
+
+}
+
 #if 0
 /* only for reference */
 edg_wll_ErrorCode edg_wll_SetLoggingParams(edg_wll_Context ctx,