X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/30f1c8c5e4b8a7b6e593c7bb885ffad766ae6f5d..12bd9c96c1d310b97f7827e13a8bb0cf8d72124d:/src/xbt/swag.c diff --git a/src/xbt/swag.c b/src/xbt/swag.c index 1b1fc12671..1a75c7f93d 100644 --- a/src/xbt/swag.c +++ b/src/xbt/swag.c @@ -65,6 +65,9 @@ XBT_INLINE void xbt_swag_init(xbt_swag_t swag, size_t offset) */ XBT_INLINE void xbt_swag_insert_at_head(void *obj, xbt_swag_t swag) { + xbt_assert(!xbt_swag_belongs(obj, swag) || swag->tail, + "This object belongs to an empty swag! Did you correctly initialize the object's hookup?"); + if (!swag->head) { xbt_assert(!(swag->tail), "Inconsistent swag."); swag->head = obj; @@ -88,12 +91,11 @@ XBT_INLINE void xbt_swag_insert_at_head(void *obj, xbt_swag_t swag) */ XBT_INLINE void xbt_swag_insert_at_tail(void *obj, xbt_swag_t swag) { - if (xbt_swag_belongs(obj, swag)) { - return; - } + xbt_assert(!xbt_swag_belongs(obj, swag) || swag->tail, + "This object belongs to an empty swag! Did you correctly initialize the object's hookup?"); - if (!swag->tail) { - xbt_assert(!(swag->head), "Inconsistent swag."); + if (!swag->head) { + xbt_assert(!(swag->tail), "Inconsistent swag."); swag->head = obj; swag->tail = obj; swag->count++; @@ -216,8 +218,9 @@ XBT_TEST_UNIT("basic", test_swag_basic, "Basic usage") xbt_swag_insert(obj2, setA); xbt_swag_insert(obj2, setB); - xbt_swag_remove(obj1, setB); - /* xbt_swag_remove(obj2, setB); */ + xbt_test_assert(xbt_swag_remove(NULL, setB) == NULL); + xbt_test_assert(xbt_swag_remove(obj1, setB) == obj1); + /* xbt_test_assert(xbt_swag_remove(obj2, setB) == obj2); */ xbt_test_add("Traverse set A"); xbt_swag_foreach(obj, setA) {