src/JavaFieldRef2.st
branchjk_new_structure
changeset 1233 6f0735496901
parent 1205 ea0a42e158f0
child 1234 6ddf1122f94b
--- a/src/JavaFieldRef2.st	Wed Dec 07 12:04:39 2011 +0000
+++ b/src/JavaFieldRef2.st	Wed Dec 07 12:39:12 2011 +0000
@@ -105,40 +105,37 @@
 findResolvedValue
     valueCache := JavaResolver uniqueInstance 
                 resolveFieldIndentifiedByRef: self.
-    classCache := (constantPool at: classRefIndex) resolve.
+    "/classCache := (constantPool at: classRefIndex) resolve.
+    classCache := valueCache javaClass.
     classCache ifNil: [ self breakPoint: #mh ].
     self resolveOffset.
     nameAndTypeCache := (constantPool at: nameAndTypeIndex) resolve.
     self resolveType.
     nameAndTypeCache ifNil: [ self breakPoint: #mh ].
 
-    "Modified: / 18-05-2011 / 12:44:17 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+    "Modified: / 07-12-2011 / 13:30:49 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
 !
 
 resolveOffset
     "fieldRef must be resolved before calling me"
     
     | currentClass |
+    currentClass := classCache.
+    self assert: (currentClass instVarNames includes: self name).
+    offset := currentClass instVarOffsetOf: self name.
 
-    currentClass := classCache.
-    
-    [ offset := currentClass instVarOffsetOf: self name.
-    offset isNil and: [ currentClass superclass ~= JavaObject ]. ] whileTrue: [ currentClass := currentClass superclass. ].
-
-    "Modified: / 20-05-2011 / 20:36:17 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+    "Modified: / 07-12-2011 / 13:35:51 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
 !
 
 resolveStaticOffset
     "fieldRef must be resolved before calling me"
     
     | currentClass |
+    currentClass := classCache.
+    self assert: (currentClass class instVarNames includes: self name).
+    offset := currentClass class instVarOffsetOf: self name.
 
-    currentClass := classCache.
-    
-    [ offset := currentClass class instVarOffsetOf: self name.
-    offset isNil and: [ currentClass superclass ~= JavaObject ]. ] whileTrue: [ currentClass := currentClass superclass. ].
-
-    "Modified: / 20-05-2011 / 20:36:11 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+    "Modified: / 07-12-2011 / 13:38:03 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
 !
 
 resolveType