Use a simple struct to implement compile time checks for the Lisp_Object type
authorAndreas Schwab <schwab@linux-m68k.org>
Wed, 13 Jun 2012 13:40:48 +0000 (15:40 +0200)
committerAndreas Schwab <schwab@linux-m68k.org>
Wed, 13 Jun 2012 13:40:48 +0000 (15:40 +0200)
commit646b5f55dfc28ea37a6605b060f67017cdb1aea8
tree877cf977e28772931f3d9f3c6cdd05501efeb7c7
parentef62b23df5a7007c3d8c74dbca87ba83e9da682e
Use a simple struct to implement compile time checks for the Lisp_Object type

* configure.in: Rename --enable-use-lisp-union-type to
--enable-check-lisp-object-type and define CHECK_LISP_OBJECT_TYPE
instead of USE_LISP_UNION_TYPE.

* admin/make-emacs: Rename --union-type to --check-lisp-type.  Define
CHECK_LISP_OBJECT_TYPE insted of USE_LISP_UNION_TYPE.
* admin/CPP-DEFINES (DEBUG_LISP_OBJECT_TYPE): Renamed from
USE_LISP_UNION_TYPE.

* src/lisp.h (Lisp_Object) [CHECK_LISP_OBJECT_TYPE]: Define as struct
instead of union.
(XLI, XIL): Define.
(XHASH, XTYPE, XINT, XUINT, make_number, XSET, XPNTR, XUNTAG): Use
them.
* src/emacs.c (gdb_use_struct): Renamed from gdb_use_union.
* src/.gdbinit: Check gdb_use_struct instead of gdb_use_union.
* src/alloc.c (widen_to_Lisp_Object): Removed.
(mark_memory): Use XIL instead of widen_to_Lisp_Object.
* src/frame.c (delete_frame): Remove outdated comment.
* src/w32fns.c (Fw32_register_hot_key): Use XLI instead of checking
USE_LISP_UNION_TYPE.
(Fw32_unregister_hot_key): Likewise.
(Fw32_toggle_lock_key): Likewise.
* src/w32menu.c (add_menu_item): Likewise.
(w32_menu_display_help): Use XIL instead of checking
USE_LISP_UNION_TYPE.
* src/w32heap.c (allocate_heap): Don't check USE_LISP_UNION_TYPE.
(init_heap): Likewise.
* src/w32term.c (w32_read_socket): Update comment.
16 files changed:
ChangeLog
admin/CPP-DEFINES
admin/ChangeLog
admin/make-emacs
configure.in
etc/NEWS
src/.gdbinit
src/ChangeLog
src/alloc.c
src/emacs.c
src/frame.c
src/lisp.h
src/w32fns.c
src/w32heap.c
src/w32menu.c
src/w32term.c