diff options
| author | Stefan Monnier | 2011-03-30 15:18:12 -0400 |
|---|---|---|
| committer | Stefan Monnier | 2011-03-30 15:18:12 -0400 |
| commit | 44f230aa043ebb222aa0876b44d70484d5dd38db (patch) | |
| tree | 6cfcf8a0202265225d83a5ac44aa1f91aa816c8d /src | |
| parent | 1c470562971bd86b1767ceb9ae95ece71228549f (diff) | |
| download | emacs-44f230aa043ebb222aa0876b44d70484d5dd38db.tar.gz emacs-44f230aa043ebb222aa0876b44d70484d5dd38db.zip | |
* src/eval.c (struct backtrace): Don't cheat with negative numbers, but do
steal a few bits to be more compact.
(interactive_p, Fbacktrace, Fbacktrace_frame, mark_backtrace):
Remove unneeded casts.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 77 | ||||
| -rw-r--r-- | src/eval.c | 32 |
2 files changed, 59 insertions, 50 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 0b0ed2ed775..a6623803a6e 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,5 +1,10 @@ | |||
| 1 | 2011-03-30 Stefan Monnier <monnier@iro.umontreal.ca> | 1 | 2011-03-30 Stefan Monnier <monnier@iro.umontreal.ca> |
| 2 | 2 | ||
| 3 | * eval.c (struct backtrace): Don't cheat with negative numbers, but do | ||
| 4 | steal a few bits to be more compact. | ||
| 5 | (interactive_p, Fbacktrace, Fbacktrace_frame, mark_backtrace): | ||
| 6 | Remove unneeded casts. | ||
| 7 | |||
| 3 | * bytecode.c (Fbyte_code): CAR and CDR can GC. | 8 | * bytecode.c (Fbyte_code): CAR and CDR can GC. |
| 4 | 9 | ||
| 5 | 2011-03-30 Zachary Kanfer <zkanfer@gmail.com> (tiny change) | 10 | 2011-03-30 Zachary Kanfer <zkanfer@gmail.com> (tiny change) |
| @@ -344,8 +349,8 @@ | |||
| 344 | (create_process): Use 'volatile' to avoid vfork clobbering (Bug#8298). | 349 | (create_process): Use 'volatile' to avoid vfork clobbering (Bug#8298). |
| 345 | 350 | ||
| 346 | Make tparam.h and terminfo.c consistent. | 351 | Make tparam.h and terminfo.c consistent. |
| 347 | * cm.c (tputs, tgoto, BC, UP): Remove extern decls. Include | 352 | * cm.c (tputs, tgoto, BC, UP): Remove extern decls. |
| 348 | tparam.h instead, since it declares them. | 353 | Include tparam.h instead, since it declares them. |
| 349 | * cm.h (PC): Remove extern decl; tparam.h now does this. | 354 | * cm.h (PC): Remove extern decl; tparam.h now does this. |
| 350 | * deps.mk (cm.o, terminfo.o): Depend on tparam.h. | 355 | * deps.mk (cm.o, terminfo.o): Depend on tparam.h. |
| 351 | * terminfo.c: Include tparam.h, to check interfaces. | 356 | * terminfo.c: Include tparam.h, to check interfaces. |
| @@ -391,8 +396,8 @@ | |||
| 391 | 396 | ||
| 392 | * intervals.h (CHECK_TOTAL_LENGTH): Avoid empty "else". | 397 | * intervals.h (CHECK_TOTAL_LENGTH): Avoid empty "else". |
| 393 | 398 | ||
| 394 | * atimer.c (start_atimer, append_atimer_lists, set_alarm): Rename | 399 | * atimer.c (start_atimer, append_atimer_lists, set_alarm): |
| 395 | locals to avoid shadowing. | 400 | Rename locals to avoid shadowing. |
| 396 | 401 | ||
| 397 | * sound.c (wav_play, au_play, Fplay_sound_internal): | 402 | * sound.c (wav_play, au_play, Fplay_sound_internal): |
| 398 | Fix pointer signedness. | 403 | Fix pointer signedness. |
| @@ -561,8 +566,8 @@ | |||
| 561 | gcc -Wbad-function-cast warning. | 566 | gcc -Wbad-function-cast warning. |
| 562 | (default_value, arithcompare, arith_driver, arith_error): Now static. | 567 | (default_value, arithcompare, arith_driver, arith_error): Now static. |
| 563 | (store_symval_forwarding): Rename local to avoid shadowing. | 568 | (store_symval_forwarding): Rename local to avoid shadowing. |
| 564 | (Fmake_variable_buffer_local, Fmake_local_variable): Mark | 569 | (Fmake_variable_buffer_local, Fmake_local_variable): |
| 565 | variables as initialized. | 570 | Mark variables as initialized. |
| 566 | (do_blv_forwarding, do_symval_forwarding): Remove; unused. | 571 | (do_blv_forwarding, do_symval_forwarding): Remove; unused. |
| 567 | 572 | ||
| 568 | * alloc.c (check_cons_list): Do not define unless GC_CHECK_CONS_LIST. | 573 | * alloc.c (check_cons_list): Do not define unless GC_CHECK_CONS_LIST. |
| @@ -816,8 +821,8 @@ | |||
| 816 | (BUF_PT_BYTE): Rewrite to handle indirect buffers (Bug#8219). | 821 | (BUF_PT_BYTE): Rewrite to handle indirect buffers (Bug#8219). |
| 817 | These macros can no longer be used for assignment. | 822 | These macros can no longer be used for assignment. |
| 818 | 823 | ||
| 819 | * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Assign | 824 | * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): |
| 820 | struct members directly, instead of using BUF_BEGV etc. | 825 | Assign struct members directly, instead of using BUF_BEGV etc. |
| 821 | (record_buffer_markers, fetch_buffer_markers): New functions for | 826 | (record_buffer_markers, fetch_buffer_markers): New functions for |
| 822 | recording and fetching special buffer markers. | 827 | recording and fetching special buffer markers. |
| 823 | (set_buffer_internal_1, set_buffer_temp): Use them. | 828 | (set_buffer_internal_1, set_buffer_temp): Use them. |
| @@ -938,8 +943,8 @@ | |||
| 938 | * term.c (encode_terminal_code): Now external again, used by | 943 | * term.c (encode_terminal_code): Now external again, used by |
| 939 | w32console.c and msdos.c. | 944 | w32console.c and msdos.c. |
| 940 | 945 | ||
| 941 | * makefile.w32-in ($(BLD)/term.$(O), ($(BLD)/tparam.$(O)): Depend | 946 | * makefile.w32-in ($(BLD)/term.$(O), ($(BLD)/tparam.$(O)): |
| 942 | on $(SRC)/tparam.h, see 2011-03-11T07:24:21Z!eggert@cs.ucla.edu. | 947 | Depend on $(SRC)/tparam.h, see 2011-03-11T07:24:21Z!eggert@cs.ucla.edu. |
| 943 | 948 | ||
| 944 | 2011-03-11 Paul Eggert <eggert@cs.ucla.edu> | 949 | 2011-03-11 Paul Eggert <eggert@cs.ucla.edu> |
| 945 | 950 | ||
| @@ -1003,8 +1008,8 @@ | |||
| 1003 | (x_delete_glyphs, x_ins_del_lines): Mark with NO_RETURN. | 1008 | (x_delete_glyphs, x_ins_del_lines): Mark with NO_RETURN. |
| 1004 | (x_connection_closed): Tell GCC not to suggest NO_RETURN. | 1009 | (x_connection_closed): Tell GCC not to suggest NO_RETURN. |
| 1005 | 1010 | ||
| 1006 | * xfaces.c (clear_face_cache, Fx_list_fonts, Fface_font): Rename | 1011 | * xfaces.c (clear_face_cache, Fx_list_fonts, Fface_font): |
| 1007 | or move locals to avoid shadowing. | 1012 | Rename or move locals to avoid shadowing. |
| 1008 | (tty_defined_color, merge_face_heights): Now static. | 1013 | (tty_defined_color, merge_face_heights): Now static. |
| 1009 | (free_realized_faces_for_fontset): Remove; not used. | 1014 | (free_realized_faces_for_fontset): Remove; not used. |
| 1010 | (Fx_list_fonts): Mark variable that gcc -Wuninitialized | 1015 | (Fx_list_fonts): Mark variable that gcc -Wuninitialized |
| @@ -1162,12 +1167,12 @@ | |||
| 1162 | (xg_prepare_tooltip, xg_hide_tooltip): Call gdk_window_get_screen. | 1167 | (xg_prepare_tooltip, xg_hide_tooltip): Call gdk_window_get_screen. |
| 1163 | (xg_prepare_tooltip, create_dialog, menubar_map_cb) | 1168 | (xg_prepare_tooltip, create_dialog, menubar_map_cb) |
| 1164 | (xg_update_frame_menubar, xg_tool_bar_detach_callback) | 1169 | (xg_update_frame_menubar, xg_tool_bar_detach_callback) |
| 1165 | (xg_tool_bar_attach_callback, xg_update_tool_bar_sizes): Call | 1170 | (xg_tool_bar_attach_callback, xg_update_tool_bar_sizes): |
| 1166 | gtk_widget_get_preferred_size. | 1171 | Call gtk_widget_get_preferred_size. |
| 1167 | (xg_frame_resized): gdk_window_get_geometry only takes 5 | 1172 | (xg_frame_resized): gdk_window_get_geometry only takes 5 |
| 1168 | parameters. | 1173 | parameters. |
| 1169 | (xg_win_to_widget, xg_event_is_for_menubar): Call | 1174 | (xg_win_to_widget, xg_event_is_for_menubar): |
| 1170 | gdk_x11_window_lookup_for_display. | 1175 | Call gdk_x11_window_lookup_for_display. |
| 1171 | (xg_set_widget_bg): New function. | 1176 | (xg_set_widget_bg): New function. |
| 1172 | (delete_cb): New function. | 1177 | (delete_cb): New function. |
| 1173 | (xg_create_frame_widgets): connect delete-event to delete_cb. | 1178 | (xg_create_frame_widgets): connect delete-event to delete_cb. |
| @@ -1263,7 +1268,7 @@ | |||
| 1263 | (produce_glyphless_glyph): Make a pointer "const" | 1268 | (produce_glyphless_glyph): Make a pointer "const" |
| 1264 | since it might point to immutable storage. | 1269 | since it might point to immutable storage. |
| 1265 | (update_window_cursor): Now static, since it's not used elsewhere. | 1270 | (update_window_cursor): Now static, since it's not used elsewhere. |
| 1266 | (SKIP_GLYPHS): Removed unused macro. | 1271 | (SKIP_GLYPHS): Remove unused macro. |
| 1267 | 1272 | ||
| 1268 | 2011-03-06 Michael Shields <shields@msrl.com> (tiny change) | 1273 | 2011-03-06 Michael Shields <shields@msrl.com> (tiny change) |
| 1269 | 1274 | ||
| @@ -7760,7 +7765,7 @@ | |||
| 7760 | * xterm.c (x_send_scroll_bar_event, SET_SAVED_MENU_EVENT) | 7765 | * xterm.c (x_send_scroll_bar_event, SET_SAVED_MENU_EVENT) |
| 7761 | (handle_one_xevent, x_check_errors, xim_initialize, x_term_init): | 7766 | (handle_one_xevent, x_check_errors, xim_initialize, x_term_init): |
| 7762 | Likewise. | 7767 | Likewise. |
| 7763 | * character.h (BCOPY_SHORT): Removed. | 7768 | * character.h (BCOPY_SHORT): Remove. |
| 7764 | * config.in: Regenerate. | 7769 | * config.in: Regenerate. |
| 7765 | * dispnew.c (safe_bcopy): Only define as dummy if PROFILING. | 7770 | * dispnew.c (safe_bcopy): Only define as dummy if PROFILING. |
| 7766 | * emacs.c (main) [PROFILING]: Don't declare | 7771 | * emacs.c (main) [PROFILING]: Don't declare |
| @@ -19549,7 +19554,7 @@ | |||
| 19549 | Set xftfont_info->ft_size. Don't unlock the face. Check BDF | 19554 | Set xftfont_info->ft_size. Don't unlock the face. Check BDF |
| 19550 | properties if appropriate. | 19555 | properties if appropriate. |
| 19551 | (xftfont_close): Unlock the face. | 19556 | (xftfont_close): Unlock the face. |
| 19552 | (xftfont_anchor_point, xftfont_shape): Deleted. | 19557 | (xftfont_anchor_point, xftfont_shape): Delete. |
| 19553 | (syms_of_xftfont): Don't set members anchor_point and shape of | 19558 | (syms_of_xftfont): Don't set members anchor_point and shape of |
| 19554 | xftfont_driver. | 19559 | xftfont_driver. |
| 19555 | 19560 | ||
| @@ -21454,7 +21459,7 @@ | |||
| 21454 | Delete externs. | 21459 | Delete externs. |
| 21455 | (fontset_from_font_name): Extern it. | 21460 | (fontset_from_font_name): Extern it. |
| 21456 | (FS_LOAD_FONT, FONT_INFO_ID, FONT_INFO_FROM_ID) | 21461 | (FS_LOAD_FONT, FONT_INFO_ID, FONT_INFO_FROM_ID) |
| 21457 | (FONT_INFO_FROM_FACE): Deleted. | 21462 | (FONT_INFO_FROM_FACE): Delete. |
| 21458 | (face_for_font): Adjust prototype. | 21463 | (face_for_font): Adjust prototype. |
| 21459 | 21464 | ||
| 21460 | * fontset.c: Throughout the file, delete all USE_FONT_BACKEND | 21465 | * fontset.c: Throughout the file, delete all USE_FONT_BACKEND |
| @@ -21471,7 +21476,7 @@ | |||
| 21471 | (fontset_compare_rfontdef): New function. | 21476 | (fontset_compare_rfontdef): New function. |
| 21472 | (reorder_font_vector): Remove the argument CHARSET-ID. Sort | 21477 | (reorder_font_vector): Remove the argument CHARSET-ID. Sort |
| 21473 | rfont-defs by qsort. Adjusted for the change of font-group vector. | 21478 | rfont-defs by qsort. Adjusted for the change of font-group vector. |
| 21474 | (load_font_get_repertory): Deleted. | 21479 | (load_font_get_repertory): Delete. |
| 21475 | (fontset_find_font): Use new macros to ref/set elements of | 21480 | (fontset_find_font): Use new macros to ref/set elements of |
| 21476 | font-def and rfont-def. | 21481 | font-def and rfont-def. |
| 21477 | (fontset_font): Fix the timing of remembering that no font for C. | 21482 | (fontset_font): Fix the timing of remembering that no font for C. |
| @@ -21487,11 +21492,11 @@ | |||
| 21487 | font-def. | 21492 | font-def. |
| 21488 | (Fnew_fontset): Use font_unparse_xlfd to generate | 21493 | (Fnew_fontset): Use font_unparse_xlfd to generate |
| 21489 | FONTSET_ASCII (fontset). | 21494 | FONTSET_ASCII (fontset). |
| 21490 | (new_fontset_from_font_name): Deleted. | 21495 | (new_fontset_from_font_name): Delete. |
| 21491 | (fontset_from_font): Rename from new_fontset_from_font. Check if | 21496 | (fontset_from_font): Rename from new_fontset_from_font. Check if |
| 21492 | a fontset is already created for the font. FIx updating of | 21497 | a fontset is already created for the font. FIx updating of |
| 21493 | Vfontset_alias_alist. | 21498 | Vfontset_alias_alist. |
| 21494 | (fontset_ascii_font): Deleted. | 21499 | (fontset_ascii_font): Delete. |
| 21495 | (Ffont_info): Adjust for the format change of font-spec. | 21500 | (Ffont_info): Adjust for the format change of font-spec. |
| 21496 | (Finternal_char_font): Likewise. | 21501 | (Finternal_char_font): Likewise. |
| 21497 | (Ffontset_info): Likewise. | 21502 | (Ffontset_info): Likewise. |
| @@ -21519,7 +21524,7 @@ | |||
| 21519 | (ftfont_list): Return a list, not vector. | 21524 | (ftfont_list): Return a list, not vector. |
| 21520 | (ftfont_match): Use ftfont_spec_pattern to get a pattern. | 21525 | (ftfont_match): Use ftfont_spec_pattern to get a pattern. |
| 21521 | (ftfont_list_family): Don't downcase names. | 21526 | (ftfont_list_family): Don't downcase names. |
| 21522 | (ftfont_free_entity): Deleted. | 21527 | (ftfont_free_entity): Delete. |
| 21523 | (ftfont_open): Return a font-object. Adjusted for the change of | 21528 | (ftfont_open): Return a font-object. Adjusted for the change of |
| 21524 | struct font. Get underline_thickness and underline_position from | 21529 | struct font. Get underline_thickness and underline_position from |
| 21525 | font property. Don't update dpyinfo->smallest_font_height and | 21530 | font property. Don't update dpyinfo->smallest_font_height and |
| @@ -21571,13 +21576,13 @@ | |||
| 21571 | (QCfoundry, QCadstyle, QCregistry, QCspacing, QCsize, QCavgwidth) | 21576 | (QCfoundry, QCadstyle, QCregistry, QCspacing, QCsize, QCavgwidth) |
| 21572 | (Qp): Extern them. | 21577 | (Qp): Extern them. |
| 21573 | (clear_font_table, load_face_font, xlfd_lookup_field_contents): | 21578 | (clear_font_table, load_face_font, xlfd_lookup_field_contents): |
| 21574 | Deleted. | 21579 | Delete. |
| 21575 | (struct font_name): Deleted. | 21580 | (struct font_name): Delete. |
| 21576 | (xlfd_numeric_value, xlfd_symbolic_value): Deleted. | 21581 | (xlfd_numeric_value, xlfd_symbolic_value): Delete. |
| 21577 | (compare_fonts_by_sort_order): New function. | 21582 | (compare_fonts_by_sort_order): New function. |
| 21578 | (xlfd_numeric_slant, xlfd_symbolic_slant, xlfd_numeric_weight) | 21583 | (xlfd_numeric_slant, xlfd_symbolic_slant, xlfd_numeric_weight) |
| 21579 | (xlfd_symbolic_weight, xlfd_numeric_swidth, xlfd_symbolic_swidth): | 21584 | (xlfd_symbolic_weight, xlfd_numeric_swidth, xlfd_symbolic_swidth): |
| 21580 | Deleted. | 21585 | Delete. |
| 21581 | (Fx_family_fonts): Use font_list_entities, and sort fonts by | 21586 | (Fx_family_fonts): Use font_list_entities, and sort fonts by |
| 21582 | compare_fonts_by_sort_order. | 21587 | compare_fonts_by_sort_order. |
| 21583 | (Fx_font_family_list): Call Ffont_family_list. | 21588 | (Fx_font_family_list): Call Ffont_family_list. |
| @@ -21590,9 +21595,9 @@ | |||
| 21590 | (free_font_names, sort_fonts, x_face_list_fonts) | 21595 | (free_font_names, sort_fonts, x_face_list_fonts) |
| 21591 | (face_font_available_p, sorted_font_list, cmp_font_names) | 21596 | (face_font_available_p, sorted_font_list, cmp_font_names) |
| 21592 | (font_list_1, concat_font_list, font_list, remove_duplicates): | 21597 | (font_list_1, concat_font_list, font_list, remove_duplicates): |
| 21593 | Deleted. | 21598 | Delete. |
| 21594 | (Fx_list_fonts): Use Ffont_list. | 21599 | (Fx_list_fonts): Use Ffont_list. |
| 21595 | (LFACE_AVGWIDTH): Deleted. | 21600 | (LFACE_AVGWIDTH): Delete. |
| 21596 | (check_lface_attrs): Don't check LFACE_AVGWIDTH. Check LFACE_FONT | 21601 | (check_lface_attrs): Don't check LFACE_AVGWIDTH. Check LFACE_FONT |
| 21597 | by FONTP. | 21602 | by FONTP. |
| 21598 | (lface_fully_specified_p): Don't check LFACE_AVGWIDTH. | 21603 | (lface_fully_specified_p): Don't check LFACE_AVGWIDTH. |
| @@ -21614,7 +21619,7 @@ | |||
| 21614 | (Fface_font): Get a font name from font->props[FONT_NAME_INDEX]. | 21619 | (Fface_font): Get a font name from font->props[FONT_NAME_INDEX]. |
| 21615 | (lface_same_font_attributes_p): Don't check LFACE_AVGWIDTH. | 21620 | (lface_same_font_attributes_p): Don't check LFACE_AVGWIDTH. |
| 21616 | Compare fonts by EQ. | 21621 | Compare fonts by EQ. |
| 21617 | (lookup_non_ascii_face): Deleted. | 21622 | (lookup_non_ascii_face): Delete. |
| 21618 | (face_for_font): The 2nd argument changed. | 21623 | (face_for_font): The 2nd argument changed. |
| 21619 | (x_supports_face_attributes_p): Don't check LFACE_AVGWIDTH. | 21624 | (x_supports_face_attributes_p): Don't check LFACE_AVGWIDTH. |
| 21620 | Check atomic font properties by case insensitive. | 21625 | Check atomic font properties by case insensitive. |
| @@ -21637,7 +21642,7 @@ | |||
| 21637 | 21642 | ||
| 21638 | * xfont.c: Include <stdlib.h> and "ccl.h". | 21643 | * xfont.c: Include <stdlib.h> and "ccl.h". |
| 21639 | (struct xfont_info): New structure. | 21644 | (struct xfont_info): New structure. |
| 21640 | (xfont_query_font): Deleted. | 21645 | (xfont_query_font): Delete. |
| 21641 | (xfont_find_ccl_program): Rename from x_find_ccl_program and | 21646 | (xfont_find_ccl_program): Rename from x_find_ccl_program and |
| 21642 | moved from xterm.c. | 21647 | moved from xterm.c. |
| 21643 | (xfont_driver): Adjust for the change of struct font_driver. | 21648 | (xfont_driver): Adjust for the change of struct font_driver. |
| @@ -21653,7 +21658,7 @@ | |||
| 21653 | dpyinfo->smallest_char_width. | 21658 | dpyinfo->smallest_char_width. |
| 21654 | (xfont_close): Don't free struct font. | 21659 | (xfont_close): Don't free struct font. |
| 21655 | (xfont_prepare_face): Adjust for the change of struct font. | 21660 | (xfont_prepare_face): Adjust for the change of struct font. |
| 21656 | (xfont_done_face): Deleted. | 21661 | (xfont_done_face): Delete. |
| 21657 | (xfont_has_char): Adjust for the change of struct font. | 21662 | (xfont_has_char): Adjust for the change of struct font. |
| 21658 | (xfont_encode_char, xfont_draw): Likewise. | 21663 | (xfont_encode_char, xfont_draw): Likewise. |
| 21659 | (xfont_check): New function. | 21664 | (xfont_check): New function. |
| @@ -21683,7 +21688,7 @@ | |||
| 21683 | * xterm.c: Throughout the file, delete all USE_FONT_BACKEND | 21688 | * xterm.c: Throughout the file, delete all USE_FONT_BACKEND |
| 21684 | conditionals. Don't check enable_font_backend. Delete all codes | 21689 | conditionals. Don't check enable_font_backend. Delete all codes |
| 21685 | used only when USE_FONT_BACKEND is not defined. Don't include ccl.h. | 21690 | used only when USE_FONT_BACKEND is not defined. Don't include ccl.h. |
| 21686 | (x_per_char_metric, x_encode_char): Deleted. | 21691 | (x_per_char_metric, x_encode_char): Delete. |
| 21687 | (x_set_cursor_gc, x_set_mouse_face_gc): Don't set GCFont. | 21692 | (x_set_cursor_gc, x_set_mouse_face_gc): Don't set GCFont. |
| 21688 | (x_compute_glyph_string_overhangs): Adjust for the change of | 21693 | (x_compute_glyph_string_overhangs): Adjust for the change of |
| 21689 | `struct face'. | 21694 | `struct face'. |
| @@ -21692,10 +21697,10 @@ | |||
| 21692 | (x_draw_glyph_string): Likewise. Use font->underline_position and | 21697 | (x_draw_glyph_string): Likewise. Use font->underline_position and |
| 21693 | font->underline_thickness. | 21698 | font->underline_thickness. |
| 21694 | (x_new_font): Rename from x_new_fontset2. | 21699 | (x_new_font): Rename from x_new_fontset2. |
| 21695 | (x_new_fontset, x_get_font_info, x_list_fonts): Deleted. | 21700 | (x_new_fontset, x_get_font_info, x_list_fonts): Delete. |
| 21696 | (x_check_font): Call `check' method of a font driver. | 21701 | (x_check_font): Call `check' method of a font driver. |
| 21697 | (x_font_min_bounds, x_compute_min_glyph_bounds, x_load_font) | 21702 | (x_font_min_bounds, x_compute_min_glyph_bounds, x_load_font) |
| 21698 | (x_query_font, x_get_font_repertory): Deleted. | 21703 | (x_query_font, x_get_font_repertory): Delete. |
| 21699 | (x_find_ccl_program): Rename and moved to xfont.c. | 21704 | (x_find_ccl_program): Rename and moved to xfont.c. |
| 21700 | (x_redisplay_interface): Adjust for the change of `struct | 21705 | (x_redisplay_interface): Adjust for the change of `struct |
| 21701 | redisplay_interface'. | 21706 | redisplay_interface'. |
diff --git a/src/eval.c b/src/eval.c index 26aea3df5df..718e58c693f 100644 --- a/src/eval.c +++ b/src/eval.c | |||
| @@ -38,16 +38,20 @@ struct backtrace | |||
| 38 | struct backtrace *next; | 38 | struct backtrace *next; |
| 39 | Lisp_Object *function; | 39 | Lisp_Object *function; |
| 40 | Lisp_Object *args; /* Points to vector of args. */ | 40 | Lisp_Object *args; /* Points to vector of args. */ |
| 41 | size_t nargs; /* Length of vector. | 41 | #define NARGS_BITS (BITS_PER_INT - 2) |
| 42 | If nargs is (size_t) UNEVALLED, args points | 42 | /* Let's not use size_t because we want to allow negative values (for |
| 43 | to slot holding list of unevalled args. */ | 43 | UNEVALLED). Also let's steal 2 bits so we save a word (or more for |
| 44 | char evalargs; | 44 | alignment). In any case I doubt Emacs would survive a function call with |
| 45 | more than 500M arguments. */ | ||
| 46 | int nargs : NARGS_BITS; /* Length of vector. | ||
| 47 | If nargs is UNEVALLED, args points | ||
| 48 | to slot holding list of unevalled args. */ | ||
| 49 | char evalargs : 1; | ||
| 45 | /* Nonzero means call value of debugger when done with this operation. */ | 50 | /* Nonzero means call value of debugger when done with this operation. */ |
| 46 | char debug_on_exit; | 51 | char debug_on_exit : 1; |
| 47 | }; | 52 | }; |
| 48 | 53 | ||
| 49 | struct backtrace *backtrace_list; | 54 | struct backtrace *backtrace_list; |
| 50 | |||
| 51 | struct catchtag *catchlist; | 55 | struct catchtag *catchlist; |
| 52 | 56 | ||
| 53 | #ifdef DEBUG_GCPRO | 57 | #ifdef DEBUG_GCPRO |
| @@ -553,7 +557,7 @@ interactive_p (int exclude_subrs_p) | |||
| 553 | looking at several frames for special forms. Skip past them. */ | 557 | looking at several frames for special forms. Skip past them. */ |
| 554 | while (btp | 558 | while (btp |
| 555 | && (EQ (*btp->function, Qbytecode) | 559 | && (EQ (*btp->function, Qbytecode) |
| 556 | || btp->nargs == (size_t) UNEVALLED)) | 560 | || btp->nargs == UNEVALLED)) |
| 557 | btp = btp->next; | 561 | btp = btp->next; |
| 558 | 562 | ||
| 559 | /* `btp' now points at the frame of the innermost function that isn't | 563 | /* `btp' now points at the frame of the innermost function that isn't |
| @@ -3335,7 +3339,7 @@ Output stream used is value of `standard-output'. */) | |||
| 3335 | while (backlist) | 3339 | while (backlist) |
| 3336 | { | 3340 | { |
| 3337 | write_string (backlist->debug_on_exit ? "* " : " ", 2); | 3341 | write_string (backlist->debug_on_exit ? "* " : " ", 2); |
| 3338 | if (backlist->nargs == (size_t) UNEVALLED) | 3342 | if (backlist->nargs == UNEVALLED) |
| 3339 | { | 3343 | { |
| 3340 | Fprin1 (Fcons (*backlist->function, *backlist->args), Qnil); | 3344 | Fprin1 (Fcons (*backlist->function, *backlist->args), Qnil); |
| 3341 | write_string ("\n", -1); | 3345 | write_string ("\n", -1); |
| @@ -3345,8 +3349,8 @@ Output stream used is value of `standard-output'. */) | |||
| 3345 | tem = *backlist->function; | 3349 | tem = *backlist->function; |
| 3346 | Fprin1 (tem, Qnil); /* This can QUIT. */ | 3350 | Fprin1 (tem, Qnil); /* This can QUIT. */ |
| 3347 | write_string ("(", -1); | 3351 | write_string ("(", -1); |
| 3348 | if (backlist->nargs == (size_t) MANY) | 3352 | if (backlist->nargs == MANY) |
| 3349 | { | 3353 | { /* FIXME: Can this happen? */ |
| 3350 | int i; | 3354 | int i; |
| 3351 | for (tail = *backlist->args, i = 0; | 3355 | for (tail = *backlist->args, i = 0; |
| 3352 | !NILP (tail); | 3356 | !NILP (tail); |
| @@ -3399,11 +3403,11 @@ If NFRAMES is more than the number of frames, the value is nil. */) | |||
| 3399 | 3403 | ||
| 3400 | if (!backlist) | 3404 | if (!backlist) |
| 3401 | return Qnil; | 3405 | return Qnil; |
| 3402 | if (backlist->nargs == (size_t) UNEVALLED) | 3406 | if (backlist->nargs == UNEVALLED) |
| 3403 | return Fcons (Qnil, Fcons (*backlist->function, *backlist->args)); | 3407 | return Fcons (Qnil, Fcons (*backlist->function, *backlist->args)); |
| 3404 | else | 3408 | else |
| 3405 | { | 3409 | { |
| 3406 | if (backlist->nargs == (size_t) MANY) | 3410 | if (backlist->nargs == MANY) /* FIXME: Can this happen? */ |
| 3407 | tem = *backlist->args; | 3411 | tem = *backlist->args; |
| 3408 | else | 3412 | else |
| 3409 | tem = Flist (backlist->nargs, backlist->args); | 3413 | tem = Flist (backlist->nargs, backlist->args); |
| @@ -3423,8 +3427,8 @@ mark_backtrace (void) | |||
| 3423 | { | 3427 | { |
| 3424 | mark_object (*backlist->function); | 3428 | mark_object (*backlist->function); |
| 3425 | 3429 | ||
| 3426 | if (backlist->nargs == (size_t) UNEVALLED | 3430 | if (backlist->nargs == UNEVALLED |
| 3427 | || backlist->nargs == (size_t) MANY) | 3431 | || backlist->nargs == MANY) /* FIXME: Can this happen? */ |
| 3428 | i = 1; | 3432 | i = 1; |
| 3429 | else | 3433 | else |
| 3430 | i = backlist->nargs; | 3434 | i = backlist->nargs; |