# HG changeset patch # User Richard M. Stallman # Date 774684286 0 # Node ID cd3d2474ea10f433300fe2431d54b0c520fef555 # Parent 74218ea236fea775afb77656c7e3a6bdc089b19a (byte-decompile-bytecode-1): Don't add pc values if make-spliceable is non-nil. (Arg renamed from make-splicable.) diff -r 74218ea236fe -r cd3d2474ea10 lisp/emacs-lisp/byte-opt.el --- a/lisp/emacs-lisp/byte-opt.el Wed Jul 20 05:33:14 1994 +0000 +++ b/lisp/emacs-lisp/byte-opt.el Wed Jul 20 06:04:46 1994 +0000 @@ -1094,16 +1094,21 @@ ;; 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 @@ -1125,7 +1130,7 @@ (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)