mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-15 10:30:25 -08:00
* lisp/emacs-lisp/disass.el: Display jump tables for switch.
This commit is contained in:
parent
19cb3985a3
commit
4e6140b283
1 changed files with 11 additions and 3 deletions
|
|
@ -221,9 +221,17 @@ OBJ should be a call to BYTE-CODE generated by the byte compiler."
|
|||
((memq op '(byte-constant byte-constant2))
|
||||
;; it's a constant
|
||||
(setq arg (car arg))
|
||||
;; but if the value of the constant is compiled code, then
|
||||
;; recursively disassemble it.
|
||||
(cond ((or (byte-code-function-p arg)
|
||||
;; 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)))
|
||||
(maphash #'(lambda (value tag)
|
||||
(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))
|
||||
(and (eq (car-safe arg) 'macro)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue