X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/7410b72db09489e8b9d3ee3cb087f35882397d93..8a67f74657d886d80a3512beb8b9b522fd3e9d13:/src/xbt/dict.c diff --git a/src/xbt/dict.c b/src/xbt/dict.c index 59927b752a..6e2135d20c 100644 --- a/src/xbt/dict.c +++ b/src/xbt/dict.c @@ -44,6 +44,9 @@ xbt_dict_t xbt_dict_new(void) */ xbt_dict_t xbt_dict_new_homogeneous(void_f_pvoid_t free_ctn) { + if (dict_elm_mallocator == NULL) + xbt_dict_preinit(); + xbt_dict_t dict; dict = xbt_new(s_xbt_dict_t, 1); @@ -527,10 +530,14 @@ void xbt_dict_dump_sizes(xbt_dict_t dict) */ void xbt_dict_preinit(void) { - dict_elm_mallocator = xbt_mallocator_new(256, dict_elm_mallocator_new_f, dict_elm_mallocator_free_f, - dict_elm_mallocator_reset_f); - dict_het_elm_mallocator = xbt_mallocator_new(256, dict_het_elm_mallocator_new_f, dict_het_elm_mallocator_free_f, - dict_het_elm_mallocator_reset_f); + if (dict_elm_mallocator == NULL) + dict_elm_mallocator = xbt_mallocator_new( + 256, dict_elm_mallocator_new_f, dict_elm_mallocator_free_f, + dict_elm_mallocator_reset_f); + if (dict_het_elm_mallocator == NULL) + dict_het_elm_mallocator = xbt_mallocator_new( + 256, dict_het_elm_mallocator_new_f, dict_het_elm_mallocator_free_f, + dict_het_elm_mallocator_reset_f); } /**