JavaContext.st
changeset 117 4625d32e5a00
parent 88 8b66ed9a9a5d
child 125 c99addd65f73
--- 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 $'
 ! !