mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-15 10:30:25 -08:00
Simplify CHAR_TABLE_REF_ASCII
* src/lisp.h (CHAR_TABLE_REF_ASCII): Refactor as a straightforward for-loop. Redo an if-then-else to be an (!if)-else-then as this is a bit cleaner, and it also works around GCC bug 105755.
This commit is contained in:
parent
82c05c034e
commit
30966a6e67
1 changed files with 7 additions and 9 deletions
16
src/lisp.h
16
src/lisp.h
|
|
@ -2091,19 +2091,17 @@ XSUB_CHAR_TABLE (Lisp_Object a)
|
|||
INLINE Lisp_Object
|
||||
CHAR_TABLE_REF_ASCII (Lisp_Object ct, ptrdiff_t idx)
|
||||
{
|
||||
struct Lisp_Char_Table *tbl = NULL;
|
||||
Lisp_Object val;
|
||||
do
|
||||
for (struct Lisp_Char_Table *tbl = XCHAR_TABLE (ct); ;
|
||||
tbl = XCHAR_TABLE (tbl->parent))
|
||||
{
|
||||
tbl = tbl ? XCHAR_TABLE (tbl->parent) : XCHAR_TABLE (ct);
|
||||
val = (! SUB_CHAR_TABLE_P (tbl->ascii) ? tbl->ascii
|
||||
: XSUB_CHAR_TABLE (tbl->ascii)->contents[idx]);
|
||||
Lisp_Object val = (SUB_CHAR_TABLE_P (tbl->ascii)
|
||||
? XSUB_CHAR_TABLE (tbl->ascii)->contents[idx]
|
||||
: tbl->ascii);
|
||||
if (NILP (val))
|
||||
val = tbl->defalt;
|
||||
if (!NILP (val) || NILP (tbl->parent))
|
||||
return val;
|
||||
}
|
||||
while (NILP (val) && ! NILP (tbl->parent));
|
||||
|
||||
return val;
|
||||
}
|
||||
|
||||
/* Almost equivalent to Faref (CT, IDX) with optimization for ASCII
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue