Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add a new function xbt_dynar_to_array that transforms a dynar into a
[simgrid.git] / include / xbt / dynar.h
index 22dc482..563cf2a 100644 (file)
@@ -88,7 +88,8 @@ XBT_PUBLIC(void) xbt_dynar_dump(xbt_dynar_t dynar);
 XBT_PUBLIC(void) xbt_dynar_get_cpy(const xbt_dynar_t dynar,
                                    const unsigned long idx,
                                    void *const dst);
-
+XBT_INLINE void *xbt_dynar_set_at_ptr(const xbt_dynar_t dynar,
+                                      const unsigned long idx);
 XBT_PUBLIC(void) xbt_dynar_set(xbt_dynar_t dynar, const int idx,
                                const void *src);
 XBT_PUBLIC(void) xbt_dynar_replace(xbt_dynar_t dynar,
@@ -105,8 +106,9 @@ XBT_PUBLIC(unsigned int) xbt_dynar_search(xbt_dynar_t const dynar,
 XBT_PUBLIC(int) xbt_dynar_member(xbt_dynar_t const dynar, void *elem);
 XBT_PUBLIC(void) xbt_dynar_sort(xbt_dynar_t const dynar,
                                 int_f_cpvoid_cpvoid_t compar_fn);
-XBT_INLINE int xbt_dynar_compare(xbt_dynar_t d1, xbt_dynar_t d2,
+XBT_INLINE XBT_PUBLIC(int) xbt_dynar_compare(xbt_dynar_t d1, xbt_dynar_t d2,
                                        int(*compar)(const void *, const void *));
+XBT_INLINE void * xbt_dynar_to_array (xbt_dynar_t dynar);
 
 /** @} */
 /** @defgroup XBT_dynar_perl Perl-like use of dynars
@@ -134,6 +136,8 @@ XBT_PUBLIC(void) xbt_dynar_map(const xbt_dynar_t dynar,
  *  @{
  */
 
+XBT_INLINE XBT_PUBLIC(void *) xbt_dynar_set_at_ptr(const xbt_dynar_t dynar,
+                                      const unsigned long idx);
 XBT_INLINE XBT_PUBLIC(void *) xbt_dynar_get_ptr(const xbt_dynar_t dynar,
                                                 const unsigned long idx);
 XBT_PUBLIC(void *) xbt_dynar_insert_at_ptr(xbt_dynar_t const dynar,
@@ -159,7 +163,7 @@ XBT_PUBLIC(void *) xbt_dynar_pop_ptr(xbt_dynar_t const dynar);
 /** @brief Quick setting of scalar content
  *  @hideinitializer */
 #  define xbt_dynar_set_as(dynar,idx,type,val) \
-         (*(type*)xbt_dynar_get_ptr((dynar),(idx))) = val
+         (*(type*)xbt_dynar_set_at_ptr((dynar),(idx))) = val
   /** @brief Quick retrieval of scalar content 
    *  @hideinitializer */
 #  define xbt_dynar_getlast_as(dynar,type) \