Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix error message.
authorArnaud Giersch <arnaud.giersch@iut-bm.univ-fcomte.fr>
Tue, 10 May 2011 14:03:49 +0000 (16:03 +0200)
committerArnaud Giersch <arnaud.giersch@iut-bm.univ-fcomte.fr>
Tue, 10 May 2011 14:04:21 +0000 (16:04 +0200)
Subtraction (optionlist_cpy - name) was upside-down.  Change to only keep
the name of the variable.

src/xbt/config.c

index 71f9025..0e53230 100644 (file)
@@ -675,14 +675,14 @@ void xbt_cfg_set_parse(xbt_cfg_t cfg, const char *options)
       variable = xbt_dict_get((xbt_dict_t) cfg, name);
     }
     CATCH(e) {
       variable = xbt_dict_get((xbt_dict_t) cfg, name);
     }
     CATCH(e) {
-      /* put it back on what won't get freed, ie within "options" and out of "optionlist_cpy" */
-      name = (char *) (optionlist_cpy - name + options);
-      free(optionlist_cpy);
       if (e.category == not_found_error) {
         xbt_ex_free(e);
       if (e.category == not_found_error) {
         xbt_ex_free(e);
+        name = xbt_strdup(name);
+        free(optionlist_cpy);
         THROWF(not_found_error, 0,
                "No registered variable corresponding to '%s'.", name);
       }
         THROWF(not_found_error, 0,
                "No registered variable corresponding to '%s'.", name);
       }
+      free(optionlist_cpy);
       RETHROW;
     }
 
       RETHROW;
     }