JavaUnresolvedFieldrefConstant.st
changeset 90 918e2740098c
parent 41 eb7974d88088
child 93 2b1e50b70bb1
--- a/JavaUnresolvedFieldrefConstant.st	Fri Jun 28 21:39:41 1996 +0000
+++ b/JavaUnresolvedFieldrefConstant.st	Fri Jun 28 21:39:53 1996 +0000
@@ -1,17 +1,69 @@
 JavaUnresolvedRefConstant subclass:#JavaUnresolvedFieldrefConstant
-	instanceVariableNames:''
+	instanceVariableNames:'classIndex'
 	classVariableNames:''
 	poolDictionaries:''
 	category:'Java-Reader-Support'
 !
 
 
+!JavaUnresolvedFieldrefConstant  class methodsFor:'instance creation'!
+
+pool:aPool poolIndex:idx classIndex:cIdx nameandTypeIndex:nmIdx
+    ^ self new 
+        pool:aPool poolIndex:idx classIndex:cIdx nameandTypeIndex:nmIdx
+
+
+! !
+
+!JavaUnresolvedFieldrefConstant methodsFor:'accessing'!
+
+pool:aPool poolIndex:slotIndex classIndex:cIdx nameandTypeIndex:nmIdx  
+    constantPool := aPool.
+    constantPoolIndex := slotIndex.
+    classIndex := cIdx.
+    nameandTypeIndex := nmIdx
+
+
+
+! !
+
 !JavaUnresolvedFieldrefConstant methodsFor:'resolving'!
 
+preResolve
+    |className class nameAndType ref|
+
+    class := (constantPool at:classIndex).
+    class isUnresolved ifTrue:[
+        class := class preResolve.
+    ].
+    class isUnresolved ifFalse:[
+        nameAndType := (constantPool at:nameandTypeIndex).
+        nameAndType isUnresolved ifTrue:[
+            nameAndType := nameAndType preResolve.
+        ].
+        nameAndType isUnresolved ifFalse:[
+            "/ good - class is there
+
+            ref := JavaFieldref class:class nameandType:nameAndType.
+            constantPool at:constantPoolIndex put:ref.
+            ^ ref
+        ]
+    ].
+
+    self rememberForResolveWith:(class fullName).
+    ^ self
+
+    "Created: 15.4.1996 / 16:05:50 / cg"
+    "Modified: 15.4.1996 / 16:26:44 / cg"
+! !
+
+!JavaUnresolvedFieldrefConstant ignoredMethodsFor:'resolving'!
+
 resolveFrom:aConstantTable
     |class nameAndType|
 
-    class := self class resolve:(aConstantTable at:index) from:aConstantTable.
+self halt.
+    class := self class resolve:(aConstantTable at:constantPoolIndex) from:aConstantTable.
     nameAndType := self class resolve:(aConstantTable at:nameandTypeIndex) from:aConstantTable.
 
     ^ JavaFieldref 
@@ -22,8 +74,8 @@
     "Modified: 15.4.1996 / 16:26:44 / cg"
 ! !
 
-!JavaUnresolvedFieldrefConstant class methodsFor:'documentation'!
+!JavaUnresolvedFieldrefConstant  class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaUnresolvedFieldrefConstant.st,v 1.4 1996/05/03 11:28:42 cg Exp $'
+    ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaUnresolvedFieldrefConstant.st,v 1.5 1996/06/28 21:39:53 cg Exp $'
 ! !