JavaUnresolvedMethodrefConstant.st
author Claus Gittinger <cg@exept.de>
Wed, 10 Dec 2003 11:06:45 +0100
changeset 2114 cbdc4c02a8e2
parent 2108 ca8c4e7db2e8
permissions -rw-r--r--
ExecutionErrorSignal -> ExecutionError
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
454
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
     1
"
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
     2
 COPYRIGHT (c) 1997 by eXept Software AG
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
     3
              All Rights Reserved
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
     4
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
     5
 This software is furnished under a license and may be used
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
     6
 only in accordance with the terms of that license and with the
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
     8
 be provided or otherwise made available to, or used by, any
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
     9
 other person.  No title to or ownership of the software is
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    10
 hereby transferred.
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    11
"
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    12
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    13
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    14
707
aa9b0bb5cafd comment added
cg
parents: 627
diff changeset
    15
"{ Package: 'stx:libjava' }"
aa9b0bb5cafd comment added
cg
parents: 627
diff changeset
    16
1
083530508d9c intitial checkin
cg
parents:
diff changeset
    17
JavaUnresolvedRefConstant subclass:#JavaUnresolvedMethodrefConstant
90
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
    18
	instanceVariableNames:'classIndex'
1
083530508d9c intitial checkin
cg
parents:
diff changeset
    19
	classVariableNames:''
083530508d9c intitial checkin
cg
parents:
diff changeset
    20
	poolDictionaries:''
2108
ca8c4e7db2e8 category change
Claus Gittinger <cg@exept.de>
parents: 2101
diff changeset
    21
	category:'Languages-Java-Reader-Support'
1
083530508d9c intitial checkin
cg
parents:
diff changeset
    22
!
083530508d9c intitial checkin
cg
parents:
diff changeset
    23
454
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    24
!JavaUnresolvedMethodrefConstant class methodsFor:'documentation'!
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    25
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    26
copyright
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    27
"
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    28
 COPYRIGHT (c) 1997 by eXept Software AG
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    29
              All Rights Reserved
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    30
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    31
 This software is furnished under a license and may be used
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    32
 only in accordance with the terms of that license and with the
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    33
 inclusion of the above copyright notice.   This software may not
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    34
 be provided or otherwise made available to, or used by, any
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    35
 other person.  No title to or ownership of the software is
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    36
 hereby transferred.
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    37
"
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    38
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    39
38f590639d65 *** empty log message ***
cg
parents: 399
diff changeset
    40
! !
1
083530508d9c intitial checkin
cg
parents:
diff changeset
    41
135
098936234135 *** empty log message ***
cg
parents: 90
diff changeset
    42
!JavaUnresolvedMethodrefConstant class methodsFor:'instance creation'!
90
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
    43
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
    44
pool:aPool poolIndex:idx classIndex:cIdx nameandTypeIndex:nmIdx 
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
    45
    ^ self new 
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
    46
        pool:aPool poolIndex:idx classIndex:cIdx nameandTypeIndex:nmIdx
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
    47
! !
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
    48
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
    49
!JavaUnresolvedMethodrefConstant methodsFor:'accessing'!
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
    50
