[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