Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Plug a memleak found by FS
authormquinson <mquinson@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Mon, 31 Jul 2006 08:47:31 +0000 (08:47 +0000)
committermquinson <mquinson@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Mon, 31 Jul 2006 08:47:31 +0000 (08:47 +0000)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@2649 48e7efb5-ca39-0410-a469-dd3cf9ba447f

src/xbt/config.c

index 9e982a9..7e96cb8 100644 (file)
@@ -723,8 +723,14 @@ xbt_cfg_set_string(xbt_cfg_t cfg,const char*name, const char*val) {
   variable = xbt_cfgelm_get(cfg,name,xbt_cfgelm_string);
 
   if (variable->max == 1) {
   variable = xbt_cfgelm_get(cfg,name,xbt_cfgelm_string);
 
   if (variable->max == 1) {
-    if (variable->cb_rm && xbt_dynar_length(variable->content))
-      (*variable->cb_rm)(name, 0);
+    if (xbt_dynar_length(variable->content)) {
+       if (variable->cb_rm)
+        (*variable->cb_rm)(name, 0);
+       else if (variable->type == xbt_cfgelm_string) {
+        char * sval=xbt_dynar_get_as(variable->content,0,char*);
+        free(sval);
+       }
+    }
           
     xbt_dynar_set(variable->content,0,&newval);
   } else {
           
     xbt_dynar_set(variable->content,0,&newval);
   } else {