[slime-cvs] CVS update: slime/swank-openmcl.lisp

Alan Ruttenberg aruttenberg at common-lisp.net
Wed Sep 15 18:59:46 UTC 2004


Update of /project/slime/cvsroot/slime
In directory common-lisp.net:/tmp/cvs-serv25816/slime

Modified Files:
	swank-openmcl.lisp 
Log Message:
swank-openmcl: typo in who-references. Fix frame-var-value

Date: Wed Sep 15 20:59:45 2004
Author: aruttenberg

Index: slime/swank-openmcl.lisp
diff -u slime/swank-openmcl.lisp:1.83 slime/swank-openmcl.lisp:1.84
--- slime/swank-openmcl.lisp:1.83	Tue Sep 14 18:01:06 2004
+++ slime/swank-openmcl.lisp	Wed Sep 15 20:59:44 2004
@@ -255,10 +255,15 @@
    #'(lambda(frame-number p context lfun pc)
        (when (= frame frame-number)
          (return-from frame-var-value 
-           (multiple-value-bind (count vsp parent-vsp)
+           (multiple-value-bind (total vsp parent-vsp)
                (ccl::count-values-in-frame p context)
-             (declare (ignore count))
-             (ccl::nth-value-in-frame p var context lfun pc vsp parent-vsp)))))))
+             (loop for count below total
+                   with varcount = -1
+                   for (value nil name) = (multiple-value-list (ccl::nth-value-in-frame p count context lfun pc vsp parent-vsp))
+                   when name do (incf varcount)
+                   until (= varcount var)
+                   finally (return value))
+             ))))))
 
 (defun xref-locations (relation name &optional (inverse nil))
   (loop for xref in (if inverse 
@@ -277,8 +282,8 @@
   (remove-duplicates
    (append (xref-locations :references name)
            (xref-locations :sets name)
-           (xref-locations :binds name)))
-  :test 'equal)
+           (xref-locations :binds name))
+   :test 'equal))
 
 (defimplementation who-sets (name)
   (xref-locations :sets name))





More information about the slime-cvs mailing list