* lisp/emacs-lisp/byte-opt.el (byte-decompile-bytecode-1): Remove dead code,
authorStefan Monnier <monnier@iro.umontreal.ca>
Wed, 20 Apr 2011 17:28:07 +0000 (14:28 -0300)
committerStefan Monnier <monnier@iro.umontreal.ca>
Wed, 20 Apr 2011 17:28:07 +0000 (14:28 -0300)
add sanity check.

lisp/ChangeLog
lisp/emacs-lisp/byte-opt.el

index a7aedca..d019eca 100644 (file)
@@ -1,5 +1,8 @@
 2011-04-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 
+       * 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.
 
index 548fcd1..7b98ade 100644 (file)
 (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))
            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
               (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)