From 332e62ab1f5d90d22951b67c430cbd4da9c10dbe Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Wed, 20 Apr 2011 14:28:07 -0300 Subject: [PATCH] * lisp/emacs-lisp/byte-opt.el (byte-decompile-bytecode-1): Remove dead code, add sanity check. --- lisp/ChangeLog | 3 +++ lisp/emacs-lisp/byte-opt.el | 9 ++++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index a7aedca6944..d019eca95c9 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2011-04-20 Stefan Monnier + * emacs-lisp/byte-opt.el (byte-decompile-bytecode-1): Remove dead code, + add sanity check. + * obsolete/erc-hecomplete.el: Make obsolete. * obsolete/: Standardize obsolescence info in the header. diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el index 548fcd133df..7b98ade2422 100644 --- a/lisp/emacs-lisp/byte-opt.el +++ b/lisp/emacs-lisp/byte-opt.el @@ -1364,8 +1364,7 @@ (defun byte-decompile-bytecode-1 (bytes constvec &optional make-spliceable) (let ((length (length bytes)) (bytedecomp-ptr 0) optr tags bytedecomp-op offset - lap tmp - endtag) + lap tmp) (while (not (= bytedecomp-ptr length)) (or make-spliceable (push bytedecomp-ptr lap)) @@ -1373,7 +1372,9 @@ optr bytedecomp-ptr ;; This uses dynamic-scope magic. offset (disassemble-offset bytes)) - (setq bytedecomp-op (aref byte-code-vector bytedecomp-op)) + (let ((opcode (aref byte-code-vector bytedecomp-op))) + (assert opcode) + (setq bytedecomp-op opcode)) (cond ((memq bytedecomp-op byte-goto-ops) ;; It's a pc. (setq offset @@ -1417,8 +1418,6 @@ (setq rest (cdr rest)))) (setq rest (cdr rest)))) (if tags (error "optimizer error: missed tags %s" tags)) - (if endtag - (setq lap (cons (cons nil endtag) lap))) ;; Remove addrs, lap = ( [ (op . arg) | (TAG tagno) ]* ) (mapcar (function (lambda (elt) (if (numberp elt) -- 2.39.2