diff --git a/compiler/disassem.lisp b/compiler/disassem.lisp index b089b181526a9627ec800f7c30aed6a37365b10e..ae361a4a1da03d310e844dfb517b4b21249d13e8 100644 --- a/compiler/disassem.lisp +++ b/compiler/disassem.lisp @@ -5,7 +5,7 @@ ;;; Carnegie Mellon University, and has been placed in the public domain. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/disassem.lisp,v 1.39 2003/04/30 16:48:50 gerd Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/disassem.lisp,v 1.40 2003/06/08 12:15:53 gerd Exp $") ;;; ;;; ********************************************************************** ;;; @@ -2015,7 +2015,13 @@ (defun fun-address (function) (declare (type compiled-function function)) - (- (kernel:get-lisp-obj-address function) vm:function-pointer-type)) + (ecase (kernel:get-type function) + (vm:function-header-type + (- (kernel:get-lisp-obj-address function) vm:function-pointer-type)) + (vm:closure-header-type + (fun-address (kernel:%closure-function fun))) + (vm:funcallable-instance-header-type + (fun-address (kernel:funcallable-instance-function fun))))) (defun fun-insts-offset (function) "Offset of FUNCTION from the start of its code-component's instruction area." diff --git a/general-info/release-19a.txt b/general-info/release-19a.txt index 0a953450cf0e7835513fbc6b1aba70f80d3a04e5..76ab710b9358725d45798a006c4a0aba89ab37ae 100644 --- a/general-info/release-19a.txt +++ b/general-info/release-19a.txt @@ -56,6 +56,7 @@ New in this release: - UNIX:UNIX-LSEEK working with files > 2G on BSDs. - Type declarations on local bindings of special variables no longer being ignored. + - DISASSEMBLE disassembling closure/funcallable instance functions. * Numerous ANSI compliance fixes: - Many bugs in CMUCL's type system detected by Paul Dietz'