163
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    51
argSignature
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    52
    |ref cls nameAndType|
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    53
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    54
    self isUnresolved ifFalse:[
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    55
        self halt
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    56
    ].
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    57
    ref := self preResolve.
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    58
    ref isUnresolved ifFalse:[
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    59
        ^ ref argSignature
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    60
    ].
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    61
    nameAndType := (constantPool at:nameandTypeIndex).
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    62
    nameAndType isUnresolved ifTrue:[
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    63
        nameAndType displayString printCR.
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    64
    ].
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    65
    ^ JavaMethod argSigArrayFromSignature:(nameAndType signature)
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    66
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    67
    "Modified: 24.3.1997 / 13:05:57 / cg"
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    68
!
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    69
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    70
javaClass
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    71
    |ref cls|
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    72
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    73
    self isUnresolved ifFalse:[
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    74
        self halt
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    75
    ].
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    76
    ref := self preResolve.
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    77
    ref isUnresolved ifFalse:[
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    78
        ^ ref javaClass
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    79
    ].
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    80
    cls := constantPool at:classIndex.
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    81
    ^ cls
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    82
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    83
    "Created: 24.3.1997 / 13:03:59 / cg"
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    84
!
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    85
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    86
method
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    87
    |ref cls nameAndType|
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    88
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    89
    self isUnresolved ifTrue:[
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    90
        ref := self preResolve.
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    91
        ref isUnresolved ifFalse:[
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    92
            ^ ref method
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    93
        ].
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    94
        (cls := constantPool at:classIndex) isUnresolved ifTrue:[
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    95
            cls displayString printCR.
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    96
        ].
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    97
        nameAndType := (constantPool at:nameandTypeIndex).
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    98
        nameAndType isUnresolved ifTrue:[
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
    99
            nameAndType displayString printCR.
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   100
        ].
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   101
    ].
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   102
('unresolved mthod: ' , self displayString) printCR.
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   103
    ^ self
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   104
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   105
    "Modified: 24.3.1997 / 13:02:56 / cg"
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   106
!
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   107
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   108
name
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   109
    |ref cls nameAndType|
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   110
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   111
    self isUnresolved ifFalse:[
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   112
        self halt
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   113
    ].
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   114
    ref := self preResolve.
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   115
    ref isUnresolved ifFalse:[
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   116
        ^ ref name
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   117
    ].
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   118
    nameAndType := (constantPool at:nameandTypeIndex).
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   119
    nameAndType isUnresolved ifTrue:[
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   120
        nameAndType displayString printCR.
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   121
    ].
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   122
    ^ nameAndType name
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   123
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   124
    "Modified: 24.3.1997 / 13:05:57 / cg"
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   125
    "Created: 24.3.1997 / 13:06:58 / cg"
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   126
!
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   127
90
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   128
pool:aPool poolIndex:idx classIndex:cIdx nameandTypeIndex:nmIdx
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   129
    constantPool := aPool.
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   130
    constantPoolIndex := idx.
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   131
    classIndex := cIdx.
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   132
    nameandTypeIndex := nmIdx
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   133
163
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   134
!
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   135
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   136
returnType
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   137
    |ref cls nameAndType|
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   138
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   139
    self isUnresolved ifFalse:[
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   140
        self halt
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   141
    ].
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   142
    ref := self preResolve.
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   143
    ref isUnresolved ifFalse:[
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   144
        ^ ref returnType
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   145
    ].
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   146
    nameAndType := (constantPool at:nameandTypeIndex).
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   147
    nameAndType isUnresolved ifTrue:[
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   148
        nameAndType displayString printCR.
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   149
    ].
255
2d8b3948a08a *** empty log message ***
cg
parents: 163
diff changeset
   150
    ^ JavaMethod returnTypeFromSignature:(nameAndType signature) in:nil.
163
43e2f021c562 *** empty log message ***
cg
parents: 135
diff changeset
   151
255
2d8b3948a08a *** empty log message ***
cg
parents: 163
diff changeset
   152
    "Created: / 24.3.1997 / 13:07:45 / cg"
2d8b3948a08a *** empty log message ***
cg
parents: 163
diff changeset
   153
    "Modified: / 8.1.1998 / 19:07:47 / cg"
627
3ef2f691563f checkin from browser
cg
parents: 625
diff changeset
   154
!
3ef2f691563f checkin from browser
cg
parents: 625
diff changeset
   155
3ef2f691563f checkin from browser
cg
parents: 625
diff changeset
   156
signature
3ef2f691563f checkin from browser
cg
parents: 625
diff changeset
   157
    ^ self name
3ef2f691563f checkin from browser
cg
parents: 625
diff changeset
   158
3ef2f691563f checkin from browser
cg
parents: 625
diff changeset
   159
    "Created: / 14.11.1999 / 15:52:39 / cg"
90
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   160
! !
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   161
399
94d37f2032a1 classloader fixes.
cg
parents: 264
diff changeset
   162
!JavaUnresolvedMethodrefConstant methodsFor:'queries'!
94d37f2032a1 classloader fixes.
cg
parents: 264
diff changeset
   163
625
b0d1764545b5 checkin from browser
cg
parents: 619
diff changeset
   164
isJavaClassRef
b0d1764545b5 checkin from browser
cg
parents: 619
diff changeset
   165
    ^ false
b0d1764545b5 checkin from browser
cg
parents: 619
diff changeset
   166
