Update of /project/movitz/cvsroot/movitz/losp/muerte In directory common-lisp.net:/tmp/cvs-serv6357
Modified Files: scavenge.lisp Log Message: Re-working of non-local control transfer so as to comply with the stack discipline.
Date: Fri Sep 17 13:13:05 2004 Author: ffjeld
Index: movitz/losp/muerte/scavenge.lisp diff -u movitz/losp/muerte/scavenge.lisp:1.29 movitz/losp/muerte/scavenge.lisp:1.30 --- movitz/losp/muerte/scavenge.lisp:1.29 Wed Sep 15 12:22:59 2004 +++ movitz/losp/muerte/scavenge.lisp Fri Sep 17 13:13:05 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.29 2004/09/15 10:22:59 ffjeld Exp $ +;;;; $Id: scavenge.lisp,v 1.30 2004/09/17 11:13:05 ffjeld Exp $ ;;;; ;;;;------------------------------------------------------------------
@@ -130,6 +130,7 @@ ((scavenge-typep x :old-vector) (error "Scanned old-vector ~Z at address #x~X." x scan)) ((eq x 3) + (setf *scan-last* scan) (incf scan) (let ((delta (memref scan 0 0 :lisp))) (check-type delta positive-fixnum) @@ -206,16 +207,14 @@ (cond ((location-in-object-p casf-code-vector (dit-frame-ref stack dit-frame :eip :location)) - #+ignore - (break "DIT at throw situation, in target EIP=~S" - (dit-frame-ref stack dit-frame :eip :unsigned-byte32)) + (warn "DIT at throw situation, in target EIP=~S" + (dit-frame-ref stack dit-frame :eip :unsigned-byte32)) (map-heap-words function interrupted-esp frame)) ((location-in-object-p (funobj-code-vector (dit-frame-ref stack dit-frame :scratch1)) (dit-frame-ref stack dit-frame :eip :location)) - #+ignore - (break "DIT at throw situation, in thrower EIP=~S" - (dit-frame-ref stack dit-frame :eip :unsigned-byte32)) + (warn "DIT at throw situation, in thrower EIP=~S" + (dit-frame-ref stack dit-frame :eip :unsigned-byte32)) (map-heap-words function interrupted-esp frame)) (t (error "DIT with EBP<ESP, EBP=~S, ESP=~S" interrupted-ebp