Mercurial > hg > xemacs-beta
comparison src/lisp.h @ 5050:6f2158fa75ed
Fix quick-build, use asserts() in place of ABORT()
-------------------- ChangeLog entries follow: --------------------
ChangeLog addition:
2010-02-20 Ben Wing <ben@xemacs.org>
* configure.ac (XE_COMPLEX_ARG):
Correct doc of --quick-build: It also doesn't check for Lisp shadows.
src/ChangeLog addition:
2010-02-20 Ben Wing <ben@xemacs.org>
* EmacsFrame.c:
* EmacsFrame.c (EmacsFrameRecomputeCellSize):
* alloca.c (i00afunc):
* buffer.c:
* buffer.c (MARKED_SLOT):
* buffer.c (complex_vars_of_buffer):
* cm.c:
* cm.c (cmcheckmagic):
* console.c:
* console.c (MARKED_SLOT):
* device-x.c:
* device-x.c (x_get_visual_depth):
* emacs.c (sort_args):
* eval.c (throw_or_bomb_out):
* event-stream.c:
* event-stream.c (Fadd_timeout):
* event-stream.c (Fadd_async_timeout):
* event-stream.c (Frecent_keys):
* events.c:
* events.c (Fdeallocate_event):
* events.c (event_pixel_translation):
* extents.c:
* extents.c (process_extents_for_insertion_mapper):
* fns.c (Fbase64_encode_region):
* fns.c (Fbase64_encode_string):
* fns.c (Fbase64_decode_region):
* fns.c (Fbase64_decode_string):
* font-lock.c:
* font-lock.c (find_context):
* frame-x.c:
* frame-x.c (x_wm_mark_shell_size_user_specified):
* frame-x.c (x_wm_mark_shell_position_user_specified):
* frame-x.c (x_wm_set_shell_iconic_p):
* frame-x.c (x_wm_set_cell_size):
* frame-x.c (x_wm_set_variable_size):
* frame-x.c (x_wm_store_class_hints):
* frame-x.c (x_wm_maybe_store_wm_command):
* frame-x.c (x_initialize_frame_size):
* frame.c (delete_frame_internal):
* frame.c (change_frame_size_1):
* free-hook.c (check_free):
* free-hook.c (note_block_input):
* free-hook.c (log_gcpro):
* gccache-gtk.c (gc_cache_lookup):
* gccache-x.c:
* gccache-x.c (gc_cache_lookup):
* glyphs-gtk.c:
* glyphs-gtk.c (init_image_instance_from_gdk_pixmap):
* glyphs-x.c:
* glyphs-x.c (extract_xpm_color_names):
* insdel.c:
* insdel.c (move_gap):
* keymap.c:
* keymap.c (keymap_lookup_directly):
* keymap.c (keymap_delete_inverse_internal):
* keymap.c (accessible_keymaps_mapper_1):
* keymap.c (where_is_recursive_mapper):
* lisp.h:
* lstream.c (make_lisp_buffer_stream_1):
* macros.c:
* macros.c (pop_kbd_macro_event):
* mc-alloc.c (remove_page_from_used_list):
* menubar-x.c:
* menubar-x.c (set_frame_menubar):
* ralloc.c:
* ralloc.c (obtain):
* ralloc.c (relinquish):
* ralloc.c (relocate_blocs):
* ralloc.c (resize_bloc):
* ralloc.c (r_alloc_free):
* ralloc.c (r_re_alloc):
* ralloc.c (r_alloc_thaw):
* ralloc.c (init_ralloc):
* ralloc.c (Free_Addr_Block):
* scrollbar-x.c:
* scrollbar-x.c (x_update_scrollbar_instance_status):
* sunplay.c (init_device):
* unexnt.c:
* unexnt.c (read_in_bss):
* unexnt.c (map_in_heap):
* window.c:
* window.c (real_window):
* window.c (window_display_lines):
* window.c (window_display_buffer):
* window.c (set_window_display_buffer):
* window.c (unshow_buffer):
* window.c (Fget_lru_window):
if (...) ABORT(); ---> assert();
More specifically:
if (x == y) ABORT (); --> assert (x != y);
if (x != y) ABORT (); --> assert (x == y);
if (x > y) ABORT (); --> assert (x <= y);
etc.
if (!x) ABORT (); --> assert (x);
if (x) ABORT (); --> assert (!x);
DeMorgan's Law's applied and manually simplified:
if (x && !y) ABORT (); --> assert (!x || y);
if (!x || y >= z) ABORT (); --> assert (x && y < z);
Checked to make sure that assert() of an expression with side
effects ensures that the side effects get executed even when
asserts are disabled, and add a comment about this being a
requirement of any "disabled assert" expression.
* depend:
* make-src-depend:
* make-src-depend (PrintDeps):
Fix broken code in make-src-depend so it does what it was always
supposed to do, which was separate out config.h and lisp.h and
all the files they include into separate variables in the
depend part of Makefile so that quick-build can turn off the
lisp.h/config.h/text.h/etc. dependencies of the source files, to
speed up recompilation.
author | Ben Wing <ben@xemacs.org> |
---|---|
date | Sat, 20 Feb 2010 05:05:54 -0600 |
parents | 838630c0734f |
children | 92dc90c0bb40 |
comparison
equal
deleted
inserted
replaced
5030:422b4b4fb2a6 | 5050:6f2158fa75ed |
---|---|
1231 MODULE_API void assert_failed (const Ascbyte *, int, const Ascbyte *); | 1231 MODULE_API void assert_failed (const Ascbyte *, int, const Ascbyte *); |
1232 #define ABORT() assert_failed (__FILE__, __LINE__, "ABORT()") | 1232 #define ABORT() assert_failed (__FILE__, __LINE__, "ABORT()") |
1233 #define abort_with_message(msg) assert_failed (__FILE__, __LINE__, msg) | 1233 #define abort_with_message(msg) assert_failed (__FILE__, __LINE__, msg) |
1234 | 1234 |
1235 /* This used to be ((void) (0)) but that triggers lots of unused variable | 1235 /* This used to be ((void) (0)) but that triggers lots of unused variable |
1236 warnings. It's pointless to force all that code to be rewritten, with | 1236 warnings -- furthermore, if `x' has any side effects, e.g. |
1237 added ifdefs. Any reasonable compiler will eliminate an expression with | 1237 assert (++depth <= 20);, we DEFINITELY want to execute the code inside of |
1238 `x'. Any reasonable compiler will eliminate an expression with | |
1238 no effects. We keep this abstracted out like this in case we want to | 1239 no effects. We keep this abstracted out like this in case we want to |
1239 change it in the future. */ | 1240 change it in the future. */ |
1240 #define disabled_assert(x) ((void) (x)) | 1241 #define disabled_assert(x) ((void) (x)) |
1241 #define disabled_assert_with_message(x, msg) ((void) msg, disabled_assert (x)) | 1242 #define disabled_assert_with_message(x, msg) ((void) msg, disabled_assert (x)) |
1242 #define disabled_assert_at_line(x, file, line) \ | 1243 #define disabled_assert_at_line(x, file, line) \ |
3176 #define MARKERP(x) RECORDP (x, marker) | 3177 #define MARKERP(x) RECORDP (x, marker) |
3177 #define CHECK_MARKER(x) CHECK_RECORD (x, marker) | 3178 #define CHECK_MARKER(x) CHECK_RECORD (x, marker) |
3178 #define CONCHECK_MARKER(x) CONCHECK_RECORD (x, marker) | 3179 #define CONCHECK_MARKER(x) CONCHECK_RECORD (x, marker) |
3179 | 3180 |
3180 /* The second check was looking for GCed markers still in use */ | 3181 /* The second check was looking for GCed markers still in use */ |
3181 /* if (INTP (XMARKER (x)->lheader.next.v)) ABORT (); */ | 3182 /* assert (!INTP (XMARKER (x)->lheader.next.v)); */ |
3182 | 3183 |
3183 #define marker_next(m) ((m)->next) | 3184 #define marker_next(m) ((m)->next) |
3184 #define marker_prev(m) ((m)->prev) | 3185 #define marker_prev(m) ((m)->prev) |
3185 | 3186 |
3186 /*-------------------basic int (no connection to char)------------------*/ | 3187 /*-------------------basic int (no connection to char)------------------*/ |