b0d1764545b5 checkin from browser
cg
parents: 619
diff changeset
   167
    "Created: / 9.11.1999 / 17:18:24 / cg"
b0d1764545b5 checkin from browser
cg
parents: 619
diff changeset
   168
!
b0d1764545b5 checkin from browser
cg
parents: 619
diff changeset
   169
619
b4868e432de3 added #isJavaMethodRef query
cg
parents: 596
diff changeset
   170
isJavaMethodRef
b4868e432de3 added #isJavaMethodRef query
cg
parents: 596
diff changeset
   171
    ^ true
b4868e432de3 added #isJavaMethodRef query
cg
parents: 596
diff changeset
   172
b4868e432de3 added #isJavaMethodRef query
cg
parents: 596
diff changeset
   173
    "Created: / 9.11.1999 / 15:39:59 / cg"
b4868e432de3 added #isJavaMethodRef query
cg
parents: 596
diff changeset
   174
!
b4868e432de3 added #isJavaMethodRef query
cg
parents: 596
diff changeset
   175
399
94d37f2032a1 classloader fixes.
cg
parents: 264
diff changeset
   176
isUnresolvedMethod
94d37f2032a1 classloader fixes.
cg
parents: 264
diff changeset
   177
    ^ true
94d37f2032a1 classloader fixes.
cg
parents: 264
diff changeset
   178
94d37f2032a1 classloader fixes.
cg
parents: 264
diff changeset
   179
    "Created: / 20.10.1998 / 17:43:19 / cg"
94d37f2032a1 classloader fixes.
cg
parents: 264
diff changeset
   180
! !
94d37f2032a1 classloader fixes.
cg
parents: 264
diff changeset
   181
1
083530508d9c intitial checkin
cg
parents:
diff changeset
   182
!JavaUnresolvedMethodrefConstant methodsFor:'resolving'!
083530508d9c intitial checkin
cg
parents:
diff changeset
   183
90
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   184
preResolve
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   185
    |nameAndType class ref|
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   186
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   187
    "/ first, resolve the nameAndType & signature ...
1
083530508d9c intitial checkin
cg
parents:
diff changeset
   188
90
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   189
    class := (constantPool at:classIndex).
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   190
    class isUnresolved ifTrue:[
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   191
        class := class preResolve.
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   192
    ].
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   193
    class isUnresolved ifFalse:[
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   194
        nameAndType := (constantPool at:nameandTypeIndex).
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   195
        nameAndType isUnresolved ifTrue:[
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   196
            nameAndType := nameAndType preResolve.
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   197
        ].
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   198
        nameAndType isUnresolved ifFalse:[
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   199
            "/ ok, got them
1
083530508d9c intitial checkin
cg
parents:
diff changeset
   200
90
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   201
            ref := JavaMethodref class:class nameandType:nameAndType.
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   202
            constantPool at:constantPoolIndex put:ref.
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   203
            ^ ref
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   204
        ]
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   205
    ].
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   206
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   207
    self rememberForResolveWith:(class fullName).
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   208
    ^ self
918e2740098c resolve rewritten
cg
parents: 13
diff changeset
   209
596
1649256b9b6d *** empty log message ***
cg
parents: 454
diff changeset
   210
!
1649256b9b6d *** empty log message ***
cg
parents: 454
diff changeset
   211
1649256b9b6d *** empty log message ***
cg
parents: 454
diff changeset
   212
resolveMethod
707
aa9b0bb5cafd comment added
cg
parents: 627
diff changeset
   213
    "this is possibly invoked by the VM, when an unresolved methodRef is encountered.a
aa9b0bb5cafd comment added
cg
parents: 627
diff changeset
   214
     It should load&resolve the methodRef, and return the actual method,
aa9b0bb5cafd comment added
cg
parents: 627
diff changeset
   215
     or else return nil (if the method cannot be resolved)."
aa9b0bb5cafd comment added
cg
parents: 627
diff changeset
   216
596
1649256b9b6d *** empty log message ***
cg
parents: 454
diff changeset
   217
    |nm sig mthd cls class|
1649256b9b6d *** empty log message ***
cg
parents: 454
diff changeset
   218
1649256b9b6d *** empty log message ***
cg
parents: 454
diff changeset
   219
    class := (constantPool at:classIndex).
