git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@2489
48e7efb5-ca39-0410-a469-
dd3cf9ba447f
if (object) {
_xbt_dynar_get_elm(object, dynar, idx);
} else if (dynar->free_f) {
if (object) {
_xbt_dynar_get_elm(object, dynar, idx);
} else if (dynar->free_f) {
- char elm[SIZEOF_MAX];
- _xbt_dynar_get_elm(elm, dynar, idx);
- (*dynar->free_f)(elm);
+ if (dynar->elmsize <= SIZEOF_MAX) {
+ char elm[SIZEOF_MAX];
+ _xbt_dynar_get_elm(elm, dynar, idx);
+ (*dynar->free_f)(elm);
+ } else {
+ char *elm=malloc(dynar->elmsize);
+ _xbt_dynar_get_elm(elm, dynar, idx);
+ (*dynar->free_f)(elm);
+ free(elm);
+ }
}
nb_shift = dynar->used-1 - idx;
}
nb_shift = dynar->used-1 - idx;