JavaFieldRef2.st
author Claus Gittinger <cg@exept.de>
Wed, 26 Jun 2019 22:06:15 +0200
branchcvs_MAIN
changeset 3917 94088b7097d5
parent 3648 84aa9182d7cb
permissions -rw-r--r--
#OTHER by cg +bracketStrings
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
     1
"
3324
a58245c0e83a Updated copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3235
diff changeset
     2
 COPYRIGHT (c) 1996-2015 by Claus Gittinger
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2273
diff changeset
     3
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2273
diff changeset
     4
 New code and modifications done at SWING Research Group [1]:
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2273
diff changeset
     5
3324
a58245c0e83a Updated copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3235
diff changeset
     6
 COPYRIGHT (c) 2010-2015 by Jan Vrany, Jan Kurs and Marcel Hlopko
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
     7
                            SWING Research Group, Czech Technical University in Prague
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
     8
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
     9
 This software is furnished under a license and may be used
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    10
 only in accordance with the terms of that license and with the
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    11
 inclusion of the above copyright notice.   This software may not
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    12
 be provided or otherwise made available to, or used by, any
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    13
 other person.  No title to or ownership of the software is
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    14
 hereby transferred.
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    15
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2273
diff changeset
    16
 [1] Code written at SWING Research Group contains a signature
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2273
diff changeset
    17
     of one of the above copright owners. For exact set of such code,
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2273
diff changeset
    18
     see the differences between this version and version stx:libjava
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2273
diff changeset
    19
     as of 1.9.2010
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    20
"
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    21
"{ Package: 'stx:libjava' }"
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    22
3648
84aa9182d7cb #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 3412
diff changeset
    23
"{ NameSpace: Smalltalk }"
84aa9182d7cb #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 3412
diff changeset
    24
2992
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
    25
JavaClassMemberRef2 subclass:#JavaFieldRef2
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
    26
	instanceVariableNames:'resolvedOffset'
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
    27
	classVariableNames:''
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
    28
	poolDictionaries:'JavaConstants'
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    29
	category:'Languages-Java-Reader-Support-new'
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    30
!
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    31
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    32
!JavaFieldRef2 class methodsFor:'documentation'!
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    33
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    34
copyright
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    35
"
3324
a58245c0e83a Updated copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3235
diff changeset
    36
 COPYRIGHT (c) 1996-2015 by Claus Gittinger
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2273
diff changeset
    37
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2273
diff changeset
    38
 New code and modifications done at SWING Research Group [1]:
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2273
diff changeset
    39
3324
a58245c0e83a Updated copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3235
diff changeset
    40
 COPYRIGHT (c) 2010-2015 by Jan Vrany, Jan Kurs and Marcel Hlopko
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    41
                            SWING Research Group, Czech Technical University in Prague
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    42
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    43
 This software is furnished under a license and may be used
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    44
 only in accordance with the terms of that license and with the
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    45
 inclusion of the above copyright notice.   This software may not
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    46
 be provided or otherwise made available to, or used by, any
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    47
 other person.  No title to or ownership of the software is
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    48
 hereby transferred.
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    49
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2273
diff changeset
    50
 [1] Code written at SWING Research Group contains a signature
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2273
diff changeset
    51
     of one of the above copright owners. For exact set of such code,
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2273
diff changeset
    52
     see the differences between this version and version stx:libjava
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2273
diff changeset
    53
     as of 1.9.2010
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    54
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    55
"
2992
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
    56
!
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    57
2992
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
    58
documentation
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
    59
"
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
    60
    A symbolic reference to a field.
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
    61
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
    62
    [author:]
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
    63
        Marcel Hlopko <marcel.hlopko@fit.cvut.cz>
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
    64
        Jan Vrany <jan.vrany@fit.cvut.cz>
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    65
2992
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
    66
    [instance variables:]
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
    67
      !! resolvedOffset ...... once resolved, this slot contains physical offset
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
    68
                              of the field within an instance (if instance field)
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
    69
                              or of the static field withing a class instance
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
    70
                              (if static field).
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
    71
                              !!!!!! Used by the VM !!!!!!
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    72
2992
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
    73
    [class variables:]
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
    74
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
    75
    [see also:]
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
    76
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
    77
"
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    78
! !
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    79
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    80
!JavaFieldRef2 methodsFor:'accessing'!
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    81
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    82
isJavaFieldRef
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    83
^true.
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    84
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    85
    "Created: / 11-04-2011 / 21:47:51 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    86
