aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Monnier2011-04-20 14:28:07 -0300
committerStefan Monnier2011-04-20 14:28:07 -0300
commit332e62ab1f5d90d22951b67c430cbd4da9c10dbe (patch)
treea0951c314ffe9b587ba2789d8323d7a92c64c674
parentbfab7d852d64bcfe68073e03e787eb2200391d9d (diff)
downloademacs-332e62ab1f5d90d22951b67c430cbd4da9c10dbe.tar.gz
emacs-332e62ab1f5d90d22951b67c430cbd4da9c10dbe.zip
* lisp/emacs-lisp/byte-opt.el (byte-decompile-bytecode-1): Remove dead code,
add sanity check.
-rw-r--r--lisp/ChangeLog3
-rw-r--r--lisp/emacs-lisp/byte-opt.el9
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 @@
12011-04-20 Stefan Monnier <monnier@iro.umontreal.ca> 12011-04-20 Stefan Monnier <monnier@iro.umontreal.ca>
2 2
3 * emacs-lisp/byte-opt.el (byte-decompile-bytecode-1): Remove dead code,
4 add sanity check.
5
3 * obsolete/erc-hecomplete.el: Make obsolete. 6 * obsolete/erc-hecomplete.el: Make obsolete.
4 * obsolete/: Standardize obsolescence info in the header. 7 * obsolete/: Standardize obsolescence info in the header.
5 8
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 @@
1364(defun byte-decompile-bytecode-1 (bytes constvec &optional make-spliceable) 1364(defun byte-decompile-bytecode-1 (bytes constvec &optional make-spliceable)
1365 (let ((length (length bytes)) 1365 (let ((length (length bytes))
1366 (bytedecomp-ptr 0) optr tags bytedecomp-op offset 1366 (bytedecomp-ptr 0) optr tags bytedecomp-op offset
1367 lap tmp 1367 lap tmp)
1368 endtag)
1369 (while (not (= bytedecomp-ptr length)) 1368 (while (not (= bytedecomp-ptr length))
1370 (or make-spliceable 1369 (or make-spliceable
1371 (push bytedecomp-ptr lap)) 1370 (push bytedecomp-ptr lap))
@@ -1373,7 +1372,9 @@
1373 optr bytedecomp-ptr 1372 optr bytedecomp-ptr
1374 ;; This uses dynamic-scope magic. 1373 ;; This uses dynamic-scope magic.
1375 offset (disassemble-offset bytes)) 1374 offset (disassemble-offset bytes))
1376 (setq bytedecomp-op (aref byte-code-vector bytedecomp-op)) 1375 (let ((opcode (aref byte-code-vector bytedecomp-op)))
1376 (assert opcode)
1377 (setq bytedecomp-op opcode))
1377 (cond ((memq bytedecomp-op byte-goto-ops) 1378 (cond ((memq bytedecomp-op byte-goto-ops)
1378 ;; It's a pc. 1379 ;; It's a pc.
1379 (setq offset 1380 (setq offset
@@ -1417,8 +1418,6 @@
1417 (setq rest (cdr rest)))) 1418 (setq rest (cdr rest))))
1418 (setq rest (cdr rest)))) 1419 (setq rest (cdr rest))))
1419 (if tags (error "optimizer error: missed tags %s" tags)) 1420 (if tags (error "optimizer error: missed tags %s" tags))
1420 (if endtag
1421 (setq lap (cons (cons nil endtag) lap)))
1422 ;; Remove addrs, lap = ( [ (op . arg) | (TAG tagno) ]* ) 1421 ;; Remove addrs, lap = ( [ (op . arg) | (TAG tagno) ]* )
1423 (mapcar (function (lambda (elt) 1422 (mapcar (function (lambda (elt)
1424 (if (numberp elt) 1423 (if (numberp elt)