JavaUnresolvedConstant.st
author cg
Tue, 20 Oct 1998 16:45:42 +0000
changeset 399 94d37f2032a1
parent 230 3bad67347125
child 454 38f590639d65
permissions -rw-r--r--
classloader fixes.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
083530508d9c intitial checkin
cg
parents:
diff changeset
     1
Object subclass:#JavaUnresolvedConstant
90
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
     2
	instanceVariableNames:'nextUnresolved prevUnresolved constantPool constantPoolIndex'
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
     3
	classVariableNames:'PatchLists'
1
083530508d9c intitial checkin
cg
parents:
diff changeset
     4
	poolDictionaries:''
083530508d9c intitial checkin
cg
parents:
diff changeset
     5
	category:'Java-Reader-Support'
083530508d9c intitial checkin
cg
parents:
diff changeset
     6
!
083530508d9c intitial checkin
cg
parents:
diff changeset
     7
083530508d9c intitial checkin
cg
parents:
diff changeset
     8
135
098936234135 *** empty log message ***
cg
parents: 93
diff changeset
     9
!JavaUnresolvedConstant class methodsFor:'instance creation'!
1
083530508d9c intitial checkin
cg
parents:
diff changeset
    10
90
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    11
pool:aPool poolIndex:index
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    12
    ^ self new 
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    13
        pool:aPool poolIndex:index
1
083530508d9c intitial checkin
cg
parents:
diff changeset
    14
083530508d9c intitial checkin
cg
parents:
diff changeset
    15
083530508d9c intitial checkin
cg
parents:
diff changeset
    16
! !
083530508d9c intitial checkin
cg
parents:
diff changeset
    17
135
098936234135 *** empty log message ***
cg
parents: 93
diff changeset
    18
!JavaUnresolvedConstant class methodsFor:'queries'!
90
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    19
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    20
countUnresolved
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    21
    |u cnt|
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    22
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    23
    cnt := 0.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    24
    PatchLists do:[:patchList |
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    25
        u := patchList.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    26
        [u notNil] whileTrue:[
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    27
            cnt := cnt + 1.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    28
            u := u nextUnresolved
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    29
        ]
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    30
    ].
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    31
    ^ cnt
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    32
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    33
    "
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    34
     self countUnresolved 
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    35
    "
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    36
! !
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    37
135
098936234135 *** empty log message ***
cg
parents: 93
diff changeset
    38
!JavaUnresolvedConstant class methodsFor:'resolving'!
1
083530508d9c intitial checkin
cg
parents:
diff changeset
    39
90
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    40
flushPatchLists
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    41
    PatchLists := nil
93
2b1e50b70bb1 checkin from browser
cg
parents: 90
diff changeset
    42
!
90
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    43
399
94d37f2032a1 classloader fixes.
cg
parents: 230
diff changeset
    44
patchLists
94d37f2032a1 classloader fixes.
cg
parents: 230
diff changeset
    45
    "return a collection of patchInfos for unresolved names"
94d37f2032a1 classloader fixes.
cg
parents: 230
diff changeset
    46
94d37f2032a1 classloader fixes.
cg
parents: 230
diff changeset
    47
    ^ PatchLists ? #()
94d37f2032a1 classloader fixes.
cg
parents: 230
diff changeset
    48
94d37f2032a1 classloader fixes.
cg
parents: 230
diff changeset
    49
    "Created: / 20.10.1998 / 17:40:19 / cg"
94d37f2032a1 classloader fixes.
cg
parents: 230
diff changeset
    50
!
94d37f2032a1 classloader fixes.
cg
parents: 230
diff changeset
    51
90
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    52
resolveFor:aJavaClass
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    53
    "a JAVA class has been loaded - resolve what can be"
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    54
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    55
    |patchList unresolved nameSymbol|
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    56
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    57
"/ 'resolving: ' print. aJavaClass fullName printCR.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    58
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    59
    PatchLists isNil ifTrue:[^ self].
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    60
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    61
    nameSymbol := aJavaClass fullName asSymbol.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    62
    patchList := PatchLists at:nameSymbol ifAbsent:nil.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    63
    patchList notNil ifTrue:[
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    64
        PatchLists removeKey:nameSymbol.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    65
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    66
        [patchList notNil] whileTrue:[
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    67
            unresolved := patchList.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    68
            patchList := unresolved nextUnresolved.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    69
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    70
            unresolved prevUnresolved:nil.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    71
            unresolved nextUnresolved:nil.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    72
            unresolved preResolve.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    73
        ]
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    74
    ].
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    75
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    76
!
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    77
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    78
unresolvedClassNames
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    79
    "return a collection of unresolved class names"
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    80
230
3bad67347125 ignore builtIn-classes in patchlist
cg
parents: 206
diff changeset
    81
    |l|
