--- 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