]> git.eshelyaron.com Git - emacs.git/commit
Remove dead loop iterations in regex.c
authorMichal Nazarewicz <mina86@mina86.com>
Wed, 3 Aug 2016 01:52:49 +0000 (03:52 +0200)
committerMichal Nazarewicz <mina86@mina86.com>
Fri, 9 Sep 2016 01:07:15 +0000 (03:07 +0200)
commit0e7eb64076c17b3252249aa2a3ef340ce9f395bb
tree339f048596ba216d0ba15808a3121515853189b5
parentc579b28f6281c9cc0b711a012c30bf00036c60bf
Remove dead loop iterations in regex.c

RE_CHAR_TO_MULTIBYTE(c) yields c for ASCII characters and a byte8
character for c ≥ 0x80.  Furthermore, CHAR_BYTE8_P(c) is true only
for byte8 characters.  This means that

c = RE_CHAR_TO_MULTIBYTE (ch);
if (! CHAR_BYTE8_P (c) && re_iswctype (c, cc))

is equivalent to:

c = c;
if (! false && re_iswctype (c, cc))

for 0 ⪬ c < 0x80, and

c = BYTE8_TO_CHAR (c);
if (! true && re_iswctype (c, cc))

for 0x80 ⪬ c < 0x100.  In other words, the loop never executes for
c ≥ 0x80 and RE_CHAR_TO_MULTIBYTE call is unnecessary for c < 0x80.

* src/regex.c (regex_compile): Simplyfy a for loop by eliminating
dead iterations and unnecessary macro calls.
src/regex.c