X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/6f48d1a65eeb69ebae17feb1d714db4a60764a51..1cce0801abcad7c884f9e72ceda87e36d6635104:/include/xbt/swag.h diff --git a/include/xbt/swag.h b/include/xbt/swag.h index 87bfbb6b5f..2431b3088c 100644 --- a/include/xbt/swag.h +++ b/include/xbt/swag.h @@ -65,12 +65,15 @@ typedef struct foo { */ typedef s_xbt_swag_hookup_t *xbt_swag_hookup_t; -typedef struct xbt_swag { +struct xbt_swag { void *head; void *tail; size_t offset; int count; -} s_xbt_swag_t, *xbt_swag_t; +}; +typedef struct xbt_swag s_xbt_swag_t; +typedef struct xbt_swag* xbt_swag_t; + /**< A typical swag */ /* @} */ @@ -110,7 +113,7 @@ XBT_PUBLIC(int) xbt_swag_size(xbt_swag_t swag); #define xbt_swag_getNext(obj, offset) (((xbt_swag_hookup_t)(((char *) (obj)) + (offset)))->next) #define xbt_swag_belongs(obj, swag) (xbt_swag_getNext((obj), (swag)->offset) || (swag)->tail == (obj)) -static XBT_INLINE void *xbt_swag_getFirst(xbt_swag_t swag) +static inline void *xbt_swag_getFirst(xbt_swag_t swag) { return (swag->head); } @@ -189,4 +192,16 @@ static XBT_INLINE void *xbt_swag_getFirst(xbt_swag_t swag) /* @} */ SG_END_DECL() + +#ifdef __cplusplus +namespace simgrid { +namespace xbt { + inline void destroy(xbt_swag_t s) + { + xbt_swag_free(s); + } +} +} +#endif + #endif /* _XBT_SWAG_H */