diff options
| author | Paul Eggert | 2015-01-10 13:33:38 -0800 |
|---|---|---|
| committer | Paul Eggert | 2015-01-10 13:42:35 -0800 |
| commit | 6a37ecee0884ff30ac7666e6502e2a9d2608f291 (patch) | |
| tree | 875bd8310981ff850911f04da4c3c3b95f34537b /src/frame.c | |
| parent | 649937920b5023be5c0685d1537f5ea2bfb9899a (diff) | |
| download | emacs-6a37ecee0884ff30ac7666e6502e2a9d2608f291.tar.gz emacs-6a37ecee0884ff30ac7666e6502e2a9d2608f291.zip | |
Port to 32-bit --with-wide-int
Prefer symbol indexes to struct Lisp_Symbol * casted and then
widened, as the latter had trouble with GCC on Fedora 21 when
configured --with-wide-int and when used in static initializers.
* lib-src/make-docfile.c (write_globals): Define and use symbols like
iQnil (a small integer, like 0) rather than aQnil (an address
constant).
* src/alloc.c (garbage_collect_1, which_symbols):
* src/lread.c (init_obarray):
Prefer builtin_lisp_symbol when it can be used.
* src/dispextern.h (struct image_type.type):
* src/font.c (font_property_table.key):
* src/frame.c (struct frame_parm_table.sym):
* src/keyboard.c (scroll_bar_parts, struct event_head):
* src/xdisp.c (struct props.name):
Use the index of a builtin symbol rather than its address.
All uses changed.
* src/lisp.h (TAG_SYMPTR, XSYMBOL_INIT): Remove, replacing with ...
(TAG_SYMOFFSET, SYMBOL_INDEX): ... new macros that deal with
symbol indexes rather than pointers, and which work better on MSB
hosts because they shift right before tagging. All uses changed.
(DEFINE_LISP_SYMBOL_BEGIN, DEFINE_LISP_SYMBOL_END):
No longer noops on wide-int hosts, since they work now.
(builtin_lisp_symbol): New function.
Diffstat (limited to 'src/frame.c')
| -rw-r--r-- | src/frame.c | 82 |
1 files changed, 41 insertions, 41 deletions
diff --git a/src/frame.c b/src/frame.c index fb9bf2e9cbb..3d2ffbf624f 100644 --- a/src/frame.c +++ b/src/frame.c | |||
| @@ -2925,48 +2925,48 @@ or bottommost possible position (that stays within the screen). */) | |||
| 2925 | 2925 | ||
| 2926 | struct frame_parm_table { | 2926 | struct frame_parm_table { |
| 2927 | const char *name; | 2927 | const char *name; |
| 2928 | struct Lisp_Symbol *sym; | 2928 | int sym; |
| 2929 | }; | 2929 | }; |
| 2930 | 2930 | ||
| 2931 | static const struct frame_parm_table frame_parms[] = | 2931 | static const struct frame_parm_table frame_parms[] = |
| 2932 | { | 2932 | { |
| 2933 | {"auto-raise", XSYMBOL_INIT (Qauto_raise)}, | 2933 | {"auto-raise", SYMBOL_INDEX (Qauto_raise)}, |
| 2934 | {"auto-lower", XSYMBOL_INIT (Qauto_lower)}, | 2934 | {"auto-lower", SYMBOL_INDEX (Qauto_lower)}, |
| 2935 | {"background-color", 0}, | 2935 | {"background-color", -1}, |
| 2936 | {"border-color", XSYMBOL_INIT (Qborder_color)}, | 2936 | {"border-color", SYMBOL_INDEX (Qborder_color)}, |
| 2937 | {"border-width", XSYMBOL_INIT (Qborder_width)}, | 2937 | {"border-width", SYMBOL_INDEX (Qborder_width)}, |
| 2938 | {"cursor-color", XSYMBOL_INIT (Qcursor_color)}, | 2938 | {"cursor-color", SYMBOL_INDEX (Qcursor_color)}, |
| 2939 | {"cursor-type", XSYMBOL_INIT (Qcursor_type)}, | 2939 | {"cursor-type", SYMBOL_INDEX (Qcursor_type)}, |
| 2940 | {"font", 0}, | 2940 | {"font", -1}, |
| 2941 | {"foreground-color", 0}, | 2941 | {"foreground-color", -1}, |
| 2942 | {"icon-name", XSYMBOL_INIT (Qicon_name)}, | 2942 | {"icon-name", SYMBOL_INDEX (Qicon_name)}, |
| 2943 | {"icon-type", XSYMBOL_INIT (Qicon_type)}, | 2943 | {"icon-type", SYMBOL_INDEX (Qicon_type)}, |
| 2944 | {"internal-border-width", XSYMBOL_INIT (Qinternal_border_width)}, | 2944 | {"internal-border-width", SYMBOL_INDEX (Qinternal_border_width)}, |
| 2945 | {"right-divider-width", XSYMBOL_INIT (Qright_divider_width)}, | 2945 | {"right-divider-width", SYMBOL_INDEX (Qright_divider_width)}, |
| 2946 | {"bottom-divider-width", XSYMBOL_INIT (Qbottom_divider_width)}, | 2946 | {"bottom-divider-width", SYMBOL_INDEX (Qbottom_divider_width)}, |
| 2947 | {"menu-bar-lines", XSYMBOL_INIT (Qmenu_bar_lines)}, | 2947 | {"menu-bar-lines", SYMBOL_INDEX (Qmenu_bar_lines)}, |
| 2948 | {"mouse-color", XSYMBOL_INIT (Qmouse_color)}, | 2948 | {"mouse-color", SYMBOL_INDEX (Qmouse_color)}, |
| 2949 | {"name", XSYMBOL_INIT (Qname)}, | 2949 | {"name", SYMBOL_INDEX (Qname)}, |
| 2950 | {"scroll-bar-width", XSYMBOL_INIT (Qscroll_bar_width)}, | 2950 | {"scroll-bar-width", SYMBOL_INDEX (Qscroll_bar_width)}, |
| 2951 | {"scroll-bar-height", XSYMBOL_INIT (Qscroll_bar_height)}, | 2951 | {"scroll-bar-height", SYMBOL_INDEX (Qscroll_bar_height)}, |
| 2952 | {"title", XSYMBOL_INIT (Qtitle)}, | 2952 | {"title", SYMBOL_INDEX (Qtitle)}, |
| 2953 | {"unsplittable", XSYMBOL_INIT (Qunsplittable)}, | 2953 | {"unsplittable", SYMBOL_INDEX (Qunsplittable)}, |
| 2954 | {"vertical-scroll-bars", XSYMBOL_INIT (Qvertical_scroll_bars)}, | 2954 | {"vertical-scroll-bars", SYMBOL_INDEX (Qvertical_scroll_bars)}, |
| 2955 | {"horizontal-scroll-bars", XSYMBOL_INIT (Qhorizontal_scroll_bars)}, | 2955 | {"horizontal-scroll-bars", SYMBOL_INDEX (Qhorizontal_scroll_bars)}, |
| 2956 | {"visibility", XSYMBOL_INIT (Qvisibility)}, | 2956 | {"visibility", SYMBOL_INDEX (Qvisibility)}, |
| 2957 | {"tool-bar-lines", XSYMBOL_INIT (Qtool_bar_lines)}, | 2957 | {"tool-bar-lines", SYMBOL_INDEX (Qtool_bar_lines)}, |
| 2958 | {"scroll-bar-foreground", XSYMBOL_INIT (Qscroll_bar_foreground)}, | 2958 | {"scroll-bar-foreground", SYMBOL_INDEX (Qscroll_bar_foreground)}, |
| 2959 | {"scroll-bar-background", XSYMBOL_INIT (Qscroll_bar_background)}, | 2959 | {"scroll-bar-background", SYMBOL_INDEX (Qscroll_bar_background)}, |
| 2960 | {"screen-gamma", XSYMBOL_INIT (Qscreen_gamma)}, | 2960 | {"screen-gamma", SYMBOL_INDEX (Qscreen_gamma)}, |
| 2961 | {"line-spacing", XSYMBOL_INIT (Qline_spacing)}, | 2961 | {"line-spacing", SYMBOL_INDEX (Qline_spacing)}, |
| 2962 | {"left-fringe", XSYMBOL_INIT (Qleft_fringe)}, | 2962 | {"left-fringe", SYMBOL_INDEX (Qleft_fringe)}, |
| 2963 | {"right-fringe", XSYMBOL_INIT (Qright_fringe)}, | 2963 | {"right-fringe", SYMBOL_INDEX (Qright_fringe)}, |
| 2964 | {"wait-for-wm", XSYMBOL_INIT (Qwait_for_wm)}, | 2964 | {"wait-for-wm", SYMBOL_INDEX (Qwait_for_wm)}, |
| 2965 | {"fullscreen", XSYMBOL_INIT (Qfullscreen)}, | 2965 | {"fullscreen", SYMBOL_INDEX (Qfullscreen)}, |
| 2966 | {"font-backend", XSYMBOL_INIT (Qfont_backend)}, | 2966 | {"font-backend", SYMBOL_INDEX (Qfont_backend)}, |
| 2967 | {"alpha", XSYMBOL_INIT (Qalpha)}, | 2967 | {"alpha", SYMBOL_INDEX (Qalpha)}, |
| 2968 | {"sticky", XSYMBOL_INIT (Qsticky)}, | 2968 | {"sticky", SYMBOL_INDEX (Qsticky)}, |
| 2969 | {"tool-bar-position", XSYMBOL_INIT (Qtool_bar_position)}, | 2969 | {"tool-bar-position", SYMBOL_INDEX (Qtool_bar_position)}, |
| 2970 | }; | 2970 | }; |
| 2971 | 2971 | ||
| 2972 | #ifdef HAVE_WINDOW_SYSTEM | 2972 | #ifdef HAVE_WINDOW_SYSTEM |
| @@ -4824,9 +4824,9 @@ syms_of_frame (void) | |||
| 4824 | 4824 | ||
| 4825 | for (i = 0; i < ARRAYELTS (frame_parms); i++) | 4825 | for (i = 0; i < ARRAYELTS (frame_parms); i++) |
| 4826 | { | 4826 | { |
| 4827 | Lisp_Object v = (frame_parms[i].sym | 4827 | Lisp_Object v = (frame_parms[i].sym < 0 |
| 4828 | ? make_lisp_symbol (frame_parms[i].sym) | 4828 | ? intern_c_string (frame_parms[i].name) |
| 4829 | : intern_c_string (frame_parms[i].name)); | 4829 | : builtin_lisp_symbol (frame_parms[i].sym)); |
| 4830 | Fput (v, Qx_frame_parameter, make_number (i)); | 4830 | Fput (v, Qx_frame_parameter, make_number (i)); |
| 4831 | } | 4831 | } |
| 4832 | } | 4832 | } |