emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 218748c2628: disass.el (disassemble-1): Minor simplification


From: Stefan Monnier
Subject: master 218748c2628: disass.el (disassemble-1): Minor simplification
Date: Mon, 4 Mar 2024 23:42:58 -0500 (EST)

branch: master
commit 218748c26287ae865229fe8a3c520facfa12fede
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>

    disass.el (disassemble-1): Minor simplification
    
    * lisp/emacs-lisp/disass.el (disassemble-1): Remove code for functions
    of the form (lambda ARGS (byte-code ...)) which we don't use any
    more nowadays.
---
 lisp/emacs-lisp/disass.el | 39 ++++++++++++++++-----------------------
 1 file changed, 16 insertions(+), 23 deletions(-)

diff --git a/lisp/emacs-lisp/disass.el b/lisp/emacs-lisp/disass.el
index b7db2adde59..850cc2085f7 100644
--- a/lisp/emacs-lisp/disass.el
+++ b/lisp/emacs-lisp/disass.el
@@ -54,7 +54,7 @@
 (defun disassemble (object &optional buffer indent interactive-p)
   "Print disassembled code for OBJECT in (optional) BUFFER.
 OBJECT can be a symbol defined as a function, or a function itself
-\(a lambda expression or a compiled-function object).
+\(a lambda expression or a byte-code-function object).
 If OBJECT is not already compiled, we compile it, but do not
 redefine OBJECT if it is a symbol."
   (interactive
@@ -70,7 +70,7 @@ redefine OBJECT if it is a symbol."
     (save-excursion
       (if (or interactive-p (null buffer))
          (with-output-to-temp-buffer "*Disassemble*"
-           (set-buffer "*Disassemble*")
+           (set-buffer standard-output)
             (let ((lexical-binding lb))
              (disassemble-internal object indent (not interactive-p))))
         (set-buffer buffer)
@@ -250,29 +250,22 @@ OBJ should be a call to BYTE-CODE generated by the byte 
compiler."
                  ;; if the succeeding op is byte-switch, display the jump table
                  ;; used
                 (cond ((eq (car-safe (car-safe (cdr lap))) 'byte-switch)
-                         (insert (format "<jump-table-%s (" (hash-table-test 
arg)))
-                         (let ((first-time t))
-                           (maphash #'(lambda (value tag)
-                                        (if first-time
-                                            (setq first-time nil)
-                                          (insert " "))
-                                        (insert (format "%s %s" value (cadr 
tag))))
-                                    arg))
-                         (insert ")>"))
-                  ;; if the value of the constant is compiled code, then
-                  ;; recursively disassemble it.
-                  ((or (byte-code-function-p arg)
-                           (and (consp arg) (functionp arg)
-                                (assq 'byte-code arg))
+                        (insert (format "<jump-table-%s (" (hash-table-test 
arg)))
+                        (let ((first-time t))
+                          (maphash #'(lambda (value tag)
+                                       (if first-time
+                                           (setq first-time nil)
+                                         (insert " "))
+                                       (insert (format "%s %s" value (cadr 
tag))))
+                                   arg))
+                        (insert ")>"))
+                       ;; if the value of the constant is compiled code, then
+                       ;; recursively disassemble it.
+                       ((or (byte-code-function-p arg)
                            (and (eq (car-safe arg) 'macro)
-                                (or (byte-code-function-p (cdr arg))
-                                    (and (consp (cdr arg))
-                                          (functionp (cdr arg))
-                                         (assq 'byte-code (cdr arg))))))
+                                (byte-code-function-p (cdr arg))))
                        (cond ((byte-code-function-p arg)
                               (insert "<compiled-function>\n"))
-                             ((functionp arg)
-                              (insert "<compiled lambda>"))
                              (t (insert "<compiled macro>\n")))
                        (disassemble-internal
                         arg
@@ -285,7 +278,7 @@ OBJ should be a call to BYTE-CODE generated by the byte 
compiler."
                         (+ indent disassemble-recursive-indent)))
                       ((eq (car-safe (car-safe arg)) 'byte-code)
                        (insert "(<byte code>...)\n")
-                       (mapc ;recurse on list of byte-code objects
+                       (mapc      ;Recurse on list of byte-code objects.
                         (lambda (obj)
                            (disassemble-1
                             obj



reply via email to

[Prev in Thread] Current Thread [Next in Thread]