3bad67347125 ignore builtIn-classes in patchlist
cg
parents: 206
diff changeset
    82
90
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    83
    PatchLists isNil ifTrue:[^ #()].
230
3bad67347125 ignore builtIn-classes in patchlist
cg
parents: 206
diff changeset
    84
3bad67347125 ignore builtIn-classes in patchlist
cg
parents: 206
diff changeset
    85
    "/ kludge - ignore those primitive classes ...
3bad67347125 ignore builtIn-classes in patchlist
cg
parents: 206
diff changeset
    86
    l := PatchLists keys 
3bad67347125 ignore builtIn-classes in patchlist
cg
parents: 206
diff changeset
    87
             select:[:clsName |
3bad67347125 ignore builtIn-classes in patchlist
cg
parents: 206
diff changeset
    88
                (clsName == #char
3bad67347125 ignore builtIn-classes in patchlist
cg
parents: 206
diff changeset
    89
                or:[clsName == #float
3bad67347125 ignore builtIn-classes in patchlist
cg
parents: 206
diff changeset
    90
                or:[clsName == #double
3bad67347125 ignore builtIn-classes in patchlist
cg
parents: 206
diff changeset
    91
                or:[clsName == #'unsigned short'
3bad67347125 ignore builtIn-classes in patchlist
cg
parents: 206
diff changeset
    92
                or:[clsName == #long
3bad67347125 ignore builtIn-classes in patchlist
cg
parents: 206
diff changeset
    93
                or:[clsName == #boolean]]]]]) not
3bad67347125 ignore builtIn-classes in patchlist
cg
parents: 206
diff changeset
    94
             ].
3bad67347125 ignore builtIn-classes in patchlist
cg
parents: 206
diff changeset
    95
    ^ l
90
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    96
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    97
    "
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    98
     self unresolvedClassNames 
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
    99
    "
230
3bad67347125 ignore builtIn-classes in patchlist
cg
parents: 206
diff changeset
   100
3bad67347125 ignore builtIn-classes in patchlist
cg
parents: 206
diff changeset
   101
    "Modified: 17.8.1997 / 20:06:46 / cg"
90
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   102
! !
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   103
1
083530508d9c intitial checkin
cg
parents:
diff changeset
   104
!JavaUnresolvedConstant methodsFor:'accessing'!
083530508d9c intitial checkin
cg
parents:
diff changeset
   105
90
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   106
constantPool
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   107
    ^ constantPool
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   108
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   109
    "Created: 15.4.1996 / 15:59:45 / cg"
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   110
!
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   111
168
90e39cb3fa04 *** empty log message ***
cg
parents: 135
diff changeset
   112
constantPool:aPool
90e39cb3fa04 *** empty log message ***
cg
parents: 135
diff changeset
   113
    constantPool := aPool
90e39cb3fa04 *** empty log message ***
cg
parents: 135
diff changeset
   114
90e39cb3fa04 *** empty log message ***
cg
parents: 135
diff changeset
   115
    "Created: 7.4.1997 / 16:13:02 / cg"
90e39cb3fa04 *** empty log message ***
cg
parents: 135
diff changeset
   116
!
90e39cb3fa04 *** empty log message ***
cg
parents: 135
diff changeset
   117
90
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   118
constantPoolIndex
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   119
    ^ constantPoolIndex
1
083530508d9c intitial checkin
cg
parents:
diff changeset
   120
083530508d9c intitial checkin
cg
parents:
diff changeset
   121
    "Created: 15.4.1996 / 15:59:45 / cg"
90
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   122
!
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   123
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   124
nextUnresolved
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   125
    ^ nextUnresolved
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   126
!
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   127
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   128
nextUnresolved:anUnresolvedConstant
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   129
    nextUnresolved := anUnresolvedConstant
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   130
!
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   131
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   132
pool:aPool poolIndex:i
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   133
    constantPool := aPool.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   134
    constantPoolIndex := i
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   135
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   136
    "Created: 15.4.1996 / 15:59:45 / cg"
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   137
!
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   138
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   139
prevUnresolved:anUnresolvedConstant
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   140
    prevUnresolved := anUnresolvedConstant
1
083530508d9c intitial checkin
cg
parents:
diff changeset
   141
! !
083530508d9c intitial checkin
cg
parents:
diff changeset
   142
83
2d61ef3579e4 *** empty log message ***
cg
parents: 1
diff changeset
   143
!JavaUnresolvedConstant methodsFor:'printing & storing'!
2d61ef3579e4 *** empty log message ***
cg
parents: 1
diff changeset
   144
2d61ef3579e4 *** empty log message ***
cg
parents: 1
diff changeset
   145
displayString
90
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   146
    ^ (self class name) , '( idx= ' , constantPoolIndex printString , ')'
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   147
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   148
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   149
! !
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   150
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   151
!JavaUnresolvedConstant methodsFor:'queries'!
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   152
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   153
isUnresolved
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   154
    ^ true
399
94d37f2032a1 classloader fixes.
cg
parents: 230
diff changeset
   155
!
94d37f2032a1 classloader fixes.
cg
parents: 230
diff changeset
   156
94d37f2032a1 classloader fixes.
cg
parents: 230
diff changeset
   157
isUnresolvedClass
94d37f2032a1 classloader fixes.
cg
parents: 230
diff changeset
   158
    ^ false
94d37f2032a1 classloader fixes.
cg
parents: 230
diff changeset
   159
94d37f2032a1 classloader fixes.
cg
parents: 230
diff changeset
   160
    "Created: / 20.10.1998 / 17:43:27 / cg"
94d37f2032a1 classloader fixes.
cg
parents: 230
diff changeset
   161
!
94d37f2032a1 classloader fixes.
cg
parents: 230
diff changeset
   162
94d37f2032a1 classloader fixes.
cg
parents: 230
diff changeset
   163
isUnresolvedMethod
94d37f2032a1 classloader fixes.
cg
parents: 230
diff changeset
   164
    ^ false
94d37f2032a1 classloader fixes.
cg
parents: 230
diff changeset
   165
94d37f2032a1 classloader fixes.
cg
parents: 230
diff changeset
   166
    "Created: / 20.10.1998 / 17:43:07 / cg"
90
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   167
! !
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   168
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   169
!JavaUnresolvedConstant methodsFor:'resolving'!
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   170
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   171
preResolve
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   172
    self subclassResponsibility.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   173
    ^ self
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   174
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   175
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   176
!
83
2d61ef3579e4 *** empty log message ***
cg
parents: 1
diff changeset
   177
90
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   178
rememberForResolveWith:aFullClassName
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   179
    |patchList nameSymbol|
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   180
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   181
    prevUnresolved notNil ifTrue:[^ self].
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   182
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   183
    PatchLists isNil ifTrue:[
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   184
        PatchLists := IdentityDictionary new.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   185
    ].
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   186
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   187
    nameSymbol := aFullClassName asSymbol.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   188
    patchList := PatchLists at:nameSymbol ifAbsent:nil.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   189
    patchList isNil ifTrue:[
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   190
"/        ('first patch for: ' , aFullClassName) printCR.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   191
    ] ifFalse:[
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   192
        patchList prevUnresolved:self.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   193
        nextUnresolved := patchList.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   194
    ].
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   195
    PatchLists at:nameSymbol put:self.
918e2740098c resolve rewritten
cg
parents: 83
diff changeset
   196
    prevUnresolved := #startOfList.
83
2d61ef3579e4 *** empty log message ***
cg
parents: 1
diff changeset
   197
2d61ef3579e4 *** empty log message ***
cg
parents: 1
diff changeset
   198
! !
2d61ef3579e4 *** empty log message ***
cg
parents: 1
diff changeset
   199
206
2200b9091b9e *** empty log message ***
cg
parents: 168
diff changeset
   200
!JavaUnresolvedConstant methodsFor:'special'!
2200b9091b9e *** empty log message ***
cg
parents: 168
diff changeset
   201
2200b9091b9e *** empty log message ***
cg
parents: 168
diff changeset
   202
updateClassRefsFrom:oldClass to:newClass
2200b9091b9e *** empty log message ***
cg
parents: 168
diff changeset
   203
2200b9091b9e *** empty log message ***
cg
parents: 168
diff changeset
   204
    "Created: 7.8.1997 / 18:21:19 / cg"
2200b9091b9e *** empty log message ***
cg
parents: 168
diff changeset
   205
! !
2200b9091b9e *** empty log message ***
cg
parents: 168
diff changeset
   206
135
098936234135 *** empty log message ***
cg
parents: 93
diff changeset
   207
!JavaUnresolvedConstant class methodsFor:'documentation'!
1
083530508d9c intitial checkin
cg
parents:
diff changeset
   208
083530508d9c intitial checkin
cg
parents:
diff changeset
   209
version
399
94d37f2032a1 classloader fixes.
cg
parents: 230
diff changeset
   210
    ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaUnresolvedConstant.st,v 1.9 1998/10/20 16:45:16 cg Exp $'
1
083530508d9c intitial checkin
cg
parents:
diff changeset
   211
! !