comparison src/dynarr.c @ 3293:168191f9515f

[xemacs-hg @ 2006-03-20 21:20:19 by crestani] 2006-03-20 Marcus Crestani <crestani@xemacs.org> * dynarr.c (Dynarr_realloc): Malloc correct size. * lisp.h: Dynamic array cleanup, remove duplicate code.
author crestani
date Mon, 20 Mar 2006 21:20:29 +0000
parents 72b7d685c194
children 229bd619740a
comparison
equal deleted inserted replaced
3292:b327b25c93bf 3293:168191f9515f
131 static void 131 static void
132 Dynarr_realloc (Dynarr *dy, int new_size) 132 Dynarr_realloc (Dynarr *dy, int new_size)
133 { 133 {
134 if (DUMPEDP (dy->base)) 134 if (DUMPEDP (dy->base))
135 { 135 {
136 void *new_base = malloc (new_size); 136 void *new_base = malloc (new_size * dy->elsize);
137 memcpy (new_base, dy->base, 137 memcpy (new_base, dy->base,
138 (dy->max < new_size ? dy->max : new_size) * dy->elsize); 138 (dy->max < new_size ? dy->max : new_size) * dy->elsize);
139 dy->base = new_base; 139 dy->base = new_base;
140 } 140 }
141 else 141 else