--- a/JavaContext.st Fri Jul 05 17:32:14 1996 +0000
+++ b/JavaContext.st Sat Jul 06 18:15:09 1996 +0000
@@ -1,5 +1,5 @@
Object subclass:#JavaContext
- instanceVariableNames:'method class sender stack frameBase pc'
+ instanceVariableNames:'method class sender stack frameBase pc sp'
classVariableNames:''
poolDictionaries:''
category:'Java-Support'
@@ -9,18 +9,18 @@
!JavaContext methodsFor:'ST context mimicri'!
argsAndVars
- |args|
+ |nArgs nVars|
+
+ nArgs := method numArgs.
+ nVars := method numVars.
method isStatic ifTrue:[
-"/ args := Array new:(method numArgs + method numVars).
-"/ args replaceFrom:1 to:args size with:stack startingAt:frameBase.
- ^ (stack copyFrom:frameBase) asArray
- ] ifFalse:[
-"/ args := Array new:(method numArgs + method numVars).
-"/ args replaceFrom:1 to:args size with:stack startingAt:frameBase+1.
- ^ (stack copyFrom:frameBase+1) asArray
+ (nArgs + nVars) == 0 ifTrue:[
+ ^ #()
+ ].
+ ^ (stack copyFrom:frameBase to:(frameBase + nArgs + nVars - 1)) asArray
].
- ^ args
+ ^ (stack copyFrom:(frameBase+1) to:(frameBase + nArgs + nVars)) asArray
"Created: 1.5.1996 / 17:32:44 / cg"
"Modified: 1.5.1996 / 17:41:50 / cg"
@@ -97,8 +97,16 @@
"Created: 1.5.1996 / 15:03:03 / cg"
!
+stack
+ ^ stack
+!
+
stackFrame
- ^ stack copyFrom:frameBase
+sp < frameBase ifTrue:[
+ 'oops - negative stackFrame' errorPrintCR.
+ ^ #()
+].
+ ^ stack copyFrom:frameBase to:(sp-1)
! !
!JavaContext methodsFor:'accessing'!
@@ -114,6 +122,18 @@
"Created: 1.5.1996 / 17:42:27 / cg"
!
+class:aJavaClass method:aJavaMethod sender:aContext stack:s stackPointer:spp frameBase:f
+ class := aJavaClass.
+ method := aJavaMethod.
+ sender := aContext.
+ stack := s.
+ sp := spp.
+ frameBase := f
+
+ "Modified: 1.5.1996 / 17:39:34 / cg"
+ "Created: 1.5.1996 / 17:42:27 / cg"
+!
+
method
^ method.
@@ -134,6 +154,18 @@
setPC:anInteger
pc := anInteger
+!
+
+setSP:anInteger
+ sp := anInteger
+!
+
+setStack:aCollection
+ stack := aCollection
+!
+
+sp
+ ^ sp
! !
!JavaContext methodsFor:'printing & storing'!
@@ -184,5 +216,5 @@
!JavaContext class methodsFor:'documentation'!
version
- ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaContext.st,v 1.7 1996/06/28 13:47:44 cg Exp $'
+ ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaContext.st,v 1.8 1996/07/06 18:15:09 cg Exp $'
! !