comparison src/dynarr.c @ 5023:838630c0734f

error-checking, Windows shutdown changes -------------------- ChangeLog entries follow: -------------------- src/ChangeLog addition: 2010-02-09 Ben Wing <ben@xemacs.org> * dynarr.c (Dynarr_insert_many): * dynarr.c (Dynarr_delete_many): * emacs.c: * emacs.c (pause_so_user_can_read_messages): * emacs.c (Fkill_emacs): * emacs.c (guts_of_fatal_error_signal): * lisp.h: * lisp.h (INLINE_ERROR_CHECK_ARGS): * lisp.h (Dynarr_set_length_1): * lisp.h (Dynarr_set_length): * lisp.h (Dynarr_pop): Add ERROR_CHECK_DYNARR, dynarr_checking_assert(). Use it. Sort existing error-check categories in lisp.h, remove most of the (unused) assert variations from most categories. Add a long comment about reorganizing the system by categories and subcategories. Create ERROR_CHECK_ANY if any error-checking categories defined, and use it in emacs.c to define USER_IS_DEVELOPING_XEMACS. In emacs.c and cmdloop.c, don't display a message at early shutdown or fatal shutdown when on Cygwin, only Windows native -- Cygwin has a working stderr that shows error output. Update comment in Dynarr_verify_pos_atp().
author Ben Wing <ben@xemacs.org>
date Tue, 09 Feb 2010 19:13:44 -0600
parents 16112448d484
children 9410323e4b0d b5df3737028a
comparison
equal deleted inserted replaced
5022:cfe36e196dc7 5023:838630c0734f
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