diff options
| author | Stefan Monnier | 2011-04-20 14:28:07 -0300 |
|---|---|---|
| committer | Stefan Monnier | 2011-04-20 14:28:07 -0300 |
| commit | 332e62ab1f5d90d22951b67c430cbd4da9c10dbe (patch) | |
| tree | a0951c314ffe9b587ba2789d8323d7a92c64c674 | |
| parent | bfab7d852d64bcfe68073e03e787eb2200391d9d (diff) | |
| download | emacs-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/ChangeLog | 3 | ||||
| -rw-r--r-- | 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 @@ | |||
| 1 | 2011-04-20 Stefan Monnier <monnier@iro.umontreal.ca> | 1 | 2011-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) |