[movitz-cvs] CVS update: movitz/losp/muerte/scavenge.lisp

Frode Vatvedt Fjeld ffjeld at common-lisp.net
Mon Jan 3 11:53:52 UTC 2005


Update of /project/movitz/cvsroot/movitz/losp/muerte
In directory common-lisp.net:/tmp/cvs-serv9055

Modified Files:
	scavenge.lisp 
Log Message:
Some tweaking of map-stack-vector.

Date: Mon Jan  3 12:53:49 2005
Author: ffjeld

Index: movitz/losp/muerte/scavenge.lisp
diff -u movitz/losp/muerte/scavenge.lisp:1.37 movitz/losp/muerte/scavenge.lisp:1.38
--- movitz/losp/muerte/scavenge.lisp:1.37	Fri Dec 10 13:47:37 2004
+++ movitz/losp/muerte/scavenge.lisp	Mon Jan  3 12:53:47 2005
@@ -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.37 2004/12/10 12:47:37 ffjeld Exp $
+;;;; $Id: scavenge.lisp,v 1.38 2005/01/03 11:53:47 ffjeld Exp $
 ;;;;                
 ;;;;------------------------------------------------------------------
 
@@ -248,9 +248,9 @@
 				    (dit-frame-ref stack dit-frame :eip :unsigned-byte32)
 				    (memref interrupted-esp 0 :type :unsigned-byte32)
 				    (funobj-name casf-funobj))
-			      (map-region function (+ interrupted-esp 1) frame)
 			      (when (eq 0 (stack-frame-ref stack frame -1))
 				(break "X1 call in DIT-frame."))
+			      (map-region function (+ interrupted-esp 1) frame)
 			      (setf next-frame frame
 				    next-nether-frame (+ interrupted-esp 1 -2)))
 			     ((let ((x1-tag (ldb (byte 3 0)
@@ -280,6 +280,8 @@
 
 				() "Stack discipline situation ii. invariant broken. CASF=#x~X, ESP=~S, EBP=~S"
 				casf-frame interrupted-esp interrupted-ebp)
+			    (when (eq 0 (stack-frame-ref stack frame -1))
+			      (break "X1 ii call in DIT-frame."))
 			    (map-region function (+ interrupted-esp 2) frame)
 			    (setf next-frame frame
 				  next-nether-frame (+ interrupted-esp 2 -2)))
@@ -288,6 +290,8 @@
 							  (memref interrupted-esp 0 :type :location))
 				() "Stack discipline situation iii. invariant broken. CASF=#x~X"
 				casf-frame)
+			    (when (eq 0 (stack-frame-ref stack frame -1))
+			      (break "X1 iii call in DIT-frame."))
 			    (map-region function (+ interrupted-esp 1) frame)
 			    (setf next-frame frame
 				  next-nether-frame (+ interrupted-esp 1 -2))))))




More information about the Movitz-cvs mailing list