THROW1(bound_error,0, \
"dynar %p is empty", dynar)
+static void _dynar_map(const xbt_dynar_t dynar,
+ void_f_pvoid_t * const op);
static XBT_INLINE
void _xbt_clear_mem(void * const ptr,
DEBUG1("Reset the dynar %p",(void*)dynar);
if (dynar->free_f) {
- xbt_dynar_map(dynar, dynar->free_f);
+ _dynar_map(dynar, dynar->free_f);
}
/*
if (dynar->data)
xbt_dynar_remove_at(dynar, 0, dst);
}
+static void _dynar_map(const xbt_dynar_t dynar,
+ void_f_pvoid_t * const op) {
+ char elm[SIZEOF_MAX];
+ const unsigned long used = dynar->used;
+ unsigned long i = 0;
+
+ for (i = 0; i < used; i++) {
+ _xbt_dynar_get_elm(elm, dynar, i);
+ op(elm);
+ }
+}
+
/** @brief Apply a function to each member of a dynar
*
* The mapped function may change the value of the element itself,
_dynar_lock(dynar);
_sanity_check_dynar(dynar);
- {
- char elm[SIZEOF_MAX];
- const unsigned long used = dynar->used;
- unsigned long i = 0;
+ _dynar_map(dynar,op);
- for (i = 0; i < used; i++) {
- _xbt_dynar_get_elm(elm, dynar, i);
- op(elm);
- }
- }
_dynar_unlock(dynar);
}