• 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
    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.
    6a37ecee
alloc.c 197 KB