!
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    87
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    88
offset
2992
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
    89
    ^ resolvedOffset.
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    90
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    91
    "Created: / 15-05-2011 / 22:26:08 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    92
!
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    93
2992
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
    94
resolvedOffset
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
    95
    ^ resolvedOffset.
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
    96
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
    97
    "Created: / 31-01-2014 / 09:15:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
    98
!
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
    99
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   100
type
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   101
    ^ type.
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   102
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   103
    "Created: / 15-05-2011 / 22:29:05 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
2799
b2fa940b8184 Fixed tests JavaFieldRefTests>>testCorrectResolving
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2731
diff changeset
   104
    "Modified: / 05-10-2013 / 23:57:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   105
! !
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   106
3235
6a5d85f29c3a Fixes for reloading
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3212
diff changeset
   107
!JavaFieldRef2 methodsFor:'printing & storing'!
6a5d85f29c3a Fixes for reloading
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3212
diff changeset
   108
6a5d85f29c3a Fixes for reloading
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3212
diff changeset
   109
printOn:aStream
6a5d85f29c3a Fixes for reloading
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3212
diff changeset
   110
    super printOn: aStream. 
6a5d85f29c3a Fixes for reloading
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3212
diff changeset
   111
    aStream nextPut: $(.
6a5d85f29c3a Fixes for reloading
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3212
diff changeset
   112
    self classRef javaClassName printOn: aStream.
6a5d85f29c3a Fixes for reloading
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3212
diff changeset
   113
    aStream nextPut:$#.
6a5d85f29c3a Fixes for reloading
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3212
diff changeset
   114
    aStream nextPutAll: self nameAndType name.  
6a5d85f29c3a Fixes for reloading
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3212
diff changeset
   115
    aStream nextPut: $).
6a5d85f29c3a Fixes for reloading
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3212
diff changeset
   116
6a5d85f29c3a Fixes for reloading
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3212
diff changeset
   117
    "Modified: / 15-08-2014 / 15:30:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6a5d85f29c3a Fixes for reloading
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3212
diff changeset
   118
! !
6a5d85f29c3a Fixes for reloading
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3212
diff changeset
   119
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   120
!JavaFieldRef2 methodsFor:'private - resolving'!
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   121
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2273
diff changeset
   122
findInstOffset
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2273
diff changeset
   123
    "fieldRef must be resolved before calling me"
2992
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
   124
    self assert: resolvedClass notNil.
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
   125
    self assert: resolvedValue notNil.
3648
84aa9182d7cb #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 3412
diff changeset
   126
    ^ resolvedClass instVarIndexFor: self name.
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2273
diff changeset
   127
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2273
diff changeset
   128
    "Created: / 07-12-2011 / 13:44:59 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2273
diff changeset
   129
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2273
diff changeset
   130
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2273
diff changeset
   131
findResolvedValue: doClassInit
2748
fa96e547c9a5 set cleanCacheFlag in JavaFieldRef when multiple java class versions present
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 2711
diff changeset
   132
    "
2992
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
   133
    Stores resolved field in valueCache field, fills offset and
2820
1ab75f8aa9de small cleanup
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 2819
diff changeset
   134
    type fields.
2748
fa96e547c9a5 set cleanCacheFlag in JavaFieldRef when multiple java class versions present
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 2711
diff changeset
   135
    "
2992
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
   136
    resolvedValue := JavaResolver uniqueInstance
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   137
                resolveFieldIndentifiedByRef: self.
2992
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
   138
    resolvedValue isStatic ifTrue: [ resolvedClass := resolvedValue javaClass ] ifFalse: [
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
   139
        resolvedClass := self classRef resolve: doClassInit.
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2273
diff changeset
   140
    ].
