Object subclass:#JavaContext
instanceVariableNames:'method class sender stack frameBase pc'
classVariableNames:''
poolDictionaries:''
category:'Java-Support'
!
!JavaContext methodsFor:'ST context mimicri'!
argsAndVars
|args|
args := Array new:(method numArgs + method numVars).
method isStatic ifTrue:[
args replaceFrom:1 to:args size with:stack startingAt:frameBase.
] ifFalse:[
args replaceFrom:1 to:args size with:stack startingAt:frameBase+1.
].
^ args
"Created: 1.5.1996 / 17:32:44 / cg"
"Modified: 1.5.1996 / 17:41:50 / cg"
!
canReturn
^ false
"Created: 1.5.1996 / 15:05:36 / cg"
!
isBlockContext
^ false
"Created: 1.5.1996 / 15:05:26 / cg"
!
lineNumber
|nr|
pc isNil ifTrue:[^0].
nr := method lineNumberForPC:pc.
nr isNil ifTrue:[^ 0].
^ nr.
"Created: 1.5.1996 / 15:05:47 / cg"
!
methodClass
^ class
"Created: 1.5.1996 / 15:04:17 / cg"
!
methodHome
^ self
"Created: 1.5.1996 / 15:03:43 / cg"
!
numArgs
^ method numArgs
"Created: 1.5.1996 / 15:04:35 / cg"
!
nvars
^ 0
"Created: 1.5.1996 / 15:05:03 / cg"
!
receiver
method isStatic ifTrue:[
^ method javaClass
].
^ stack at:frameBase
"Created: 1.5.1996 / 15:04:03 / cg"
"Modified: 1.5.1996 / 17:43:17 / cg"
!
selector
^ (method name , method signature) asSymbol "/ signatureName
"Created: 1.5.1996 / 15:03:03 / cg"
! !
!JavaContext methodsFor:'accessing'!
class:aJavaClass method:aJavaMethod sender:aContext stack:s frameBase:f
class := aJavaClass.
method := aJavaMethod.
sender := aContext.
stack := s.
frameBase := f
"Modified: 1.5.1996 / 17:39:34 / cg"
"Created: 1.5.1996 / 17:42:27 / cg"
!
method
^ method.
"Created: 1.5.1996 / 15:00:23 / cg"
"Modified: 1.5.1996 / 15:00:47 / cg"
!
pc
^ pc
!
sender
^ sender.
"Modified: 1.5.1996 / 15:00:47 / cg"
"Created: 1.5.1996 / 15:01:18 / cg"
!
setPC:anInteger
pc := anInteger
! !
!JavaContext methodsFor:'printing & storing'!
printString
|mS recCls|
mS := 'JAVA-' , class name , '::' , method signatureName.
(recCls := self receiver class) ~~ class ifTrue:[
^ recCls name , '>>' , mS
].
^ mS
"Created: 1.5.1996 / 15:07:43 / cg"
"Modified: 1.5.1996 / 17:58:16 / cg"
! !
!JavaContext class methodsFor:'documentation'!
version
^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaContext.st,v 1.4 1996/05/03 18:54:53 cg Exp $'
! !