[slime-cvs] CVS slime

CVS User heller heller at common-lisp.net
Thu Jan 8 06:45:37 UTC 2009


Update of /project/slime/cvsroot/slime
In directory cl-net:/tmp/cvs-serv26779

Modified Files:
	ChangeLog swank-cmucl.lisp 
Log Message:
* swank-cmucl.lisp (frame-locals, frame-debug-vars): Remove
non-valid variables.
(debug-var-value): Compute the location from the frame arg.

--- /project/slime/cvsroot/slime/ChangeLog	2009/01/08 06:45:28	1.1645
+++ /project/slime/cvsroot/slime/ChangeLog	2009/01/08 06:45:37	1.1646
@@ -1,6 +1,8 @@
 2009-01-07  Helmut Eller  <heller at common-lisp.net>
 
-	* swank-cmucl.lisp (frame-locals): Remove non-valid variables.
+	* swank-cmucl.lisp (frame-locals, frame-debug-vars): Remove
+	non-valid variables.
+	(debug-var-value): Compute the location from the frame arg.
 
 2009-01-07  Helmut Eller  <heller at common-lisp.net>
 
--- /project/slime/cvsroot/slime/swank-cmucl.lisp	2009/01/08 06:45:29	1.207
+++ /project/slime/cvsroot/slime/swank-cmucl.lisp	2009/01/08 06:45:37	1.208
@@ -1541,28 +1541,30 @@
 
 (defun frame-debug-vars (frame)
   "Return a vector of debug-variables in frame."
-  (di::debug-function-debug-variables (di:frame-debug-function frame)))
-
-(defun debug-var-value (var frame location)
-  (let ((validity (di:debug-variable-validity var location)))
+  (let ((loc (di:frame-code-location frame)))
+    (remove-if
+     (lambda (v)
+       (not (eq (di:debug-variable-validity v loc) :valid)))
+     (di::debug-function-debug-variables (di:frame-debug-function frame)))))
+
+(defun debug-var-value (var frame)
+  (let* ((loc (di:frame-code-location frame))
+         (validity (di:debug-variable-validity var loc)))
     (ecase validity
       (:valid (di:debug-variable-value var frame))
       ((:invalid :unknown) (make-symbol (string validity))))))
 
 (defimplementation frame-locals (index)
-  (let* ((frame (nth-frame index))
-	 (loc (di:frame-code-location frame))
-	 (vars (frame-debug-vars frame)))
-    (loop for v across vars 
-          when (eq (di:debug-variable-validity v loc) :valid)
+  (let ((frame (nth-frame index)))
+    (loop for v across (frame-debug-vars frame)
           collect (list :name (di:debug-variable-symbol v)
                         :id (di:debug-variable-id v)
-                        :value (di:debug-variable-valid-value v frame)))))
+                        :value (debug-var-value v frame)))))
 
 (defimplementation frame-var-value (frame var)
   (let* ((frame (nth-frame frame))
          (dvar (aref (frame-debug-vars frame) var)))
-    (debug-var-value dvar frame (di:frame-code-location frame))))
+    (debug-var-value dvar frame)))
 
 (defimplementation frame-catch-tags (index)
   (mapcar #'car (di:frame-catches (nth-frame index))))





More information about the slime-cvs mailing list