--- a/JavaFieldref.st Mon Jan 12 13:51:13 1998 +0000
+++ b/JavaFieldref.st Mon Jan 12 14:24:47 1998 +0000
@@ -1,13 +1,26 @@
-'From Smalltalk/X, Version:3.3.1 on 2-jan-1998 at 6:37:23 pm' !
+'From Smalltalk/X, Version:3.3.1 on 10-jan-1998 at 12:05:58 am' !
JavaRef subclass:#JavaFieldref
instanceVariableNames:'offset type'
- classVariableNames:''
+ classVariableNames:'T_LONG T_DOUBLE'
poolDictionaries:''
category:'Java-Reader-Support'
!
+!JavaFieldref class methodsFor:'initialization'!
+
+initialize
+ T_LONG := 1.
+ T_DOUBLE := 2.
+
+ "
+ self initialize
+ "
+
+ "Created: / 10.1.1998 / 11:45:00 / cg"
+! !
+
!JavaFieldref methodsFor:'accessing'!
nameandType
@@ -35,11 +48,21 @@
!JavaFieldref methodsFor:'resolving'!
isDouble
- ^ (JavaMethod typeFromSignature:nameandType signature) == #double
+ type isNil ifTrue:[
+ self resolveType
+ ].
+ ^ type == T_DOUBLE
+
+ "Modified: / 10.1.1998 / 11:51:52 / cg"
!
isLong
- ^ (JavaMethod typeFromSignature:nameandType signature) == #long
+ type isNil ifTrue:[
+ self resolveType
+ ].
+ ^ type == T_LONG
+
+ "Modified: / 10.1.1998 / 11:51:36 / cg"
!
name
@@ -47,112 +70,86 @@
!
offset
- offset notNil ifTrue:[^ offset].
- self resolve.
+ offset isNil ifTrue:[
+ self resolve.
+ ].
^ offset.
- "Modified: / 1.1.1998 / 19:20:23 / cg"
+ "Modified: / 10.1.1998 / 11:48:19 / cg"
!
resolve
- |nm sig cls|
+ |nm cls|
class isUnresolved ifTrue:[
- self halt:'unresolved class'.
+ self halt:'unresolved class'.
].
+ self resolveType.
nm := nameandType name asSymbol.
- sig := nameandType signature.
-
- type := JavaMethod typeFromSignature:sig.
offset := class instVarOffsetOf:nm.
- "Modified: / 1.1.1998 / 19:19:52 / cg"
+ "Modified: / 10.1.1998 / 11:50:06 / cg"
!
resolveStatic
- |nm sig mthd cls|
+ |nm cls|
cls := class javaClass.
cls ~~ class ifTrue:[
class := cls.
].
+ self resolveType.
nm := nameandType name asSymbol.
- sig := nameandType signature.
-
- type := JavaMethod typeFromSignature:sig.
offset := class class instVarOffsetOf:nm.
"Created: / 2.1.1998 / 17:16:55 / cg"
- "Modified: / 2.1.1998 / 17:17:22 / cg"
+ "Modified: / 10.1.1998 / 11:50:45 / cg"
+!
+
+resolveType
+ type := JavaMethod typeFromSignature:(nameandType signature) in:nil.
+ type == #long ifTrue:[
+ type := T_LONG.
+ ] ifFalse:[
+ type == #double ifTrue:[
+ type := T_DOUBLE
+ ]
+ ].
+
+ "Created: / 10.1.1998 / 11:49:36 / cg"
!
staticOffset
- offset notNil ifTrue:[^ offset].
- self resolveStatic.
+ offset isNil ifTrue:[
+ self resolveStatic.
+ ].
^ offset.
- "Modified: / 2.1.1998 / 17:17:47 / cg"
+ "Modified: / 10.1.1998 / 11:47:59 / cg"
!
type
- type notNil ifTrue:[^ type].
- self resolve.
- ^ type.
-
- "Modified: / 1.1.1998 / 19:20:37 / cg"
-!
-
-xxoffset
- |nm sig cls|
-
- offset notNil ifTrue:[^ offset].
-
-"/ class := class resolveClass.
-
-"/ (class isMemberOf:JavaUnresolvedClassConstant) ifTrue:[
-"/ cls := class resolve.
-"/ cls notNil ifTrue:[
-"/ class := cls
-"/ ].
-"/ ].
- class isUnresolved ifTrue:[
- self halt:'unresolved class'.
+ type isNil ifTrue:[
+ self resolveType.
+ ].
+ type == T_LONG ifTrue:[
+ ^ #long.
+ ].
+ type == T_DOUBLE ifTrue:[
+ ^ #double
].
- nm := nameandType name asSymbol.
- sig := nameandType signature.
-
- type := JavaMethod typeFromSignature:sig.
- offset := class instVarOffsetOf:nm.
- ^ offset.
-!
-
-xxtype
- |sig cls|
-
- type notNil ifTrue:[^ type].
+ ^ type.
-"/ class := class resolveClass.
-
-"/ (class isMemberOf:JavaUnresolvedClassConstant) ifTrue:[
-"/ cls := class resolve.
-"/ cls notNil ifTrue:[
-"/ class := cls
-"/ ]
-"/ ].
- class isUnresolved ifTrue:[
- self halt:'unresolved class'.
- ].
-
- sig := nameandType signature.
- type := JavaMethod typeFromSignature:sig.
- ^ type.
+ "Modified: / 10.1.1998 / 11:50:54 / cg"
! !
!JavaFieldref class methodsFor:'documentation'!
version
- ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaFieldref.st,v 1.15 1998/01/05 18:47:25 cg Exp $'
+ ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaFieldref.st,v 1.16 1998/01/12 14:24:33 cg Exp $'
+
! !
+JavaFieldref initialize!