]> git.eshelyaron.com Git - emacs.git/commitdiff
Avoid assertion violations in 'lookup-key'
authorEli Zaretskii <eliz@gnu.org>
Thu, 28 Oct 2021 17:52:41 +0000 (20:52 +0300)
committerEli Zaretskii <eliz@gnu.org>
Thu, 28 Oct 2021 17:52:41 +0000 (20:52 +0300)
* src/keymap.c (Flookup_key): Don't call ASIZE unless KEY is a
vector.  This avoids assertion violations when KEY is a string.

src/keymap.c

index f7529f808bf29f0e82c6ffeea1d0067ea3930d86..50f896d17cf807ebf33276c1b2b067800fa12e24 100644 (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)