A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
xbt_dynar_map did not work well with dynars of structs.
[simgrid.git]
/
src
/
xbt
/
dynar.c
diff --git
a/src/xbt/dynar.c
b/src/xbt/dynar.c
index
4b69794
..
51d207b
100644
(file)
--- a/
src/xbt/dynar.c
+++ b/
src/xbt/dynar.c
@@
-35,12
+35,12
@@
static XBT_INLINE void _dynar_unlock(xbt_dynar_t dynar)
static XBT_INLINE void _sanity_check_dynar(xbt_dynar_t dynar)
{
static XBT_INLINE void _sanity_check_dynar(xbt_dynar_t dynar)
{
- xbt_assert
0
(dynar, "dynar is NULL");
+ xbt_assert(dynar, "dynar is NULL");
}
static XBT_INLINE void _sanity_check_idx(int idx)
{
}
static XBT_INLINE void _sanity_check_idx(int idx)
{
- xbt_assert
1
(idx >= 0, "dynar idx(=%d) < 0", (int) (idx));
+ xbt_assert(idx >= 0, "dynar idx(=%d) < 0", (int) (idx));
}
static XBT_INLINE void _check_inbound_idx(xbt_dynar_t dynar, int idx)
}
static XBT_INLINE void _check_inbound_idx(xbt_dynar_t dynar, int idx)
@@
-676,12
+676,13
@@
XBT_INLINE void xbt_dynar_shift(xbt_dynar_t const dynar, void *const dst)
static void _dynar_map(const xbt_dynar_t dynar, void_f_pvoid_t const op)
{
static void _dynar_map(const xbt_dynar_t dynar, void_f_pvoid_t const op)
{
- char elm[SIZEOF_MAX];
+ char *const data = (char *) dynar->data;
+ const unsigned long elmsize = dynar->elmsize;
const unsigned long used = dynar->used;
const unsigned long used = dynar->used;
- unsigned long i
= 0
;
+ unsigned long i;
for (i = 0; i < used; i++) {
for (i = 0; i < used; i++) {
-
_xbt_dynar_get_elm(elm, dynar, i)
;
+
char* elm = (char*) data + i * elmsize
;
(*op) (elm);
}
}
(*op) (elm);
}
}