Avoid assertion violations in 'lookup-key'

* src/keymap.c (Flookup_key): Don't call ASIZE unless KEY is a
vector.  This avoids assertion violations when KEY is a string.
This commit is contained in:
Eli Zaretskii 2021-10-28 20:52:41 +03:00
parent f52fa1c150
commit bea843dee1

View file

@ -1253,8 +1253,8 @@ recognize the default bindings, just as `read-key-sequence' does. */)
/* Menu definitions might use mixed case symbols (notably in old
versions of `easy-menu-define'). We accept this variation for
backwards-compatibility. (Bug#50752) */
ptrdiff_t key_len = ASIZE (key);
if (VECTORP (key) && key_len > 0 && EQ (AREF (key, 0), Qmenu_bar))
ptrdiff_t key_len = VECTORP (key) ? ASIZE (key) : 0;
if (key_len > 0 && EQ (AREF (key, 0), Qmenu_bar))
{
Lisp_Object new_key = make_vector (key_len, Qnil);
for (int i = 0; i < key_len; ++i)