]> git.eshelyaron.com Git - emacs.git/commit
Remove UNSIGNED_CMP
authorPaul Eggert <eggert@cs.ucla.edu>
Sun, 12 Apr 2020 01:35:35 +0000 (18:35 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Sun, 12 Apr 2020 02:00:27 +0000 (19:00 -0700)
commit43282a6772630275259dbc7560913c07f72eb06e
treeab213ea3904d25fb0142817765c501d7add95c0d
parent7abfb6475716e3002c30d10ead0c309b4fed6992
Remove UNSIGNED_CMP

I added this macro in 2011 to fix some signedness comparison bugs.
However, it’s a weird macro and the bugs can be fixed in a
more-straightforward way.  This helps performance slightly (0.5%) on my
platform (Fedora 31 x86-64, GCC 9.3.1 with -O2).
* src/casefiddle.c (do_casify_natnum): Use simple comparison
instead of UNSIGNED_CMP.
* src/character.h (CHAR_VALID_P, SINGLE_BYTE_CHAR_P, CHAR_STRING):
* src/composite.h (COMPOSITION_ENCODE_RULE_VALID):
* src/lisp.h (ASCII_CHAR_P):
Now an inline function, and uses simple comparison instead of
UNSIGNED_CMP.
* src/dispextern.h (FACE_FROM_ID, FACE_FROM_ID_OR_NULL)
(IMAGE_FROM_ID, IMAGE_OPT_FROM_ID): Move these to ...
* src/frame.h (FACE_FROM_ID, FACE_FROM_ID_OR_NULL)
(IMAGE_FROM_ID, IMAGE_OPT_FROM_ID): ... here, and make them
inline functions that no longer use UNSIGNED_CMP.
* src/keyboard.c (read_char): UNSIGNED_CMP is not needed here
since XFIXNAT always returns a nonnegative value.
* src/lisp.h (UNSIGNED_CMP): Remove; no longer used.
src/casefiddle.c
src/character.h
src/composite.h
src/dispextern.h
src/frame.h
src/keyboard.c
src/lisp.h