Prefer intptr_t/uintptr_t for integers the same widths as pointers.
authorPaul Eggert <eggert@cs.ucla.edu>
Fri, 29 Apr 2011 07:54:43 +0000 (00:54 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Fri, 29 Apr 2011 07:54:43 +0000 (00:54 -0700)
commit8ac068ac0c00afa85bc4df54032b7a855c639312
tree551b5146f8f0c9e5c2f7129eaac0fb9f97d8a866
parentc7b270ab8559d9c9ca86ed5887b86b537796042d
Prefer intptr_t/uintptr_t for integers the same widths as pointers.

This removes an assumption that EMACS_INT and long are the same
width as pointers.  The assumption is true for Emacs porting targets
now, but we want to make other targets possible.
* lisp.h: Include <inttypes.h>, for INTPTR_MAX, UINTPTR_MAX.
(EMACS_INTPTR, EMACS_UINTPTR): New macros.
In the rest of the code, change types of integers that hold casted
pointers to EMACS_INTPTR and EMACS_UINTPTR, systematically
replacing EMACS_INT, long, EMACS_UINT, and unsigned long.
(XTYPE): Don't cast arg to EMACS_UINT; normally is not needed.
(XSET): Cast type of XTYPE arg to EMACS_INTPTR; it is needed here.
No need to cast type when ORing.
(XPNTR): Return a value of type EMACS_INTPTR or EMACS_UINTPTR.
* alloc.c (lisp_align_malloc): Remove a no-longer-needed cast.
* doc.c (store_function_docstring): Use EMACS_INTPTR, so as not to
assume EMACS_INT is the same width as char *.
* gtkutil.c (xg_gtk_scroll_destroy, xg_tool_bar_button_cb):
(xg_tool_bar_callback, xg_tool_bar_help_callback, xg_make_tool_item):
Remove no-longer-needed casts.
(xg_create_scroll_bar, xg_tool_bar_button_cb, xg_tool_bar_callback):
(xg_tool_bar_help_callback, xg_make_tool_item):
Use EMACS_INTPTR to hold an integer
that will be cast to void *; this can avoid a GCC warning
if EMACS_INT is not the same width as void *.
* menu.c (find_and_call_menu_selection): Remove no-longer-needed cast.
* xdisp.c (display_echo_area_1, resize_mini_window_1):
(current_message_1, set_message_1):
Use a local to convert to proper width without a cast.
* xmenu.c (dialog_selection_callback): Likewise.
src/ChangeLog
src/alloc.c
src/doc.c
src/gtkutil.c
src/lisp.h
src/menu.c
src/xdisp.c
src/xmenu.c