From 93c1a77a0866f1ac43b12a2c8f3dc26077014359 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Franti=C5=A1ek=20Dvo=C5=99=C3=A1k?= Date: Fri, 4 Feb 2005 11:41:13 +0000 Subject: [PATCH] Moved freeing parameters to param.c (new internal function), fixed memory leak in context. --- org.glite.lb.common/interface/context-int.h | 2 ++ org.glite.lb.common/project/version.properties | 2 +- org.glite.lb.common/src/context.c | 16 +----------- org.glite.lb.common/src/param.c | 34 ++++++++++++++++++++++++++ 4 files changed, 38 insertions(+), 16 deletions(-) diff --git a/org.glite.lb.common/interface/context-int.h b/org.glite.lb.common/interface/context-int.h index c9f6acf..6890d7d 100644 --- a/org.glite.lb.common/interface/context-int.h +++ b/org.glite.lb.common/interface/context-int.h @@ -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 } diff --git a/org.glite.lb.common/project/version.properties b/org.glite.lb.common/project/version.properties index a40bcb5..2d1ce12 100644 --- a/org.glite.lb.common/project/version.properties +++ b/org.glite.lb.common/project/version.properties @@ -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 diff --git a/org.glite.lb.common/src/context.c b/org.glite.lb.common/src/context.c index 3e6bbcd..1e37089 100644 --- a/org.glite.lb.common/src/context.c +++ b/org.glite.lb.common/src/context.c @@ -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); } diff --git a/org.glite.lb.common/src/param.c b/org.glite.lb.common/src/param.c index f1e9ab5..001261c 100644 --- a/org.glite.lb.common/src/param.c +++ b/org.glite.lb.common/src/param.c @@ -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, -- 1.8.2.3