]> git.eshelyaron.com Git - emacs.git/commitdiff
(byte-decompile-bytecode-1): Don't add pc values
authorRichard M. Stallman <rms@gnu.org>
Wed, 20 Jul 1994 06:04:46 +0000 (06:04 +0000)
committerRichard M. Stallman <rms@gnu.org>
Wed, 20 Jul 1994 06:04:46 +0000 (06:04 +0000)
if make-spliceable is non-nil.  (Arg renamed from make-splicable.)

lisp/emacs-lisp/byte-opt.el

index cb9f4ffab3ac676bfc7c1eb53728f88054aab6b8..8b7937b7d804310fbdc6469c2ed8bdabeeda7899 100644 (file)
 
 ;; As byte-decompile-bytecode, but updates
 ;; byte-compile-{constants, variables, tag-number}.
-;; If the optional 3rd arg is true, then `return' opcodes are replaced
+;; If MAKE-SPLICEABLE is true, then `return' opcodes are replaced
 ;; with `goto's destined for the end of the code.
-(defun byte-decompile-bytecode-1 (bytes constvec &optional make-splicable)
+;; That is for use by the compiler.
+;; If MAKE-SPLICEABLE is nil, we are being called for the disassembler.
+;; In that case, we put a pc value into the list
+;; before each insn (or its label).
+(defun byte-decompile-bytecode-1 (bytes constvec &optional make-spliceable)
   (let ((length (length bytes))
        (ptr 0) optr tag tags op offset
        lap tmp
        endtag
        (retcount 0))
     (while (not (= ptr length))
-      (setq lap (cons ptr lap))
+      (or make-spliceable
+         (setq lap (cons ptr lap)))
       (setq op (aref bytes ptr)
            optr ptr
            offset (disassemble-offset)) ; this does dynamic-scope magic
                                (car (setq byte-compile-variables
                                           (cons (list tmp)
                                                 byte-compile-variables)))))))
-           ((and make-splicable
+           ((and make-spliceable
                  (eq op 'byte-return))
             (if (= ptr (1- length))
                 (setq op nil)