X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/4fef14624811a33d03bb19ceb48661d07a1720bb..1ce4ab769824a1be26f14d1a06b617e37a89ba66:/src/xbt/setset.c diff --git a/src/xbt/setset.c b/src/xbt/setset.c index a583713620..16986fe2bb 100644 --- a/src/xbt/setset.c +++ b/src/xbt/setset.c @@ -3,6 +3,24 @@ #include #include "setset_private.h" #include "xbt/sysdep.h" +#include "simgrid_config.h" /*_XBT_WIN32*/ + +/*The function ffs doesn't exist for windows*/ +#ifdef _XBT_WIN32 + int XBT_INLINE ffs(int x) + { + int r; + __asm{ + mov ecx, [x] + bsf eax, ecx + jnz ffs1 + mov eax, -1 + ffs1: + mov[r],eax + } + return(r); + } +#endif /** * \brief Create a new setset data structure @@ -44,10 +62,10 @@ void xbt_setset_destroy(xbt_setset_t setset) void xbt_setset_elm_add(xbt_setset_t setset, void *obj) { xbt_setset_elm_entry_t new_entry = NULL; + xbt_setset_elm_entry_t first_elm = NULL; xbt_setset_elm_t e = (xbt_setset_elm_t)obj; xbt_assert0(e->ID == 0, "Adding element with non NULL ID"); - xbt_setset_elm_entry_t first_elm = - (xbt_setset_elm_entry_t)xbt_dynar_get_ptr(setset->elm_array, 0); + first_elm = (xbt_setset_elm_entry_t)xbt_dynar_get_ptr(setset->elm_array, 0); /* Before create a new elm entry check if there is one in the free elm list. */ /* If there is not free elm entries, then create a new one */ @@ -356,4 +374,4 @@ int bitcount(int v) v = v - ((v >> 1) & 0x55555555); // reuse input as temporary v = (v & 0x33333333) + ((v >> 2) & 0x33333333); // temp return (((v + (v >> 4)) & 0xF0F0F0F) * 0x1010101) >> 24; // count -} \ No newline at end of file +}