comparison src/ChangeLog @ 39973:579177964efa

Avoid (most) uses of XCAR/XCDR as lvalues, for flexibility in experimenting with lisp system changes.
author Ken Raeburn <raeburn@raeburn.org>
date Tue, 16 Oct 2001 09:09:51 +0000
parents b2479b43184b
children d8c67e075687
comparison
equal deleted inserted replaced
39972:b2479b43184b 39973:579177964efa
1 2001-10-16 Ken Raeburn <raeburn@gnu.org>
2
3 Avoid the assumption that car and cdr slots of cons cells are
4 addressable lvalues; this allows for easier experimentation with
5 other lisp implementations that may not permit such accesses for
6 various reasons. Not quite complete -- buffer.c still needs some
7 work, and w32/mac files need rechecking -- so compile-time
8 enforcement is left disabled for now.
9
10 * lisp.h (LISP_MAKE_RVALUE): New macro, or function in the case of
11 gcc with a union-based Lisp object rep. Redefine as no-op for
12 now.
13 (XCAR_AS_LVALUE, XCDR_AS_LVALUE): Rename from old XCAR, XCDR.
14 (XCAR, XCDR): Apply LISP_MAKE_RVALUE to the _AS_LVALUE versions.
15 (XSETCAR, XSETCDR): New macros.
16 (XSETCARFASTINT, XSETCDRFASTINT): New macros.
17 (CHECK_NUMBER_CAR, CHECK_NUMBER_CDR): New macros.
18 * keyboard.h (POSN_BUFFER_SET_POSN): New macro.
19 * alloc.c (Fcons, pure_cons, Fgarbage_collect): Use XSETCAR and
20 XSETCDR.
21 (mark_buffer): Use XCAR_AS_LVALUE, XCDR_AS_LVALUE.
22 * buffer.c (record_buffer, Fbury_buffer,
23 swap_out_buffer_local_variables, recenter_overlay_lists,
24 Foverlay_put): Use XSETCAR and XSETCDR to set the car and cdr
25 fields of a cons cell respectively.
26 * callint.c (quotify_args, Fcall_interactively): Likewise.
27 * ccl.c (Fregister_code_conversion_map): Likewise.
28 * coding.c (detect_coding_system): Likewise.
29 * composite.c (get_composition_id, make_composition_value_copy):
30 Likewise.
31 * data.c (Fsetcar, Fsetcdr, swap_in_global_binding,
32 swap_in_symval_forwarding, set_internal, Fset_default,
33 Fmake_variable_buffer_local, Fmake_local_variable,
34 Fmake_variable_frame_local): Likewise.
35 * fns.c (concat, Fcopy_alist, Fwidget_put): Likewise.
36 * keymap.c (Fset_keymap_parent, store_in_keymap,
37 accessible_keymaps_1, where_is_internal_2, Fcopy_keymap):
38 Likewise.
39 * minibuf.c (get_minibuffer): Likewise.
40 * search.c (Fmatch_data): Likewise.
41 * textprop.c (extend_property_ranges): Likewise.
42 * undo.c (record_insert, Fundo_boundary, truncate_undo_list):
43 Likewise.
44 * w32fns.c (w32_msg_pump, Fw32_register_hot_key, w32_list_fonts):
45 Likewise.
46 * w32term.c (x_delete_display): Likewise.
47 * xfaces.c (remove_duplicates, Finternal_set_lisp_face_attribute):
48 Likewise.
49 * xterm.c (x_list_fonts, x_load_font, x_delete_display):
50 Likewise.
51 * doc.c (store_function_docstring): Use XSETCARFASTINT.
52 * fileio.c (Fdo_auto_save): Use XSETCARFASTINT and
53 XSETCDRFASTINT.
54 (Fread_file_name): Use XSETCAR.
55 * fontset.c (Fset_fontset_font): Use CHECK_NUMBER_CAR and
56 CHECK_NUMBER_CDR.
57 (accumulate_font_info, Ffontset_info): Use XSETCAR and XSETCDR.
58 * frame.c (Fmake_terminal_frame): Use XSETCDR.
59 * indent.c (Fcompute_motion): Use CHECK_NUMBER_CAR and
60 CHECK_NUMBER_CDR.
61 * keyboard.c (read_char): Alter list traversal to avoid taking the
62 address of cons cell slots. Use POSN_BUFFER_SET_POSN.
63 (parse_menu_item): Use XSETCAR and XSETCDR.
64 (reach_char_x_menu_prompt): Use XSETCAR.
65 (read_key_sequence): Use POSN_BUFFER_SET_POSN.
66 (Fcommand_execute): Use XSETCDR.
67 * lread.c (Fload): Use XSETCARFASTINT and XSETCDRFASTINT.
68 (openp): Change list traversal to avoid using XCAR as lvalue.
69 (read_list): Use XSETCDR.
70 * process.c (wait_reading_process_input): Change wait_for_cell
71 handling to avoid taking addresses of cons cell slots.
72 * xselect.c (x_own_selection, x_handle_selection_clear,
73 x_clear_frame_selections): Use XSETCDR.
74 (wait_for_property_change): Use XSETCARFASTINT and
75 XSETCDRFASTINT.
76 (x_handle_property_notify, x_get_foreign_selection,
77 x_handle_selection_notify): Use XSETCAR.
78
1 2001-10-15 Pavel Jan,Bm(Bk <Pavel@Janik.cz> 79 2001-10-15 Pavel Jan,Bm(Bk <Pavel@Janik.cz>
2 80
3 * buffer.c: Put doc strings in comments. 81 * buffer.c: Put doc strings in comments.
4 82
5 * sound.c: Include <sys/ioctl.h> also on systems without 83 * sound.c: Include <sys/ioctl.h> also on systems without