Update of /cvsroot/sbcl/sbcl/src/compiler
In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv20319/src/compiler
Modified Files:
xref.lisp
Log Message:
1.0.36.35: More accurate WHO-CALLS / WHO-EXPANDS information
* Fix for .34 which also affects WHO-EXPANDS; instead of pointing at
the toplevel form, actually point into the right subform.
* Bug due to typo: CDDR was used instead of CADDR.
Index: xref.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/compiler/xref.lisp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- xref.lisp 19 Mar 2010 21:33:08 -0000 1.9
+++ xref.lisp 20 Mar 2010 16:08:08 -0000 1.10
@@ -31,17 +31,17 @@
;; Properly record the deferred macroexpansion and source
;; transform information that's been stored in the block.
(dolist (xref-data (block-xrefs block))
- (record-xref (car xref-data)
- (cadr xref-data)
- ;; We use the debug-name of the functional
- ;; as an identifier. This works quite nicely,
- ;; except for (fast/slow)-methods with non-symbol,
- ;; non-number eql specializers, for which
- ;; the debug-name doesn't map exactly
- ;; to the fdefinition of the method.
- functional
- nil
- (cddr xref-data)))))
+ (destructuring-bind (kind what path) xref-data
+ (record-xref kind what
+ ;; We use the debug-name of the functional
+ ;; as an identifier. This works quite nicely,
+ ;; except for (fast/slow)-methods with non-symbol,
+ ;; non-number eql specializers, for which
+ ;; the debug-name doesn't map exactly
+ ;; to the fdefinition of the method.
+ functional
+ nil
+ path)))))
(call-with-block-external-functionals block #'handle-node)))))
(defun call-with-block-external-functionals (block fun)
|