aboutsummaryrefslogtreecommitdiffstats
path: root/src/chartab.c
diff options
context:
space:
mode:
authorPaul Eggert2011-03-27 01:10:27 -0700
committerPaul Eggert2011-03-27 01:10:27 -0700
commitfe75f92609a806701f8a4d0385f3a053bc00e63d (patch)
treebfad3c172a8b40e21cbcc57e004ac8b7f5789262 /src/chartab.c
parent4a843dd730dc1d209fb759136460dc411b299616 (diff)
downloademacs-fe75f92609a806701f8a4d0385f3a053bc00e63d.tar.gz
emacs-fe75f92609a806701f8a4d0385f3a053bc00e63d.zip
* chartab.c (sub_char_table_ref_and_range): Redo for slight
efficiency gain, and to bypass a gcc -Wstrict-overflow warning.
Diffstat (limited to 'src/chartab.c')
-rw-r--r--src/chartab.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/chartab.c b/src/chartab.c
index 85aa5932ac3..9ad182131e9 100644
--- a/src/chartab.c
+++ b/src/chartab.c
@@ -215,7 +215,6 @@ sub_char_table_ref_and_range (Lisp_Object table, int c, int *from, int *to, Lisp
215 struct Lisp_Sub_Char_Table *tbl = XSUB_CHAR_TABLE (table); 215 struct Lisp_Sub_Char_Table *tbl = XSUB_CHAR_TABLE (table);
216 int depth = XINT (tbl->depth); 216 int depth = XINT (tbl->depth);
217 int min_char = XINT (tbl->min_char); 217 int min_char = XINT (tbl->min_char);
218 int max_char = min_char + chartab_chars[depth - 1] - 1;
219 int chartab_idx = CHARTAB_IDX (c, depth, min_char), idx; 218 int chartab_idx = CHARTAB_IDX (c, depth, min_char), idx;
220 Lisp_Object val; 219 Lisp_Object val;
221 220
@@ -244,8 +243,9 @@ sub_char_table_ref_and_range (Lisp_Object table, int c, int *from, int *to, Lisp
244 break; 243 break;
245 } 244 }
246 } 245 }
247 while ((c = min_char + (chartab_idx + 1) * chartab_chars[depth]) <= max_char 246 while (((c = (chartab_idx + 1) * chartab_chars[depth])
248 && *to >= c) 247 < chartab_chars[depth - 1])
248 && (c += min_char) <= *to)
249 { 249 {
250 Lisp_Object this_val; 250 Lisp_Object this_val;
251 251