X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/19bdb25835da6ee353675dfb995cf9ca886361b2..2f5a2e23987ab74ad87320adce1bb1c886595410:/src/xbt/swag.c diff --git a/src/xbt/swag.c b/src/xbt/swag.c index dd837835c8..1b2fb7b165 100644 --- a/src/xbt/swag.c +++ b/src/xbt/swag.c @@ -15,25 +15,11 @@ #include "xbt/error.h" #include "xbt/swag.h" -/** \defgroup XBT_swag A O(1) set datatype - * \brief a O(1) set based on linked lists - * - * Warning, this module is done to be efficient and performs tons of - * cast and dirty things. So avoid using it unless you really know - * what you are doing. It is basically a fifo but with restrictions so that - * it can be used as a set. Any operation (add, remove, belongs) is O(1) and - * no call to malloc/free is done. - */ - XBT_LOG_NEW_DEFAULT_SUBCATEGORY(swag,xbt,"Swag : O(1) set library"); #define PREV(obj,offset) xbt_swag_getPrev(obj,offset) #define NEXT(obj,offset) xbt_swag_getNext(obj,offset) -/** \name Functions - * \ingroup XBT_swag - */ -/* @{ */ /** Creates a new swag. * \param offset where the hookup is located in the structure @@ -45,7 +31,10 @@ xbt_swag_t xbt_swag_new(size_t offset) { xbt_swag_t swag = xbt_new0(s_xbt_swag_t, 1); + swag->tail = NULL; + swag->head = NULL; swag->offset = offset; + swag->count = 0; return swag; } @@ -70,7 +59,10 @@ void xbt_swag_free(xbt_swag_t swag) */ void xbt_swag_init(xbt_swag_t swag, size_t offset) { + swag->tail = NULL; + swag->head = NULL; swag->offset = offset; + swag->count = 0; } @@ -239,4 +231,3 @@ int xbt_swag_belongs(void *obj, xbt_swag_t swag) return ((NEXT(obj, swag->offset)) || (PREV(obj, swag->offset)) || (swag->head == obj)); } -/* @} */