1649256b9b6d *** empty log message ***
cg
parents: 454
diff changeset
   220
    class isUnresolved ifTrue:[
1649256b9b6d *** empty log message ***
cg
parents: 454
diff changeset
   221
        class := class preResolve.
1649256b9b6d *** empty log message ***
cg
parents: 454
diff changeset
   222
    ].
1649256b9b6d *** empty log message ***
cg
parents: 454
diff changeset
   223
    class isUnresolved ifTrue:[
1649256b9b6d *** empty log message ***
cg
parents: 454
diff changeset
   224
"/        self halt:'unresolved class: ' , class name.
1649256b9b6d *** empty log message ***
cg
parents: 454
diff changeset
   225
        JavaVM throwClassNotFoundException:class name.
1649256b9b6d *** empty log message ***
cg
parents: 454
diff changeset
   226
        ^ nil.
1649256b9b6d *** empty log message ***
cg
parents: 454
diff changeset
   227
    ].
707
aa9b0bb5cafd comment added
cg
parents: 627
diff changeset
   228
596
1649256b9b6d *** empty log message ***
cg
parents: 454
diff changeset
   229
self halt.
1649256b9b6d *** empty log message ***
cg
parents: 454
diff changeset
   230
    cls := class javaClass.
1649256b9b6d *** empty log message ***
cg
parents: 454
diff changeset
   231
    cls ~~ class ifTrue:[
1649256b9b6d *** empty log message ***
cg
parents: 454
diff changeset
   232
        class := cls.
1649256b9b6d *** empty log message ***
cg
parents: 454
diff changeset
   233
    ].
1649256b9b6d *** empty log message ***
cg
parents: 454
diff changeset
   234
1649256b9b6d *** empty log message ***
cg
parents: 454
diff changeset
   235
    (class isMemberOf:JavaUnresolvedClassConstant) ifTrue:[
1649256b9b6d *** empty log message ***
cg
parents: 454
diff changeset
   236
        cls := class resolve.
1649256b9b6d *** empty log message ***
cg
parents: 454
diff changeset
   237
        cls notNil ifTrue:[
1649256b9b6d *** empty log message ***
cg
parents: 454
diff changeset
   238
            class := cls
1649256b9b6d *** empty log message ***
cg
parents: 454
diff changeset
   239
        ]
1649256b9b6d *** empty log message ***
cg
parents: 454
diff changeset
   240
    ].
1649256b9b6d *** empty log message ***
cg
parents: 454
diff changeset
   241
    (class isMemberOf:JavaUnresolvedClassConstant) ifTrue:[
1649256b9b6d *** empty log message ***
cg
parents: 454
diff changeset
   242
        self halt:'unresolved class'.
1649256b9b6d *** empty log message ***
cg
parents: 454
diff changeset
   243
    ].
1649256b9b6d *** empty log message ***
cg
parents: 454
diff changeset
   244
    mthd := self preResolve.
1649256b9b6d *** empty log message ***
cg
parents: 454
diff changeset
   245
    mthd == self ifTrue:[
1649256b9b6d *** empty log message ***
cg
parents: 454
diff changeset
   246
        self halt:'unresolved method'.
1649256b9b6d *** empty log message ***
cg
parents: 454
diff changeset
   247
    ].
1649256b9b6d *** empty log message ***
cg
parents: 454
diff changeset
   248
1649256b9b6d *** empty log message ***
cg
parents: 454
diff changeset
   249
    ^ mthd
1
083530508d9c intitial checkin
cg
parents:
diff changeset
   250
! !
083530508d9c intitial checkin
cg
parents:
diff changeset
   251
135
098936234135 *** empty log message ***
cg
parents: 90
diff changeset
   252
!JavaUnresolvedMethodrefConstant class methodsFor:'documentation'!
1
083530508d9c intitial checkin
cg
parents:
diff changeset
   253
083530508d9c intitial checkin
cg
parents:
diff changeset
   254
version
2108
ca8c4e7db2e8 category change
Claus Gittinger <cg@exept.de>
parents: 2101
diff changeset
   255
    ^ '$Header: /cvs/stx/stx/libjava/Attic/JavaUnresolvedMethodrefConstant.st,v 1.16 2002-11-22 20:11:36 cg Exp $'
1
083530508d9c intitial checkin
cg
parents:
diff changeset
   256
! !