2992
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
   141
    resolvedClass isNil ifTrue: [ self breakPoint: #mh ].
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   142
    self resolveOffset.
2745
d82859be4462 remove findResolvedStaticValue from JavaFieldRef2, not used anymore
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 2711
diff changeset
   143
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2273
diff changeset
   144
    "Modified: / 07-12-2011 / 21:52:23 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2273
diff changeset
   145
    "Created: / 09-02-2012 / 23:09:18 / mh <hlopik@gmail.com>"
2820
1ab75f8aa9de small cleanup
Marcel Hlopko <marcel.hlopko@gmail.com>
parents: 2819
diff changeset
   146
    "Modified: / 12-10-2013 / 17:54:48 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
2992
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
   147
    "Modified: / 31-01-2014 / 03:02:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2273
diff changeset
   148
!
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   149
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2273
diff changeset
   150
findStaticOffset
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2273
diff changeset
   151
    "fieldRef must be resolved before calling me"
2992
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
   152
    self assert: resolvedClass notNil.
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
   153
    self assert: resolvedValue notNil.
3648
84aa9182d7cb #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 3412
diff changeset
   154
    ^ resolvedClass class instVarIndexFor: self name.
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2273
diff changeset
   155
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2273
diff changeset
   156
    "Created: / 07-12-2011 / 13:45:15 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2273
diff changeset
   157
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2273
diff changeset
   158
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2273
diff changeset
   159
preResolve
2799
b2fa940b8184 Fixed tests JavaFieldRefTests>>testCorrectResolving
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2731
diff changeset
   160
    | descriptor |
b2fa940b8184 Fixed tests JavaFieldRefTests>>testCorrectResolving
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2731
diff changeset
   161
b2fa940b8184 Fixed tests JavaFieldRefTests>>testCorrectResolving
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2731
diff changeset
   162
    descriptor := (constantPool at: nameAndTypeIndex) descriptor.
b2fa940b8184 Fixed tests JavaFieldRefTests>>testCorrectResolving
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2731
diff changeset
   163
    type := 0.
b2fa940b8184 Fixed tests JavaFieldRefTests>>testCorrectResolving
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2731
diff changeset
   164
    descriptor = 'J' ifTrue:[
2992
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
   165
        type := ACX_R_LONG.
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   166
    ] ifFalse:[
2801
62c767616a13 Fixed stupid bug in JavaFieldRef2 (did not correctly set type to R_DOUBLE for double fields)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2799
diff changeset
   167
        descriptor = 'D' ifTrue:[
2992
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
   168
            type := ACX_R_DOUBLE
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   169
        ]
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   170
    ].
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   171
2992
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
   172
    "Created: / 16-10-2012 / 10:45:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
   173
    "Modified: / 31-01-2014 / 03:38:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
   174
!
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
   175
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
   176
resolveOffset
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
   177
    "fieldRef must be resolved before calling me"
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
   178
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
   179
    self assert: resolvedValue notNil.
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
   180
    self assert: resolvedClass isJavaClass.
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
   181
    resolvedValue isStatic ifTrue: [ resolvedOffset := self findStaticOffset. ] ifFalse: [
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
   182
        resolvedOffset := self findInstOffset.
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
   183
    ].
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
   184
    self assert: resolvedOffset notNil.
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
   185
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
   186
    "Modified: / 07-12-2011 / 21:47:43 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   187
! !
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   188
2858
3a85f55763e2 Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2827
diff changeset
   189
!JavaFieldRef2 methodsFor:'resolving'!
3a85f55763e2 Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2827
diff changeset
   190
3a85f55763e2 Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2827
diff changeset
   191
invalidate
2976
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2858
diff changeset
   192
2992
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
   193
    resolvedOffset := nil.
2976
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2858
diff changeset
   194
    ^ super invalidate.
2858
3a85f55763e2 Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2827
diff changeset
   195
3a85f55763e2 Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2827
diff changeset
   196
    "Created: / 14-10-2013 / 23:39:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3212
caa15c28f3a1 Fixed bad bug in realoding - do not flush type when invalidating field ref.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2992
diff changeset
   197
    "Modified: / 07-08-2014 / 14:38:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2858
3a85f55763e2 Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2827
diff changeset
   198
! !
3a85f55763e2 Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2827
diff changeset
   199
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   200
!JavaFieldRef2 class methodsFor:'documentation'!
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   201
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2273
diff changeset
   202
version_CVS
3648
84aa9182d7cb #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 3412
diff changeset
   203
    ^ '$Header$'
2273
4320d6d1081e fixed: #version_SVN ($ to §)
Claus Gittinger <cg@exept.de>
parents: 2234
diff changeset
   204
!
4320d6d1081e fixed: #version_SVN ($ to §)
Claus Gittinger <cg@exept.de>
parents: 2234
diff changeset
   205
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2273
diff changeset
   206
version_HG
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2273
diff changeset
   207
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2273
diff changeset
   208
    ^ '$Changeset: <not expanded> $'
2234
5596ea14dfbb added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 2152
diff changeset
   209
!
5596ea14dfbb added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 2152
diff changeset
   210
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   211
version_SVN
3648
84aa9182d7cb #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 3412
diff changeset
   212
    ^ '$Id$'
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   213
! !
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   214