diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/keymap.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/src/keymap.c b/src/keymap.c index d75a10ae13b..fc24d1cd3c5 100644 --- a/src/keymap.c +++ b/src/keymap.c | |||
| @@ -318,9 +318,7 @@ access_keymap (map, idx, t_ok, noinherit) | |||
| 318 | break; | 318 | break; |
| 319 | 319 | ||
| 320 | case Lisp_Vector: | 320 | case Lisp_Vector: |
| 321 | if (INTEGERP (idx) | 321 | if (NATNUMP (idx) && XFASTINT (idx) < XVECTOR (binding)->size) |
| 322 | && XINT (idx) >= 0 | ||
| 323 | && XINT (idx) < XVECTOR (binding)->size) | ||
| 324 | { | 322 | { |
| 325 | val = XVECTOR (binding)->contents[XINT (idx)]; | 323 | val = XVECTOR (binding)->contents[XINT (idx)]; |
| 326 | if (noprefix && CONSP (val) && EQ (XCONS (val)->car, Qkeymap)) | 324 | if (noprefix && CONSP (val) && EQ (XCONS (val)->car, Qkeymap)) |
| @@ -437,8 +435,7 @@ store_in_keymap (keymap, idx, def) | |||
| 437 | switch (XTYPE (elt)) | 435 | switch (XTYPE (elt)) |
| 438 | { | 436 | { |
| 439 | case Lisp_Vector: | 437 | case Lisp_Vector: |
| 440 | if (INTEGERP (idx) | 438 | if (NATNUMP (idx) && XFASTINT (idx) < XVECTOR (elt)->size) |
| 441 | && XINT (idx) >= 0 && XINT (idx) < XVECTOR (elt)->size) | ||
| 442 | { | 439 | { |
| 443 | XVECTOR (elt)->contents[XFASTINT (idx)] = def; | 440 | XVECTOR (elt)->contents[XFASTINT (idx)] = def; |
| 444 | return def; | 441 | return def; |