comparison src/dynarr.c @ 5027:22179cd0fe15

merge
author Ben Wing <ben@xemacs.org>
date Wed, 10 Feb 2010 07:25:19 -0600
parents 838630c0734f
children 9410323e4b0d b5df3737028a
comparison
equal deleted inserted replaced
5026:46cf825f6158 5027:22179cd0fe15
243 243
244 Dynarr_resize_if (dy, len); 244 Dynarr_resize_if (dy, len);
245 245
246 /* #### This could conceivably be wrong, if code wants to access stuff 246 /* #### This could conceivably be wrong, if code wants to access stuff
247 between len and largest. */ 247 between len and largest. */
248 structure_checking_assert (start >= 0 && start <= Dynarr_length (dy)); 248 dynarr_checking_assert (start >= 0 && start <= Dynarr_length (dy));
249 249
250 if (start != Dynarr_length (dy)) 250 if (start != Dynarr_length (dy))
251 { 251 {
252 memmove ((char *) dy->base + (start + len)*dy->elsize, 252 memmove ((char *) dy->base + (start + len)*dy->elsize,
253 (char *) dy->base + start*dy->elsize, 253 (char *) dy->base + start*dy->elsize,
265 void 265 void
266 Dynarr_delete_many (void *d, int start, int len) 266 Dynarr_delete_many (void *d, int start, int len)
267 { 267 {
268 Dynarr *dy = Dynarr_verify_mod (d); 268 Dynarr *dy = Dynarr_verify_mod (d);
269 269
270 structure_checking_assert (start >= 0 && len >= 0 && 270 dynarr_checking_assert (start >= 0 && len >= 0 &&
271 start + len <= Dynarr_length (dy)); 271 start + len <= Dynarr_length (dy));
272 272
273 memmove ((char *) dy->base + start*dy->elsize, 273 memmove ((char *) dy->base + start*dy->elsize,
274 (char *) dy->base + (start + len)*dy->elsize, 274 (char *) dy->base + (start + len)*dy->elsize,
275 (Dynarr_length (dy) - start - len)*dy->elsize); 275 (Dynarr_length (dy) - start - len)*dy->elsize);
276 276