Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Set variables for windows.
[simgrid.git] / src / xbt / setset.c
index a583713..16986fe 100644 (file)
@@ -3,6 +3,24 @@
 #include <string.h>
 #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
+}