Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix compilation with tracing and new network_element_t
[simgrid.git] / src / xbt / dict_multi.c
index f39e4e3..a6f8887 100644 (file)
@@ -6,6 +6,8 @@
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
+#ifdef XBT_USE_DEPRECATED
+
 #include "dict_private.h"
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(xbt_dict_multi, xbt_dict,
@@ -13,7 +15,7 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(xbt_dict_multi, xbt_dict,
 
 static void _free_dict(void *d)
 {
-  VERB1("free dict %p", d);
+  XBT_VERB("free dict %p", d);
   xbt_dict_free((xbt_dict_t *) & d);
 }
 
@@ -42,16 +44,17 @@ xbt_multidict_set_ext(xbt_dict_t mdict,
   int keys_len = xbt_dynar_length(keys);
 
   xbt_assert(xbt_dynar_length(keys) == xbt_dynar_length(lens));
-  xbt_assert0(keys_len, "Can't set a zero-long key set in a multidict");
+  xbt_assert(keys_len, "Can't set a zero-long key set in a multidict");
 
-  DEBUG2("xbt_multidict_set(%p,%d)", mdict, keys_len);
+  XBT_DEBUG("xbt_multidict_set(%p,%d)", mdict, keys_len);
 
-  for (i = 0, thislevel = mdict; i < keys_len - 1; i++, thislevel = nextlevel) {
+  for (i = 0, thislevel = mdict; i < keys_len - 1;
+       i++, thislevel = nextlevel) {
 
     xbt_dynar_get_cpy(keys, i, &thiskey);
     xbt_dynar_get_cpy(lens, i, &thislen);
 
-    DEBUG5("multi_set: at level %d, len=%ld, key=%p |%*s|", i, thislen,
+    XBT_DEBUG("multi_set: at level %d, len=%ld, key=%p |%*s|", i, thislen,
            thiskey, (int) thislen, thiskey);
 
     /* search the dict of next level */
@@ -59,8 +62,9 @@ xbt_multidict_set_ext(xbt_dict_t mdict,
     if (nextlevel == NULL) {
       /* make sure the dict of next level exists */
       nextlevel = xbt_dict_new();
-      VERB1("Create a dict (%p)", nextlevel);
-      xbt_dict_set_ext(thislevel, thiskey, thislen, nextlevel, &_free_dict);
+      XBT_VERB("Create a dict (%p)", nextlevel);
+      xbt_dict_set_ext(thislevel, thiskey, thislen, nextlevel,
+                       &_free_dict);
     }
   }
 
@@ -83,20 +87,21 @@ xbt_multidict_set(xbt_dict_t mdict,
 {
   xbt_dynar_t lens = xbt_dynar_new(sizeof(unsigned long int), NULL);
   unsigned long i;
-  xbt_ex_t e;
 
   for (i = 0; i < xbt_dynar_length(keys); i++) {
     char *thiskey = xbt_dynar_get_as(keys, i, char *);
     unsigned long int thislen = (unsigned long int) strlen(thiskey);
-    DEBUG2("Push %ld as level %lu length", thislen, i);
+    XBT_DEBUG("Push %ld as level %lu length", thislen, i);
     xbt_dynar_push(lens, &thislen);
   }
 
   TRY {
     xbt_multidict_set_ext(mdict, keys, lens, data, free_ctn);
-  } _CLEANUP {
+  }
+  TRY_CLEANUP {
     xbt_dynar_free(&lens);
-  } CATCH(e) {
+  }
+  CATCH_ANONYMOUS {
     RETHROW;
   }
 }
@@ -122,17 +127,18 @@ void *xbt_multidict_get_ext(xbt_dict_t mdict,
   int keys_len = xbt_dynar_length(keys);
 
   xbt_assert(xbt_dynar_length(keys) == xbt_dynar_length(lens));
-  xbt_assert0(xbt_dynar_length(keys) >= 1,
+  xbt_assert(!xbt_dynar_is_empty(keys),
               "Can't get a zero-long key set in a multidict");
 
-  DEBUG2("xbt_multidict_get(%p, %ld)", mdict, xbt_dynar_length(keys));
+  XBT_DEBUG("xbt_multidict_get(%p, %ld)", mdict, xbt_dynar_length(keys));
 
-  for (i = 0, thislevel = mdict; i < keys_len - 1; i++, thislevel = nextlevel) {
+  for (i = 0, thislevel = mdict; i < keys_len - 1;
+       i++, thislevel = nextlevel) {
 
     xbt_dynar_get_cpy(keys, i, &thiskey);
     xbt_dynar_get_cpy(lens, i, &thislen);
 
-    DEBUG6("multi_get: at level %d (%p), len=%ld, key=%p |%*s|",
+    XBT_DEBUG("multi_get: at level %d (%p), len=%ld, key=%p |%*s|",
            i, thislevel, thislen, thiskey, (int) thislen, thiskey);
 
     /* search the dict of next level: let mismatch raise if not found */
@@ -176,10 +182,12 @@ void *xbt_multidict_get(xbt_dict_t mdict, xbt_dynar_t keys)
  */
 
 void
-xbt_multidict_remove_ext(xbt_dict_t mdict, xbt_dynar_t keys, xbt_dynar_t lens)
+xbt_multidict_remove_ext(xbt_dict_t mdict, xbt_dynar_t keys,
+                         xbt_dynar_t lens)
 {
-  xbt_dict_t thislevel, nextlevel = NULL;
-  int i;
+  volatile xbt_dict_t thislevel;
+  volatile xbt_dict_t nextlevel = NULL;
+  volatile int i;
   xbt_ex_t e;
 
   unsigned long int thislen;
@@ -187,10 +195,11 @@ xbt_multidict_remove_ext(xbt_dict_t mdict, xbt_dynar_t keys, xbt_dynar_t lens)
   int keys_len = xbt_dynar_length(keys);
 
   xbt_assert(xbt_dynar_length(keys) == xbt_dynar_length(lens));
-  xbt_assert0(xbt_dynar_length(keys),
+  xbt_assert(xbt_dynar_length(keys),
               "Can't remove a zero-long key set in a multidict");
 
-  for (i = 0, thislevel = mdict; i < keys_len - 1; i++, thislevel = nextlevel) {
+  for (i = 0, thislevel = mdict; i < keys_len - 1;
+       i++, thislevel = nextlevel) {
 
     xbt_dynar_get_cpy(keys, i, &thiskey);
     xbt_dynar_get_cpy(lens, i, &thislen);
@@ -216,8 +225,6 @@ xbt_multidict_remove_ext(xbt_dict_t mdict, xbt_dynar_t keys, xbt_dynar_t lens)
 
 void xbt_multidict_remove(xbt_dict_t mdict, xbt_dynar_t keys)
 {
-
-  xbt_ex_t e;
   xbt_dynar_t lens = xbt_dynar_new(sizeof(unsigned long int), NULL);
   unsigned long i;
 
@@ -229,9 +236,13 @@ void xbt_multidict_remove(xbt_dict_t mdict, xbt_dynar_t keys)
 
   TRY {
     xbt_multidict_remove_ext(mdict, keys, lens);
-  } _CLEANUP {
+  }
+  TRY_CLEANUP {
     xbt_dynar_free(&lens);
-  } CATCH(e) {
+  }
+  CATCH_ANONYMOUS {
     RETHROW;
   }
 }
+
+#endif