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@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"