[movitz-cvs] CVS update: movitz/losp/muerte/scavenge.lisp
Frode Vatvedt Fjeld
ffjeld at common-lisp.net
Tue Jul 20 13:13:41 UTC 2004
Update of /project/movitz/cvsroot/movitz/losp/muerte
In directory common-lisp.net:/tmp/cvs-serv1565
Modified Files:
scavenge.lisp
Log Message:
Map-stack-words inspects funobjs on the stack in order to determine
the type of stack-frame etc. But the funobj might have migrated, which
is why we must apply the mapping function to funobjs before we look at them.
Date: Tue Jul 20 06:13:41 2004
Author: ffjeld
Index: movitz/losp/muerte/scavenge.lisp
diff -u movitz/losp/muerte/scavenge.lisp:1.22 movitz/losp/muerte/scavenge.lisp:1.23
--- movitz/losp/muerte/scavenge.lisp:1.22 Tue Jul 20 05:37:04 2004
+++ movitz/losp/muerte/scavenge.lisp Tue Jul 20 06:13:41 2004
@@ -10,7 +10,7 @@
;;;; Author: Frode Vatvedt Fjeld <frodef at acm.org>
;;;; Created at: Mon Mar 29 14:54:08 2004
;;;;
-;;;; $Id: scavenge.lisp,v 1.22 2004/07/20 12:37:04 ffjeld Exp $
+;;;; $Id: scavenge.lisp,v 1.23 2004/07/20 13:13:41 ffjeld Exp $
;;;;
;;;;------------------------------------------------------------------
@@ -142,11 +142,7 @@
(loop for nether-frame = start-stack-frame then frame
and frame = (stack-frame-uplink start-stack-frame) then (stack-frame-uplink frame)
while (plusp frame)
- do (let ((funobj (stack-frame-funobj frame t)))
- #+ignore
- (format t "~&fill ~S frame for ~S"
- (aref (%run-time-context-slot 'nursery-space) 0)
- funobj)
+ do (let ((funobj (funcall function (stack-frame-funobj frame t) nil)))
(typecase funobj
(function
(assert (= 0 (funobj-frame-num-unboxed funobj)))
@@ -162,7 +158,7 @@
;; 2. Pop to interrupted frame
(setf nether-frame frame
frame (stack-frame-uplink frame))
- (let ((interrupted-funobj (stack-frame-funobj frame))
+ (let ((interrupted-funobj (funcall function (stack-frame-funobj frame t) nil))
(interrupted-esp (+ interrupt-frame 6)))
(assert (typep interrupted-funobj 'function) ()
"Interrupted frame was not a normal function: ~S"
More information about the Movitz-cvs
mailing list