[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