diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 4d1f762dd26..eaea2b33204 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2011-09-28 Stefan Monnier + + * emacs-lisp/debug.el (debug-convert-byte-code): Don't assume the + object has more than 4 slots (bug#9613). + 2011-09-28 Juanma Barranquero * subr.el (with-output-to-temp-buffer): diff --git a/lisp/emacs-lisp/debug.el b/lisp/emacs-lisp/debug.el index d7021a46165..d05a518e590 100644 --- a/lisp/emacs-lisp/debug.el +++ b/lisp/emacs-lisp/debug.el @@ -869,8 +869,10 @@ To specify a nil argument interactively, exit with an empty minibuffer." ,defn ,@(remq '&rest (remq '&optional args)))))) (if (> (length defn) 5) + ;; The mere presence of field 5 is sufficient to make + ;; it interactive. (push `(interactive ,(aref defn 5)) body)) - (if (aref defn 4) + (if (and (> (length defn) 4) (aref defn 4)) ;; Use `documentation' here, to get the actual string, ;; in case the compiled function has a reference ;; to the .elc file.