• Paul Eggert's avatar
    Port to 32-bit --with-wide-int · 6a37ecee
    Paul Eggert authored
    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
    * 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.
    No longer noops on wide-int hosts, since they work now.
    (builtin_lisp_symbol): New function.
alloc.c 197 KB