JavaMethod.st
author cg
Mon, 18 Aug 1997 18:29:58 +0000
changeset 237 4c9ca89313d4
parent 220 70b887df44a4
child 238 18c543cfe8ef
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2
91843ac44d2f intitial checkin
cg
parents:
diff changeset
     1
CompiledCode subclass:#JavaMethod
184
f65eb9c4ba6e checkin from browser
cg
parents: 175
diff changeset
     2
	instanceVariableNames:'numArgs numLocals returnType accessFlags name signature
f65eb9c4ba6e checkin from browser
cg
parents: 175
diff changeset
     3
		exceptionHandlerTable exceptionTable lineNumberTable
148
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
     4
		localVariableTable javaClass numStack isNOOPMethod'
169
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
     5
	classVariableNames:'SignatureTypeCodes ForceByteCodeDisplay'
2
91843ac44d2f intitial checkin
cg
parents:
diff changeset
     6
	poolDictionaries:''
91843ac44d2f intitial checkin
cg
parents:
diff changeset
     7
	category:'Java-Classes'
91843ac44d2f intitial checkin
cg
parents:
diff changeset
     8
!
91843ac44d2f intitial checkin
cg
parents:
diff changeset
     9
91843ac44d2f intitial checkin
cg
parents:
diff changeset
    10
129
f40775af59a5 checkin from browser
cg
parents: 127
diff changeset
    11
!JavaMethod class methodsFor:'initialization'!
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    12
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    13
initialize
173
10513c48882f checkin from browser
cg
parents: 169
diff changeset
    14
    self flags:(self flags bitOr:Behavior flagJavaMethod).
10513c48882f checkin from browser
cg
parents: 169
diff changeset
    15
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    16
    SignatureTypeCodes := IdentityDictionary new.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    17
    SignatureTypeCodes at:$B put:#byte.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    18
    SignatureTypeCodes at:$C put:#char.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    19
    SignatureTypeCodes at:$D put:#double.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    20
    SignatureTypeCodes at:$F put:#float.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    21
    SignatureTypeCodes at:$I put:#int.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    22
    SignatureTypeCodes at:$J put:#long.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    23
    SignatureTypeCodes at:$S put:#'unsigned short'.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    24
    SignatureTypeCodes at:$Z put:#boolean.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    25
    SignatureTypeCodes at:$L put:#object.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    26
    SignatureTypeCodes at:$[ put:#array.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    27
207
dfbd9b69a64e checkin from browser
cg
parents: 189
diff changeset
    28
    ForceByteCodeDisplay := false.
dfbd9b69a64e checkin from browser
cg
parents: 189
diff changeset
    29
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    30
    "
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    31
     JavaMethod initialize
209
9e4b45da1117 checkin from browser
cg
parents: 207
diff changeset
    32
     ForceByteCodeDisplay := true.
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    33
    "
173
10513c48882f checkin from browser
cg
parents: 169
diff changeset
    34
209
9e4b45da1117 checkin from browser
cg
parents: 207
diff changeset
    35
    "Modified: 12.8.1997 / 01:47:49 / cg"
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    36
! !
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    37
169
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
    38
!JavaMethod class methodsFor:'misc'!
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
    39
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
    40
forceByteCodeDisplay
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
    41
    ^ ForceByteCodeDisplay
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
    42
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
    43
    "Created: 7.4.1997 / 20:11:39 / cg"
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
    44
! !
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
    45
129
f40775af59a5 checkin from browser
cg
parents: 127
diff changeset
    46
!JavaMethod class methodsFor:'signature parsing'!
5
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
    47
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    48
argSigArrayFromSignature:aSignature
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    49
    "given a signature, return a specArray for the arguments"
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    50
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    51
    |s argSpec retvalSpec|
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    52
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    53
    s := aSignature readStream.
237
4c9ca89313d4 *** empty log message ***
cg
parents: 220
diff changeset
    54
    s next ~~ $( ifTrue:[self halt].
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    55
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    56
    ^ self argSigArrayFromStream:s.
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    57
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    58
    "
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    59
     JavaMethod argSigArrayFromSignature:'(LObject;)V'
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    60
     JavaMethod argSigArrayFromSignature:'(BB)S'      
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    61
     JavaMethod argSigArrayFromSignature:'(LObject;LObject;II)V'      
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    62
    "
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    63
!
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    64
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    65
argSigArrayFromStream:s
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    66
    "parse an argSpec, return an array of specs - see java doc"
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    67
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    68
    |argSpec spec|
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    69
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    70
    spec := #().
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    71
    [s atEnd or:[s peek == $)]] whileFalse:[
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    72
"/        s peek == Character space ifTrue:[
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    73
"/            s next
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    74
"/        ] ifFalse:[
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    75
            argSpec := self fieldTypeFromStream:s.
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    76
            spec := spec copyWith:argSpec.
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    77
"/        ]
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    78
    ].
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    79
    ^ spec
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    80
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    81
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    82
!
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    83
113
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
    84
argSpecFromSignature:aSignature withName:name
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
    85
    "given a signature, return a spec"
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
    86
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
    87
    |s argSpec retvalSpec|
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
    88
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
    89
    s := aSignature readStream.
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
    90
    s next ~~ $( ifTrue:[self halt. ^ name].
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
    91
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
    92
    argSpec := self argSpecFromStream:s.
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
    93
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
    94
    s next ~~ $) ifTrue:[self halt. ^ name].
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
    95
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
    96
    ^ name , ' (' , argSpec , ')'
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
    97
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
    98
    "
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
    99
     JavaMethod argSpecFromSignature:'(LObject;)V' withName:'foo' 
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
   100
     JavaMethod argSpecFromSignature:'(BB)S'       withName:'foo' 
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
   101
    "
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
   102
!
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
   103
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   104
argSpecFromStream:s
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   105
    "parse an argSpec - see java doc"
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   106
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   107
    |argSpec spec|
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   108
189
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   109
    ^ self argSpecFromStream:s in:nil.
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   110
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   111
    spec := ''.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   112
    [s atEnd or:[s peek == $)]] whileFalse:[
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   113
"/        s peek == Character space ifTrue:[
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   114
"/            s next
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   115
"/        ] ifFalse:[
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   116
            argSpec := self fieldTypeFromStream:s.
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   117
            spec size ~~ 0 ifTrue:[
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   118
                spec := spec , ' '
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   119
            ].
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   120
            spec := spec , argSpec.
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   121
"/        ]
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   122
    ].
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   123
    ^ spec
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   124
189
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   125
    "Modified: 1.8.1997 / 10:53:25 / cg"
5
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   126
!
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   127
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   128
argSpecFromStream:s in:aPackage
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   129
    "parse an argSpec - see java doc"
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   130
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   131
    |argSpec spec|
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   132
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   133
    spec := ''.
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   134
    [s atEnd or:[s peek == $)]] whileFalse:[
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   135
"/        s peek == Character space ifTrue:[
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   136
"/            s next
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   137
"/        ] ifFalse:[
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   138
            argSpec := self fieldTypeFromStream:s in:aPackage.
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   139
            spec size ~~ 0 ifTrue:[
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   140
                spec := spec , ' '
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   141
            ].
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   142
            spec := spec , argSpec.
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   143
"/        ]
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   144
    ].
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   145
    ^ spec
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   146
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   147
    "Created: 18.3.1997 / 11:06:44 / cg"
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   148
!
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   149
154
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   150
argSpecWithArgsFromStream:s in:aPackage
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   151
    "parse an argSpec - see java doc"
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   152
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   153
    |argSpec spec argNr|
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   154
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   155
    argNr := 1.
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   156
    spec := ''.
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   157
    [s atEnd or:[s peek == $)]] whileFalse:[
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   158
        argSpec := self fieldTypeFromStream:s in:aPackage.
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   159
        spec size ~~ 0 ifTrue:[
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   160
            spec := spec , ', '
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   161
        ].
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   162
        spec := spec , argSpec.
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   163
        spec := spec , ' arg' , argNr printString.
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   164
        argNr := argNr + 1.
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   165
    ].
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   166
    ^ spec
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   167
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   168
    "Created: 20.3.1997 / 12:45:40 / cg"
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   169
    "Modified: 20.3.1997 / 12:49:52 / cg"
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   170
!
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   171
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   172
fieldTypeFromStream:s
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   173
    "parse a fieldTypeSpec - see java doc"
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   174
10
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   175
    |typeChar typeSym spec elType size className|
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   176
189
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   177
    ^ self fieldTypeFromStream:s in:nil.
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   178
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   179
    typeChar := s next.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   180
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   181
    typeSym := SignatureTypeCodes at:typeChar ifAbsent:#unknown.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   182
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   183
    typeSym == #unknown ifTrue:[
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   184
        ^ typeSym
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   185
    ].
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   186
    typeSym == #object ifTrue:[
10
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   187
        className := s upTo:$;.
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   188
        "/ strip off default
113
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
   189
"/        (className startsWith:'java/lang/') ifTrue:[
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
   190
"/            ^ className copyFrom:11
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
   191
"/        ].
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
   192
        ^ className copy replaceAll:$/ by:$.
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   193
    ].
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   194
    typeSym == #array ifTrue:[
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   195
        s peek isDigit ifTrue:[
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   196
            size := Integer readFrom:s.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   197
            elType := self fieldTypeFromStream:s.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   198
            ^ elType , '[' , size printString , ']'
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   199
        ].
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   200
        elType := self fieldTypeFromStream:s.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   201
        ^ elType , '[]'
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   202
    ].
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   203
    ^ typeSym
189
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   204
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   205
    "Modified: 1.8.1997 / 10:52:34 / cg"
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   206
!
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   207
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   208
fieldTypeFromStream:s in:aPackage
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   209
    "parse a fieldTypeSpec - see java doc"
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   210
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   211
    |typeChar typeSym spec elType size className nm|
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   212
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   213
    typeChar := s next.
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   214
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   215
    typeSym := SignatureTypeCodes at:typeChar ifAbsent:#unknown.
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   216
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   217
    typeSym == #unknown ifTrue:[
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   218
        ^ typeSym
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   219
    ].
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   220
    typeSym == #object ifTrue:[
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   221
        className := s upTo:$;.
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   222
        "/ strip off default
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   223
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   224
        nm := className.
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   225
        aPackage notNil ifTrue:[
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   226
            (nm startsWith:aPackage) ifTrue:[
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   227
                nm := nm copyFrom:(aPackage size + 2).
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   228
            ].
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   229
        ].
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   230
        
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   231
        nm := nm copy replaceAll:$/ by:$..
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   232
        ^ nm
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   233
    ].
189
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   234
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   235
    typeSym == #array ifTrue:[
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   236
        s peek isDigit ifTrue:[
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   237
            size := Integer readFrom:s.
189
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   238
            elType := self fieldTypeFromStream:s in:aPackage.
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   239
            ^ elType , '[' , size printString , ']'
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   240
        ].
189
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   241
        elType := self fieldTypeFromStream:s in:aPackage.
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   242
        ^ elType , '[]'
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   243
    ].
189
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   244
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   245
    ^ typeSym
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   246
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   247
    "Created: 18.3.1997 / 11:07:56 / cg"
189
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   248
    "Modified: 1.8.1997 / 10:57:54 / cg"
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   249
!
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   250
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   251
numArgsFromSignature:aSignature
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   252
    "given a signature, return the number of args"
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   253
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   254
    |s argSpec|
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   255
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   256
    s := aSignature readStream.
237
4c9ca89313d4 *** empty log message ***
cg
parents: 220
diff changeset
   257
    s next ~~ $( ifTrue:[self halt].
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   258
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   259
    ^ self numArgsFromStream:s.
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   260
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   261
    "
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   262
     JavaMethod numArgsFromSignature:'(LObject;)V'
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   263
     JavaMethod numArgsFromSignature:'(BB)S'      
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   264
     JavaMethod numArgsFromSignature:'()V'      
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   265
    "
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   266
!
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   267
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   268
numArgsFromStream:s
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   269
    "parse an argSpec - see java doc"
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   270
55
5573344a887d checkin from browser
cg
parents: 50
diff changeset
   271
    |argSpec n t|
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   272
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   273
    n := 0.
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   274
    [s atEnd or:[s peek == $)]] whileFalse:[
55
5573344a887d checkin from browser
cg
parents: 50
diff changeset
   275
        t := self fieldTypeFromStream:s.
5573344a887d checkin from browser
cg
parents: 50
diff changeset
   276
        "/
5573344a887d checkin from browser
cg
parents: 50
diff changeset
   277
        "/ some args count as 2
5573344a887d checkin from browser
cg
parents: 50
diff changeset
   278
        "/
5573344a887d checkin from browser
cg
parents: 50
diff changeset
   279
        t == #long ifTrue:[
5573344a887d checkin from browser
cg
parents: 50
diff changeset
   280
            n := n + 2.
5573344a887d checkin from browser
cg
parents: 50
diff changeset
   281
        ] ifFalse:[
5573344a887d checkin from browser
cg
parents: 50
diff changeset
   282
            t == #double ifTrue:[
5573344a887d checkin from browser
cg
parents: 50
diff changeset
   283
                n := n + 2
5573344a887d checkin from browser
cg
parents: 50
diff changeset
   284
            ] ifFalse:[
5573344a887d checkin from browser
cg
parents: 50
diff changeset
   285
                n := n + 1.
5573344a887d checkin from browser
cg
parents: 50
diff changeset
   286
            ]
5573344a887d checkin from browser
cg
parents: 50
diff changeset
   287
        ]
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   288
    ].
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   289
    ^ n
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   290
!
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   291
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   292
retValSpecFromSignature:aSignature
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   293
    "given a signature, return a spec"
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   294
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   295
    |s argSpec retvalSpec|
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   296
189
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   297
    ^ self retValSpecFromSignature:aSignature in:nil.
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   298
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   299
    s := aSignature readStream.
237
4c9ca89313d4 *** empty log message ***
cg
parents: 220
diff changeset
   300
    s next ~~ $( ifTrue:[self halt].
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   301
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   302
    argSpec := self argSpecFromStream:s.
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   303
237
4c9ca89313d4 *** empty log message ***
cg
parents: 220
diff changeset
   304
    s next ~~ $) ifTrue:[self halt].
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   305
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   306
    retvalSpec := self retvalSpecFromStream:s.
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   307
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   308
    ^ retvalSpec 
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   309
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   310
    "
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   311
     JavaMethod retValSpecFromSignature:'(LObject;)V'
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   312
     JavaMethod retValSpecFromSignature:'(BB)S'      
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   313
    "
189
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   314
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   315
    "Modified: 1.8.1997 / 10:53:59 / cg"
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   316
!
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   317
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   318
retValSpecFromSignature:aSignature in:aPackage
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   319
    "given a signature, return a spec"
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   320
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   321
    |s argSpec retvalSpec|
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   322
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   323
    s := aSignature readStream.
237
4c9ca89313d4 *** empty log message ***
cg
parents: 220
diff changeset
   324
    s next ~~ $( ifTrue:[self halt].
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   325
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   326
    argSpec := self argSpecFromStream:s in:aPackage.
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   327
237
4c9ca89313d4 *** empty log message ***
cg
parents: 220
diff changeset
   328
    s next ~~ $) ifTrue:[self halt].
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   329
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   330
    retvalSpec := self retvalSpecFromStream:s in:aPackage.
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   331
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   332
    ^ retvalSpec 
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   333
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   334
    "
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   335
     JavaMethod retValSpecFromSignature:'(LObject;)V'
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   336
     JavaMethod retValSpecFromSignature:'(BB)S'      
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   337
    "
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   338
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   339
    "Created: 18.3.1997 / 11:11:50 / cg"
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   340
!
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   341
72
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   342
returnTypeFromSignature:aSignature
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   343
    "given a signature, return its type as a string"
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   344
80
f08d2cab0b55 *** empty log message ***
cg
parents: 75
diff changeset
   345
    |s c argSpec retvalSpec|
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   346
189
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   347
    ^ self returnTypeFromSignature:aSignature in:nil.
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   348
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   349
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   350
    s := aSignature readStream.
80
f08d2cab0b55 *** empty log message ***
cg
parents: 75
diff changeset
   351
    (c := s peek) ~~ $( ifTrue:[
f08d2cab0b55 *** empty log message ***
cg
parents: 75
diff changeset
   352
        c == $' ifTrue:[
f08d2cab0b55 *** empty log message ***
cg
parents: 75
diff changeset
   353
           [s peek ~= $'] whileTrue:[s next].
f08d2cab0b55 *** empty log message ***
cg
parents: 75
diff changeset
   354
           s next.
f08d2cab0b55 *** empty log message ***
cg
parents: 75
diff changeset
   355
           ^ (self retvalSpecFromStream:s)
f08d2cab0b55 *** empty log message ***
cg
parents: 75
diff changeset
   356
        ].
f08d2cab0b55 *** empty log message ***
cg
parents: 75
diff changeset
   357
        ^ (self retvalSpecFromStream:s)
f08d2cab0b55 *** empty log message ***
cg
parents: 75
diff changeset
   358
    ].
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   359
80
f08d2cab0b55 *** empty log message ***
cg
parents: 75
diff changeset
   360
    s next.
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   361
    self argSpecFromStream:s.
80
f08d2cab0b55 *** empty log message ***
cg
parents: 75
diff changeset
   362
    s next ~~ $) ifTrue:[self halt. ^ nil].
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   363
72
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   364
    ^ (self retvalSpecFromStream:s)
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   365
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   366
    "
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   367
     JavaMethod returnTypeFromSignature:'(LObject;)V' 
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   368
     JavaMethod returnTypeFromSignature:'(BB)S'       
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   369
     JavaMethod returnTypeFromSignature:'()J'       
80
f08d2cab0b55 *** empty log message ***
cg
parents: 75
diff changeset
   370
     JavaMethod returnTypeFromSignature:'''first''J'       
72
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   371
    "
189
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   372
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   373
    "Modified: 1.8.1997 / 10:54:48 / cg"
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   374
!
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   375
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   376
returnTypeFromSignature:aSignature in:aPackage
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   377
    "given a signature, return its type as a string"
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   378
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   379
    |s c argSpec retvalSpec|
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   380
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   381
    s := aSignature readStream.
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   382
    (c := s peek) ~~ $( ifTrue:[
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   383
        c == $' ifTrue:[
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   384
           [s peek ~= $'] whileTrue:[s next].
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   385
           s next.
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   386
           ^ (self retvalSpecFromStream:s in:aPackage)
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   387
        ].
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   388
        ^ (self retvalSpecFromStream:s in:aPackage)
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   389
    ].
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   390
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   391
    s next.
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   392
    self argSpecFromStream:s.
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   393
    s next ~~ $) ifTrue:[self halt. ^ nil].
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   394
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   395
    ^ (self retvalSpecFromStream:s in:aPackage)
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   396
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   397
    "
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   398
     JavaMethod returnTypeFromSignature:'(LObject;)V' 
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   399
     JavaMethod returnTypeFromSignature:'(BB)S'       
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   400
     JavaMethod returnTypeFromSignature:'()J'       
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   401
     JavaMethod returnTypeFromSignature:'''first''J'       
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   402
    "
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   403
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   404
    "Created: 1.8.1997 / 10:54:31 / cg"
72
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   405
!
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   406
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   407
returnsVoidFromSignature:aSignature
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   408
    "given a signature, return true if it returns void, false if not"
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   409
83
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   410
    ^ (self typeFromSignature:aSignature) = 'void'
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   411
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   412
    "
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   413
     JavaMethod returnsVoidFromSignature:'(LObject;)V' 
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   414
     JavaMethod returnsVoidFromSignature:'(BB)S'       
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   415
    "
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   416
!
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   417
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   418
retvalSpecFromStream:s
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   419
    "parse a retvalSpec - see java doc"
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   420
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   421
    |argSpec spec|
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   422
189
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   423
    ^ self retvalSpecFromStream:s in:nil.
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   424
72
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   425
    s atEnd ifTrue:[self halt. ^ #void].
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   426
    s peek == $V ifTrue:[^ #void].
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   427
    ^ self fieldTypeFromStream:s
10
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   428
189
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   429
    "Modified: 1.8.1997 / 10:52:59 / cg"
10
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   430
!
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   431
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   432
retvalSpecFromStream:s in:aPackage
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   433
    "parse a retvalSpec - see java doc"
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   434
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   435
    |argSpec spec|
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   436
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   437
    s atEnd ifTrue:[self halt. ^ #void].
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   438
    s peek == $V ifTrue:[^ #void].
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   439
    ^ self fieldTypeFromStream:s in:aPackage
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   440
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   441
    "Created: 18.3.1997 / 11:12:19 / cg"
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   442
!
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   443
189
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   444
specComponentsWithArgsFromSignature:aSignature withName:name in:aPackage
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   445
    "given a signature, return a spec"
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   446
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   447
    |s argSpec retvalSpec|
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   448
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   449
    s := aSignature readStream.
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   450
    s next ~~ $( ifTrue:[self halt. ^ name].
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   451
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   452
    argSpec := self argSpecWithArgsFromStream:s in:aPackage.
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   453
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   454
    s next ~~ $) ifTrue:[self halt. ^ name].
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   455
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   456
    retvalSpec := self retvalSpecFromStream:s in:aPackage.
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   457
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   458
    ^ Array with:retvalSpec with:name with:argSpec
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   459
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   460
    "
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   461
     JavaMethod specWithArgsFromSignature:'(LObject;)V' withName:'foo' in:nil    
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   462
     JavaMethod specComponentsWithArgsFromSignature:'(LObject;)V' withName:'foo' in:nil  
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   463
    "
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   464
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   465
    "Created: 18.3.1997 / 11:06:22 / cg"
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   466
    "Modified: 1.8.1997 / 11:03:50 / cg"
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   467
!
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   468
10
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   469
specFromSignature:aSignature withName:name
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   470
    "given a signature, return a spec"
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   471
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   472
    |s argSpec retvalSpec|
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   473
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   474
    s := aSignature readStream.
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   475
    s next ~~ $( ifTrue:[self halt. ^ name].
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   476
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   477
    argSpec := self argSpecFromStream:s.
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   478
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   479
    s next ~~ $) ifTrue:[self halt. ^ name].
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   480
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   481
    retvalSpec := self retvalSpecFromStream:s.
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   482
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   483
    ^ retvalSpec , ' ' , name , ' (' , argSpec , ')'
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   484
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   485
    "
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   486
     JavaMethod specFromSignature:'(LObject;)V' withName:'foo' 
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   487
     JavaMethod specFromSignature:'(BB)S'       withName:'foo' 
10
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   488
    "
83
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   489
!
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   490
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   491
specFromSignature:aSignature withName:name in:aPackage
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   492
    "given a signature, return a spec"
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   493
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   494
    |s argSpec retvalSpec|
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   495
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   496
    s := aSignature readStream.
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   497
    s next ~~ $( ifTrue:[self halt. ^ name].
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   498
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   499
    argSpec := self argSpecFromStream:s in:aPackage.
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   500
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   501
    s next ~~ $) ifTrue:[self halt. ^ name].
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   502
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   503
    retvalSpec := self retvalSpecFromStream:s in:aPackage.
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   504
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   505
    ^ retvalSpec , ' ' , name , ' (' , argSpec , ')'
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   506
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   507
    "
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   508
     JavaMethod specFromSignature:'(LObject;)V' withName:'foo' 
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   509
     JavaMethod specFromSignature:'(BB)S'       withName:'foo' 
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   510
    "
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   511
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   512
    "Created: 18.3.1997 / 11:06:22 / cg"
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   513
!
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   514
175
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   515
specTextFromSignature:aSignature withName:name
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   516
    "given a signature, return a spec as boldified text"
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   517
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   518
    |s argSpec retvalSpec|
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   519
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   520
    s := aSignature readStream.
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   521
    s next ~~ $( ifTrue:[self halt. ^ name].
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   522
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   523
    argSpec := self argSpecFromStream:s.
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   524
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   525
    s next ~~ $) ifTrue:[self halt. ^ name].
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   526
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   527
    retvalSpec := self retvalSpecFromStream:s.
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   528
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   529
    ^ retvalSpec , ' ' , (name asText allBold) , ' (' , argSpec , ')'
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   530
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   531
    "
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   532
     JavaMethod specTextFromSignature:'(LObject;)V' withName:'foo' 
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   533
     JavaMethod specTextFromSignature:'(BB)S'       withName:'foo' 
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   534
    "
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   535
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   536
    "Modified: 30.7.1997 / 14:40:12 / cg"
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   537
!
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   538
189
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   539
specTextWithArgsFromSignature:aSignature withName:name in:aPackage
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   540
    "given a signature, return a spec"
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   541
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   542
    |s argSpec retvalSpec|
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   543
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   544
    s := aSignature readStream.
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   545
    s next ~~ $( ifTrue:[self halt. ^ name].
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   546
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   547
    argSpec := self argSpecWithArgsFromStream:s in:aPackage.
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   548
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   549
    s next ~~ $) ifTrue:[self halt. ^ name].
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   550
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   551
    retvalSpec := self retvalSpecFromStream:s in:aPackage.
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   552
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   553
    ^ retvalSpec , ' ' , (name asText allBold) , ' (' , argSpec , ')'
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   554
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   555
    "
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   556
     JavaMethod specWithArgsFromSignature:'(LObject;)V' withName:'foo' in:nil 
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   557
     JavaMethod specWithArgsFromSignature:'(BB)S'       withName:'foo' in:nil  
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   558
    "
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   559
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   560
    "Modified: 20.3.1997 / 12:50:10 / cg"
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   561
    "Created: 1.8.1997 / 10:43:57 / cg"
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   562
!
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   563
154
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   564
specWithArgsFromSignature:aSignature withName:name in:aPackage
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   565
    "given a signature, return a spec"
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   566
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   567
    |s argSpec retvalSpec|
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   568
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   569
    s := aSignature readStream.
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   570
    s next ~~ $( ifTrue:[self halt. ^ name].
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   571
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   572
    argSpec := self argSpecWithArgsFromStream:s in:aPackage.
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   573
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   574
    s next ~~ $) ifTrue:[self halt. ^ name].
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   575
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   576
    retvalSpec := self retvalSpecFromStream:s in:aPackage.
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   577
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   578
    ^ retvalSpec , ' ' , name , ' (' , argSpec , ')'
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   579
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   580
    "
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   581
     JavaMethod specWithArgsFromSignature:'(LObject;)V' withName:'foo' in:nil 
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   582
     JavaMethod specWithArgsFromSignature:'(BB)S'       withName:'foo' in:nil  
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   583
    "
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   584
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   585
    "Created: 18.3.1997 / 11:06:22 / cg"
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   586
    "Modified: 20.3.1997 / 12:50:10 / cg"
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   587
!
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   588
83
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   589
typeFromSignature:aSignature
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   590
    "given a signature, return its type as a string"
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   591
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   592
    |s c argSpec retvalSpec|
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   593
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   594
    s := aSignature readStream.
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   595
    (c := s peek) ~~ $( ifTrue:[
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   596
        c == $' ifTrue:[
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   597
           s next.
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   598
           [s peek ~= $'] whileTrue:[s next].
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   599
           s next.
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   600
           ^ (self retvalSpecFromStream:s)
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   601
        ].
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   602
        ^ (self retvalSpecFromStream:s)
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   603
    ].
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   604
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   605
    s next.
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   606
    self argSpecFromStream:s.
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   607
    s next ~~ $) ifTrue:[self halt. ^ nil].
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   608
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   609
    ^ (self retvalSpecFromStream:s)
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   610
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   611
    "
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   612
     JavaMethod typeFromSignature:'(LObject;)V'  
189
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   613
     JavaMethod typeFromSignature:'(LObject;)Ljava/lang/Object'  
83
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   614
     JavaMethod typeFromSignature:'(BB)S'        
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   615
     JavaMethod typeFromSignature:'()J'          
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   616
     JavaMethod typeFromSignature:'J'          
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   617
     JavaMethod typeFromSignature:'''first''J'       
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   618
    "
189
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   619
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   620
    "Modified: 1.8.1997 / 10:49:31 / cg"
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   621
!
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   622
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   623
typeFromSignature:aSignature in:package
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   624
    "given a signature, return its type as a string"
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   625
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   626
    |s c argSpec retvalSpec|
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   627
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   628
    s := aSignature readStream.
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   629
    (c := s peek) ~~ $( ifTrue:[
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   630
        c == $' ifTrue:[
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   631
           s next.
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   632
           [s peek ~= $'] whileTrue:[s next].
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   633
           s next.
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   634
           ^ (self retvalSpecFromStream:s in:package)
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   635
        ].
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   636
        ^ (self retvalSpecFromStream:s in:package)
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   637
    ].
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   638
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   639
    s next.
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   640
    self argSpecFromStream:s.
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   641
    s next ~~ $) ifTrue:[self halt. ^ nil].
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   642
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   643
    ^ (self retvalSpecFromStream:s in:package)
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   644
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   645
    "
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   646
     JavaMethod typeFromSignature:'(LObject;)Ljava/lang/Object'               
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   647
     JavaMethod typeFromSignature:'(LObject;)Ljava/lang/Object' in:'java.lang'  
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   648
    "
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   649
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   650
    "Modified: 1.8.1997 / 10:49:31 / cg"
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   651
    "Created: 1.8.1997 / 10:50:38 / cg"
10
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   652
! !
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   653
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   654
!JavaMethod methodsFor:'accessing'!
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   655
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   656
argSignature
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   657
    ^ self class argSigArrayFromSignature:signature
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   658
!
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   659
10
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   660
constantPool
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   661
    ^ javaClass constantPool
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   662
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   663
    "Modified: 16.4.1996 / 12:36:27 / cg"
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   664
    "Created: 16.4.1996 / 15:28:50 / cg"
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   665
!
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   666
129
f40775af59a5 checkin from browser
cg
parents: 127
diff changeset
   667
containingClass
f40775af59a5 checkin from browser
cg
parents: 127
diff changeset
   668
    ^ javaClass
f40775af59a5 checkin from browser
cg
parents: 127
diff changeset
   669
f40775af59a5 checkin from browser
cg
parents: 127
diff changeset
   670
!
f40775af59a5 checkin from browser
cg
parents: 127
diff changeset
   671
169
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
   672
decompiledBytecode
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
   673
    |s|
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
   674
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
   675
    s := '' writeStream.
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
   676
    JavaDecompiler decompile:self to:s.
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
   677
    ^ s contents
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
   678
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
   679
    "Created: 7.4.1997 / 20:10:37 / cg"
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
   680
!
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
   681
75
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   682
decompiledSource
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   683
    |s|
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   684
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   685
    s := '' writeStream.
175
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   686
    self decompileSourceTo:s.
75
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   687
    ^ s contents
175
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   688
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   689
    "Modified: 30.7.1997 / 16:27:55 / cg"
75
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   690
!
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   691
135
098936234135 *** empty log message ***
cg
parents: 129
diff changeset
   692
exceptionHandlerTable
098936234135 *** empty log message ***
cg
parents: 129
diff changeset
   693
    ^ exceptionHandlerTable
098936234135 *** empty log message ***
cg
parents: 129
diff changeset
   694
098936234135 *** empty log message ***
cg
parents: 129
diff changeset
   695
    "Modified: 16.4.1996 / 12:49:06 / cg"
098936234135 *** empty log message ***
cg
parents: 129
diff changeset
   696
    "Created: 7.2.1997 / 20:04:20 / cg"
098936234135 *** empty log message ***
cg
parents: 129
diff changeset
   697
!
098936234135 *** empty log message ***
cg
parents: 129
diff changeset
   698
83
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   699
exceptionTable
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   700
    ^ exceptionTable
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   701
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   702
    "Created: 16.4.1996 / 12:34:04 / cg"
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   703
    "Modified: 16.4.1996 / 12:49:06 / cg"
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   704
!
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   705
90
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   706
hasLineNumberInformation
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   707
    ^ lineNumberTable notNil
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   708
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   709
    "Created: 16.4.1996 / 12:34:04 / cg"
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   710
    "Modified: 16.4.1996 / 12:49:06 / cg"
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   711
!
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   712
148
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
   713
isNOOPMethod:aBoolean
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
   714
    isNOOPMethod := aBoolean
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
   715
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
   716
    "Created: 18.3.1997 / 13:31:16 / cg"
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
   717
!
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
   718
10
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   719
javaByteCode
184
f65eb9c4ba6e checkin from browser
cg
parents: 175
diff changeset
   720
"/    ^ javaByteCode
f65eb9c4ba6e checkin from browser
cg
parents: 175
diff changeset
   721
    ^ byteCode
10
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   722
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   723
    "Created: 16.4.1996 / 14:55:44 / cg"
184
f65eb9c4ba6e checkin from browser
cg
parents: 175
diff changeset
   724
    "Modified: 1.8.1997 / 00:08:45 / cg"
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   725
!
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   726
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   727
javaClass
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   728
    ^ javaClass
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   729
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   730
    "Modified: 16.4.1996 / 12:36:27 / cg"
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   731
    "Created: 16.4.1996 / 14:55:44 / cg"
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   732
!
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   733
90
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   734
lineNumber
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   735
    ^ lineNumberTable at:2
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   736
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   737
    "Created: 16.4.1996 / 12:34:04 / cg"
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   738
    "Modified: 16.4.1996 / 12:49:06 / cg"
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   739
!
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   740
50
458467ce0e15 checkin from browser
cg
parents: 48
diff changeset
   741
lineNumberTable
458467ce0e15 checkin from browser
cg
parents: 48
diff changeset
   742
    ^ lineNumberTable
458467ce0e15 checkin from browser
cg
parents: 48
diff changeset
   743
458467ce0e15 checkin from browser
cg
parents: 48
diff changeset
   744
    "Created: 16.4.1996 / 12:34:04 / cg"
458467ce0e15 checkin from browser
cg
parents: 48
diff changeset
   745
    "Modified: 16.4.1996 / 12:49:06 / cg"
458467ce0e15 checkin from browser
cg
parents: 48
diff changeset
   746
!
458467ce0e15 checkin from browser
cg
parents: 48
diff changeset
   747
85
888c37bbe4bb checkin from browser
cg
parents: 83
diff changeset
   748
localVariableTable
888c37bbe4bb checkin from browser
cg
parents: 83
diff changeset
   749
    ^ localVariableTable
888c37bbe4bb checkin from browser
cg
parents: 83
diff changeset
   750
888c37bbe4bb checkin from browser
cg
parents: 83
diff changeset
   751
    "
888c37bbe4bb checkin from browser
cg
parents: 83
diff changeset
   752
     JavaMethod allInstancesDo:[:m| m localVariableTable notNil ifTrue:[self halt]]
888c37bbe4bb checkin from browser
cg
parents: 83
diff changeset
   753
    "
888c37bbe4bb checkin from browser
cg
parents: 83
diff changeset
   754
!
888c37bbe4bb checkin from browser
cg
parents: 83
diff changeset
   755
31
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   756
methodArgAndVarNames
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   757
    ^ ((1 to:self numArgs) collect:[:i | 'arg' , i printString])
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   758
      ,
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   759
      ((1 to:self numVars) collect:[:i | 'local' , i printString])
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   760
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   761
!
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   762
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   763
methodArgNames
102
de5ab089cf47 checkin from browser
cg
parents: 90
diff changeset
   764
    localVariableTable notNil ifTrue:[
de5ab089cf47 checkin from browser
cg
parents: 90
diff changeset
   765
        ^ (1 to:self numArgs) collect:
de5ab089cf47 checkin from browser
cg
parents: 90
diff changeset
   766
            [:argIndex | |slot name|
de5ab089cf47 checkin from browser
cg
parents: 90
diff changeset
   767
                "/ search for an entry with that index (slot),
de5ab089cf47 checkin from browser
cg
parents: 90
diff changeset
   768
                "/ which has is valid at PC 0
de5ab089cf47 checkin from browser
cg
parents: 90
diff changeset
   769
de5ab089cf47 checkin from browser
cg
parents: 90
diff changeset
   770
                self isStatic ifTrue:[
de5ab089cf47 checkin from browser
cg
parents: 90
diff changeset
   771
                    slot := argIndex
de5ab089cf47 checkin from browser
cg
parents: 90
diff changeset
   772
                ] ifFalse:[
de5ab089cf47 checkin from browser
cg
parents: 90
diff changeset
   773
                    slot := argIndex + 1
de5ab089cf47 checkin from browser
cg
parents: 90
diff changeset
   774
                ].
de5ab089cf47 checkin from browser
cg
parents: 90
diff changeset
   775
                name := localVariableTable nameForSlot:slot atPC:0.
de5ab089cf47 checkin from browser
cg
parents: 90
diff changeset
   776
                name isNil ifTrue:[
de5ab089cf47 checkin from browser
cg
parents: 90
diff changeset
   777
                    'arg' , argIndex printString
de5ab089cf47 checkin from browser
cg
parents: 90
diff changeset
   778
                ] ifFalse:[
de5ab089cf47 checkin from browser
cg
parents: 90
diff changeset
   779
                    name
de5ab089cf47 checkin from browser
cg
parents: 90
diff changeset
   780
                ].
de5ab089cf47 checkin from browser
cg
parents: 90
diff changeset
   781
            ]
de5ab089cf47 checkin from browser
cg
parents: 90
diff changeset
   782
    ].
31
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   783
    ^ (1 to:self numArgs) collect:[:i | 'arg' , i printString]
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   784
!
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   785
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   786
name
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   787
    ^ name
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   788
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   789
    "Created: 16.4.1996 / 11:34:22 / cg"
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   790
!
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   791
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   792
numArgs
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   793
    numArgs isNil ifTrue:[^ 0].
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   794
    ^ numArgs
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   795
!
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   796
118
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
   797
numLocals
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
   798
    numLocals isNil ifTrue:[^ 0].
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
   799
    ^ numLocals
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
   800
!
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
   801
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
   802
numStack
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
   803
    numStack isNil ifTrue:[^ 0].
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
   804
    ^ numStack
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
   805
!
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
   806
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   807
numVars
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   808
    numLocals isNil ifTrue:[^ 0].
118
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
   809
    numArgs isNil ifTrue:[^ numLocals].
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
   810
    ^ numLocals - numArgs
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   811
!
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   812
184
f65eb9c4ba6e checkin from browser
cg
parents: 175
diff changeset
   813
numberOfArgs:n
174
a98caa062c16 checkin from browser
cg
parents: 173
diff changeset
   814
    super numberOfArgs:n.
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   815
    numArgs := n
174
a98caa062c16 checkin from browser
cg
parents: 173
diff changeset
   816
a98caa062c16 checkin from browser
cg
parents: 173
diff changeset
   817
    "Modified: 30.7.1997 / 12:43:00 / cg"
184
f65eb9c4ba6e checkin from browser
cg
parents: 175
diff changeset
   818
    "Created: 1.8.1997 / 00:26:24 / cg"
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   819
!
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   820
175
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   821
previousVersion
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   822
    ^ nil
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   823
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   824
    "Created: 30.7.1997 / 15:56:18 / cg"
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   825
!
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   826
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   827
retValSignature
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   828
    ^ self class retValSpecFromSignature:signature
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   829
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   830
!
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   831
123
4a5d4ac95782 checkin from browser
cg
parents: 118
diff changeset
   832
returnType
4a5d4ac95782 checkin from browser
cg
parents: 118
diff changeset
   833
    ^ returnType
4a5d4ac95782 checkin from browser
cg
parents: 118
diff changeset
   834
!
4a5d4ac95782 checkin from browser
cg
parents: 118
diff changeset
   835
116
7d612d4450c0 *** empty log message ***
cg
parents: 113
diff changeset
   836
returnsDouble
7d612d4450c0 *** empty log message ***
cg
parents: 113
diff changeset
   837
    ^ returnType == #double
7d612d4450c0 *** empty log message ***
cg
parents: 113
diff changeset
   838
!
7d612d4450c0 *** empty log message ***
cg
parents: 113
diff changeset
   839
72
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   840
returnsLong
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   841
    ^ returnType == #long
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   842
!
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   843
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   844
returnsVoid
72
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   845
    ^ returnType == #void
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   846
!
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   847
5
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   848
setAccessFlags:flags
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   849
    accessFlags := flags.
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   850
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   851
    "Created: 16.4.1996 / 11:34:14 / cg"
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   852
!
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   853
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   854
setCode:codeBytes maxStack:max_stack maxLocals:max_locals u1:unknown1 u2:unknown2
184
f65eb9c4ba6e checkin from browser
cg
parents: 175
diff changeset
   855
"/    javaByteCode := codeBytes.
f65eb9c4ba6e checkin from browser
cg
parents: 175
diff changeset
   856
    byteCode := codeBytes.
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   857
    numStack := max_stack.
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   858
    numLocals := max_locals.
5
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   859
43
2c4ca2eb8d07 checkin from browser
cg
parents: 31
diff changeset
   860
"/    self displayString printNL.
2c4ca2eb8d07 checkin from browser
cg
parents: 31
diff changeset
   861
"/    '   nStack: ' print. numStack print. 
2c4ca2eb8d07 checkin from browser
cg
parents: 31
diff changeset
   862
"/    ' nLocal: ' print. numLocals print. 
2c4ca2eb8d07 checkin from browser
cg
parents: 31
diff changeset
   863
"/    ' u1: ' print. unknown1 print.
2c4ca2eb8d07 checkin from browser
cg
parents: 31
diff changeset
   864
"/    ' u2: ' print. unknown2 printNL.
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   865
184
f65eb9c4ba6e checkin from browser
cg
parents: 175
diff changeset
   866
    "Modified: 1.8.1997 / 00:08:32 / cg"
5
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   867
!
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   868
83
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   869
setExceptionHandlerTable:anArray
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   870
    exceptionHandlerTable := anArray.
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   871
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   872
    "Created: 16.4.1996 / 12:34:04 / cg"
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   873
!
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   874
5
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   875
setExceptionTable:anArray
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   876
    exceptionTable := anArray.
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   877
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   878
    "Created: 16.4.1996 / 12:34:04 / cg"
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   879
!
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   880
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   881
setJavaClass:aJavaClass
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   882
    javaClass := aJavaClass
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   883
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   884
    "Modified: 16.4.1996 / 12:36:27 / cg"
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   885
    "Created: 16.4.1996 / 15:28:15 / cg"
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   886
!
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   887
90
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   888
setLineNumberTable:anArrayOfPCtoLineAssociations
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   889
    "since this uses up lots of memory, compress it"
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   890
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   891
    |allBytes allWords idx|
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   892
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   893
    allBytes := allWords := true.
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   894
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   895
    anArrayOfPCtoLineAssociations do:[:assoc |
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   896
        assoc key > 255 ifTrue:[
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   897
            allBytes := false.
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   898
            assoc key > 16rFFFF ifTrue:[
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   899
                allWords := false.
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   900
            ].
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   901
        ].
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   902
        assoc value > 255 ifTrue:[
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   903
            allBytes := false.
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   904
            assoc value > 16rFFFF ifTrue:[
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   905
                allWords := false
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   906
            ].
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   907
        ].
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   908
    ].
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   909
    allBytes ifTrue:[
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   910
        lineNumberTable := ByteArray new:(anArrayOfPCtoLineAssociations size * 2).
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   911
    ] ifFalse:[
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   912
        allWords ifTrue:[
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   913
            lineNumberTable := WordArray new:(anArrayOfPCtoLineAssociations size * 2).
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   914
        ] ifFalse:[
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   915
            lineNumberTable := Array new:(anArrayOfPCtoLineAssociations size * 2).
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   916
        ]
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   917
    ].
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   918
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   919
    idx := 1.
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   920
    anArrayOfPCtoLineAssociations do:[:assoc |
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   921
        lineNumberTable at:idx   put:assoc key.
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   922
        lineNumberTable at:idx+1 put:assoc value.
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   923
        idx := idx + 2.
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   924
    ].
5
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   925
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   926
    "Created: 16.4.1996 / 12:34:04 / cg"
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   927
    "Modified: 16.4.1996 / 12:49:06 / cg"
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   928
!
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   929
50
458467ce0e15 checkin from browser
cg
parents: 48
diff changeset
   930
setLocalVariableTable:anArray
83
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   931
     localVariableTable := anArray.
50
458467ce0e15 checkin from browser
cg
parents: 48
diff changeset
   932
!
458467ce0e15 checkin from browser
cg
parents: 48
diff changeset
   933
5
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   934
setName:aString
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   935
    name := aString asSymbol.
5
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   936
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   937
    "Created: 16.4.1996 / 11:34:22 / cg"
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   938
!
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   939
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   940
setSignature:aString
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   941
    signature := aString asSymbol.
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   942
184
f65eb9c4ba6e checkin from browser
cg
parents: 175
diff changeset
   943
    self numberOfArgs:(self class numArgsFromSignature:aString).
83
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   944
    returnType := self class typeFromSignature:aString.
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   945
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   946
    "Created: 16.4.1996 / 11:34:29 / cg"
184
f65eb9c4ba6e checkin from browser
cg
parents: 175
diff changeset
   947
    "Modified: 1.8.1997 / 00:26:16 / cg"
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   948
!
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   949
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   950
signature
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   951
    ^ signature 
5
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   952
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   953
    "Created: 16.4.1996 / 11:34:29 / cg"
31
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   954
!
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   955
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   956
source
75
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   957
    |classSource|
31
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   958
220
70b887df44a4 checkin from browser
cg
parents: 209
diff changeset
   959
    self isNative ifTrue:[
70b887df44a4 checkin from browser
cg
parents: 209
diff changeset
   960
        ^ 'native method'
70b887df44a4 checkin from browser
cg
parents: 209
diff changeset
   961
    ].
70b887df44a4 checkin from browser
cg
parents: 209
diff changeset
   962
169
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
   963
    ForceByteCodeDisplay == true ifTrue:[
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
   964
        ^ self decompiledBytecode
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
   965
    ].
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
   966
75
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   967
    lineNumberTable notNil ifTrue:[
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   968
        classSource := javaClass source.
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   969
        classSource notNil ifTrue:[^ classSource].
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   970
    ].
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   971
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   972
    ^ self decompiledSource
169
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
   973
220
70b887df44a4 checkin from browser
cg
parents: 209
diff changeset
   974
    "Modified: 14.8.1997 / 04:34:15 / cg"
31
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   975
!
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   976
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   977
sourceFilename
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   978
    ^ javaClass sourceFile
175
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   979
!
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   980
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   981
sourceLineNumber
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   982
    ForceByteCodeDisplay == true ifTrue:[
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   983
        ^ 1
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   984
    ].
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   985
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   986
    lineNumberTable notNil ifTrue:[
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   987
        ^ lineNumberTable at:2
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   988
    ].
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   989
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   990
    ^ 1
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   991
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   992
    "Created: 30.7.1997 / 15:40:45 / cg"
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   993
    "Modified: 30.7.1997 / 15:46:12 / cg"
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   994
! !
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   995
18
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
   996
!JavaMethod methodsFor:'decompiling'!
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
   997
175
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   998
decompileSourceTo:aStream
155
2c5558dd2b29 checkin from browser
cg
parents: 154
diff changeset
   999
    self isNative ifFalse:[
2c5558dd2b29 checkin from browser
cg
parents: 154
diff changeset
  1000
        self isAbstract ifFalse:[
2c5558dd2b29 checkin from browser
cg
parents: 154
diff changeset
  1001
            aStream cr; cr.
2c5558dd2b29 checkin from browser
cg
parents: 154
diff changeset
  1002
            aStream nextPutAll:'decompiled source:'; cr; cr.
2c5558dd2b29 checkin from browser
cg
parents: 154
diff changeset
  1003
            SignalSet anySignal handle:[:ex |
2c5558dd2b29 checkin from browser
cg
parents: 154
diff changeset
  1004
                aStream nextPutAll:'error while decompiling:'.
2c5558dd2b29 checkin from browser
cg
parents: 154
diff changeset
  1005
                aStream cr; cr; spaces:4.
2c5558dd2b29 checkin from browser
cg
parents: 154
diff changeset
  1006
                aStream nextPutAll:ex errorString.
175
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1007
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1008
                JavaDecompiler decompile:self to:aStream.
155
2c5558dd2b29 checkin from browser
cg
parents: 154
diff changeset
  1009
                ex return
2c5558dd2b29 checkin from browser
cg
parents: 154
diff changeset
  1010
            ] do:[
2c5558dd2b29 checkin from browser
cg
parents: 154
diff changeset
  1011
                aStream nextPutAll:(JavaDeparser decompile:self).
2c5558dd2b29 checkin from browser
cg
parents: 154
diff changeset
  1012
            ].
2c5558dd2b29 checkin from browser
cg
parents: 154
diff changeset
  1013
        ].
2c5558dd2b29 checkin from browser
cg
parents: 154
diff changeset
  1014
    ].
18
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
  1015
    ^ true
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
  1016
175
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1017
    "Modified: 30.7.1997 / 16:19:28 / cg"
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1018
    "Created: 30.7.1997 / 16:28:09 / cg"
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1019
!
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1020
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1021
decompiler
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1022
    ^ JavaDecompiler
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1023
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1024
    "Created: 30.7.1997 / 16:36:48 / cg"
18
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
  1025
! !
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
  1026
118
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
  1027
!JavaMethod methodsFor:'methodref interchangability'!
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
  1028
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
  1029
method
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
  1030
    ^ self
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
  1031
! !
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
  1032
148
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
  1033
!JavaMethod methodsFor:'misc'!
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
  1034
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
  1035
checkForNOOPMethod
184
f65eb9c4ba6e checkin from browser
cg
parents: 175
diff changeset
  1036
    |code insn1 insn2 insn3 idx ref mthd|
149
d6fe26e9af47 *** empty log message ***
cg
parents: 148
diff changeset
  1037
d6fe26e9af47 *** empty log message ***
cg
parents: 148
diff changeset
  1038
    isNOOPMethod notNil ifTrue:[^ self].
d6fe26e9af47 *** empty log message ***
cg
parents: 148
diff changeset
  1039
184
f65eb9c4ba6e checkin from browser
cg
parents: 175
diff changeset
  1040
    code := self javaByteCode.
f65eb9c4ba6e checkin from browser
cg
parents: 175
diff changeset
  1041
    code notNil ifTrue:[
f65eb9c4ba6e checkin from browser
cg
parents: 175
diff changeset
  1042
        insn1 := code at:1.
149
d6fe26e9af47 *** empty log message ***
cg
parents: 148
diff changeset
  1043
        insn1 == 177 "RETURN" ifTrue:[
d6fe26e9af47 *** empty log message ***
cg
parents: 148
diff changeset
  1044
            'JAVA [info]: dummy static method: ' print. self displayString printCR.
148
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
  1045
            isNOOPMethod := true.
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
  1046
            ^ self
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
  1047
        ].
149
d6fe26e9af47 *** empty log message ***
cg
parents: 148
diff changeset
  1048
d6fe26e9af47 *** empty log message ***
cg
parents: 148
diff changeset
  1049
        insn1 == 42 "ALOAD_0" ifTrue:[
184
f65eb9c4ba6e checkin from browser
cg
parents: 175
diff changeset
  1050
            insn2 := code at:2.
149
d6fe26e9af47 *** empty log message ***
cg
parents: 148
diff changeset
  1051
            insn2 == 183 "INVOKENONVIRTUAL" ifTrue:[
184
f65eb9c4ba6e checkin from browser
cg
parents: 175
diff changeset
  1052
                insn3 := code at:5.
149
d6fe26e9af47 *** empty log message ***
cg
parents: 148
diff changeset
  1053
                insn3 == 177 "RETURN" ifTrue:[
184
f65eb9c4ba6e checkin from browser
cg
parents: 175
diff changeset
  1054
                    idx := code wordAt:3 MSB:true.
149
d6fe26e9af47 *** empty log message ***
cg
parents: 148
diff changeset
  1055
                    ref := javaClass constantPool at:idx.
d6fe26e9af47 *** empty log message ***
cg
parents: 148
diff changeset
  1056
                    mthd := ref method.
d6fe26e9af47 *** empty log message ***
cg
parents: 148
diff changeset
  1057
                    mthd isNOOPMethod ifTrue:[
d6fe26e9af47 *** empty log message ***
cg
parents: 148
diff changeset
  1058
                        'JAVA [info]: dummy method (calls dummy): ' print. self displayString printCR.
d6fe26e9af47 *** empty log message ***
cg
parents: 148
diff changeset
  1059
                        isNOOPMethod := true.
d6fe26e9af47 *** empty log message ***
cg
parents: 148
diff changeset
  1060
                    ] ifFalse:[
d6fe26e9af47 *** empty log message ***
cg
parents: 148
diff changeset
  1061
                        isNOOPMethod := false.
d6fe26e9af47 *** empty log message ***
cg
parents: 148
diff changeset
  1062
                    ].
d6fe26e9af47 *** empty log message ***
cg
parents: 148
diff changeset
  1063
                    ^ self
d6fe26e9af47 *** empty log message ***
cg
parents: 148
diff changeset
  1064
                ]
d6fe26e9af47 *** empty log message ***
cg
parents: 148
diff changeset
  1065
            ].
d6fe26e9af47 *** empty log message ***
cg
parents: 148
diff changeset
  1066
        ].
148
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
  1067
    ].
149
d6fe26e9af47 *** empty log message ***
cg
parents: 148
diff changeset
  1068
    isNOOPMethod := false.
148
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
  1069
    ^ self
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
  1070
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
  1071
    "Created: 18.3.1997 / 13:31:50 / cg"
184
f65eb9c4ba6e checkin from browser
cg
parents: 175
diff changeset
  1072
    "Modified: 1.8.1997 / 00:09:42 / cg"
148
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
  1073
! !
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
  1074
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
  1075
!JavaMethod methodsFor:'printing & storing'!
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
  1076
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
  1077
displayString
168
90e39cb3fa04 *** empty log message ***
cg
parents: 166
diff changeset
  1078
    javaClass isNil ifTrue:[
90e39cb3fa04 *** empty log message ***
cg
parents: 166
diff changeset
  1079
        ^ 'JavaMethod(???)'
90e39cb3fa04 *** empty log message ***
cg
parents: 166
diff changeset
  1080
    ].
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
  1081
    ^ 'JavaMethod(' , javaClass name , '::' , self signatureName , ')'
168
90e39cb3fa04 *** empty log message ***
cg
parents: 166
diff changeset
  1082
90e39cb3fa04 *** empty log message ***
cg
parents: 166
diff changeset
  1083
    "Modified: 7.4.1997 / 15:54:10 / cg"
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
  1084
!
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
  1085
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
  1086
printStringForBrowserWithSelector:selector
43
2c4ca2eb8d07 checkin from browser
cg
parents: 31
diff changeset
  1087
"/    self isStatic ifTrue:[
2c4ca2eb8d07 checkin from browser
cg
parents: 31
diff changeset
  1088
"/        ^ 'static ' , self signatureName
2c4ca2eb8d07 checkin from browser
cg
parents: 31
diff changeset
  1089
"/    ].
168
90e39cb3fa04 *** empty log message ***
cg
parents: 166
diff changeset
  1090
"/    self isBreakpointed ifTrue:[
90e39cb3fa04 *** empty log message ***
cg
parents: 166
diff changeset
  1091
"/        ^ (LabelAndIcon '!! ' , self signatureName
90e39cb3fa04 *** empty log message ***
cg
parents: 166
diff changeset
  1092
"/    ].
175
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1093
166
3bb2f7fbd489 checkin from browser
cg
parents: 164
diff changeset
  1094
    name = #'<init>' ifTrue:[
175
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1095
        ^ self class specTextFromSignature:signature withName:(javaClass name).
166
3bb2f7fbd489 checkin from browser
cg
parents: 164
diff changeset
  1096
    ].
175
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1097
    ^ self signatureNameText
166
3bb2f7fbd489 checkin from browser
cg
parents: 164
diff changeset
  1098
175
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1099
    "Modified: 30.7.1997 / 14:40:42 / cg"
10
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
  1100
!
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
  1101
118
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
  1102
shortDisplayString
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
  1103
    ^ javaClass name , '::' , self signatureNameWithoutReturnType
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
  1104
!
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
  1105
10
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
  1106
signatureName
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
  1107
    "return a string to be used when browsing"
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
  1108
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
  1109
    ^ self class specFromSignature:signature withName:name
113
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
  1110
!
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
  1111
164
724c443e6f79 *** empty log message ***
cg
parents: 156
diff changeset
  1112
signatureNameFor:name withArgsIn:aPackage
724c443e6f79 *** empty log message ***
cg
parents: 156
diff changeset
  1113
    "return a string to be used when decompiling"
724c443e6f79 *** empty log message ***
cg
parents: 156
diff changeset
  1114
724c443e6f79 *** empty log message ***
cg
parents: 156
diff changeset
  1115
    ^ self class specWithArgsFromSignature:signature withName:name in:aPackage
724c443e6f79 *** empty log message ***
cg
parents: 156
diff changeset
  1116
724c443e6f79 *** empty log message ***
cg
parents: 156
diff changeset
  1117
    "Created: 25.3.1997 / 18:49:45 / cg"
724c443e6f79 *** empty log message ***
cg
parents: 156
diff changeset
  1118
!
724c443e6f79 *** empty log message ***
cg
parents: 156
diff changeset
  1119
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
  1120
signatureNameIn:aPackage
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
  1121
    "return a string to be used when browsing"
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
  1122
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
  1123
    ^ self class specFromSignature:signature withName:name in:aPackage
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
  1124
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
  1125
    "Created: 18.3.1997 / 11:11:01 / cg"
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
  1126
!
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
  1127
175
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1128
signatureNameText
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1129
    "return a text to be used when browsing"
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1130
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1131
    ^ self class specTextFromSignature:signature withName:name
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1132
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1133
    "Created: 30.7.1997 / 14:40:29 / cg"
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1134
!
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1135
189
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
  1136
signatureNameTextFor:name withArgsIn:aPackage
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
  1137
    "return a text to be used when decompiling"
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
  1138
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
  1139
    ^ self class specTextWithArgsFromSignature:signature withName:name in:aPackage
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
  1140
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
  1141
    "Created: 25.3.1997 / 18:49:45 / cg"
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
  1142
    "Modified: 1.8.1997 / 10:44:28 / cg"
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
  1143
!
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
  1144
154
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  1145
signatureNameWithArgsIn:aPackage
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  1146
    "return a string to be used when browsing"
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  1147
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  1148
    ^ self class specWithArgsFromSignature:signature withName:name in:aPackage
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  1149
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  1150
    "Created: 20.3.1997 / 12:44:17 / cg"
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  1151
!
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  1152
113
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
  1153
signatureNameWithoutReturnType
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
  1154
    "return a string to be used when browsing"
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
  1155
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
  1156
    ^ self class argSpecFromSignature:signature withName:name
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
  1157
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
  1158
! !
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
  1159
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
  1160
!JavaMethod methodsFor:'queries'!
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
  1161
111
23243f9273fa *** empty log message ***
cg
parents: 102
diff changeset
  1162
handlerFor:anException at:pc
23243f9273fa *** empty log message ***
cg
parents: 102
diff changeset
  1163
    exceptionHandlerTable isNil ifTrue:[^ nil].
83
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
  1164
    exceptionHandlerTable do:[:entry |
48
1e12f315ed97 checkin from browser
cg
parents: 46
diff changeset
  1165
        |hpc|
1e12f315ed97 checkin from browser
cg
parents: 46
diff changeset
  1166
1e12f315ed97 checkin from browser
cg
parents: 46
diff changeset
  1167
        hpc := entry handlerPCFor:anException at:pc in:self.
111
23243f9273fa *** empty log message ***
cg
parents: 102
diff changeset
  1168
        hpc notNil ifTrue:[^ hpc].
48
1e12f315ed97 checkin from browser
cg
parents: 46
diff changeset
  1169
    ].
1e12f315ed97 checkin from browser
cg
parents: 46
diff changeset
  1170
111
23243f9273fa *** empty log message ***
cg
parents: 102
diff changeset
  1171
    ^ nil
31
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
  1172
!
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
  1173
127
96f1bf74011f *** empty log message ***
cg
parents: 123
diff changeset
  1174
hasResource
96f1bf74011f *** empty log message ***
cg
parents: 123
diff changeset
  1175
    ^ false
96f1bf74011f *** empty log message ***
cg
parents: 123
diff changeset
  1176
!
96f1bf74011f *** empty log message ***
cg
parents: 123
diff changeset
  1177
19
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  1178
isAbstract
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  1179
    ^ (accessFlags bitAnd:16r0400) ~~ 0
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  1180
!
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  1181
80
f08d2cab0b55 *** empty log message ***
cg
parents: 75
diff changeset
  1182
isBreakpointed
f08d2cab0b55 *** empty log message ***
cg
parents: 75
diff changeset
  1183
    ^ false
f08d2cab0b55 *** empty log message ***
cg
parents: 75
diff changeset
  1184
!
f08d2cab0b55 *** empty log message ***
cg
parents: 75
diff changeset
  1185
19
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  1186
isFinal
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  1187
    ^ (accessFlags bitAnd:16r0010) ~~ 0
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  1188
!
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  1189
175
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1190
isIgnored
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1191
    "not really a java attribute;
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1192
     added to allow browsing"
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1193
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1194
    ^ false.
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1195
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1196
    "Created: 30.7.1997 / 15:34:33 / cg"
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1197
!
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1198
148
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
  1199
isNOOPMethod
149
d6fe26e9af47 *** empty log message ***
cg
parents: 148
diff changeset
  1200
    isNOOPMethod isNil ifTrue:[
d6fe26e9af47 *** empty log message ***
cg
parents: 148
diff changeset
  1201
        self checkForNOOPMethod
d6fe26e9af47 *** empty log message ***
cg
parents: 148
diff changeset
  1202
    ].
d6fe26e9af47 *** empty log message ***
cg
parents: 148
diff changeset
  1203
    ^ isNOOPMethod
148
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
  1204
149
d6fe26e9af47 *** empty log message ***
cg
parents: 148
diff changeset
  1205
    "Modified: 18.3.1997 / 18:04:02 / cg"
148
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
  1206
!
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
  1207
19
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  1208
isNative
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  1209
    ^ (accessFlags bitAnd:16r0100) ~~ 0
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  1210
!
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  1211
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  1212
isPrivate
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  1213
    ^ (accessFlags bitAnd:16r0002) ~~ 0
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  1214
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  1215
!
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  1216
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  1217
isProtected
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  1218
    ^ (accessFlags bitAnd:16r0004) ~~ 0
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  1219
!
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  1220
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  1221
isPublic
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  1222
    ^ (accessFlags bitAnd:16r0001) ~~ 0
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  1223
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  1224
!
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  1225
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  1226
isStatic
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  1227
    ^ (accessFlags bitAnd:16r0008) ~~ 0
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  1228
!
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  1229
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  1230
isSynchronized
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  1231
    ^ (accessFlags bitAnd:16r0020) ~~ 0
18
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
  1232
!
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
  1233
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
  1234
isUnloaded
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
  1235
    ^ false
18
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
  1236
!
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
  1237
31
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
  1238
lineNumberForPC:pc
75
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
  1239
    |last num text classSource|
31
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
  1240
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
  1241
    num := nil.
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
  1242
207
dfbd9b69a64e checkin from browser
cg
parents: 189
diff changeset
  1243
    ForceByteCodeDisplay == true ifFalse:[
169
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
  1244
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
  1245
        lineNumberTable notNil ifTrue:[
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
  1246
            classSource := javaClass source.
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
  1247
            classSource notNil ifTrue:[
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
  1248
                lineNumberTable pairWiseDo:[:lPc :lNr |
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
  1249
                    lPc >= pc ifTrue:[
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
  1250
                        "/ lPc == pc ifTrue:[^ lNr].
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
  1251
                        last isNil ifTrue:[^ lNr].
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
  1252
                        ^ last.
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
  1253
                    ].
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
  1254
                    last := lNr.
75
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
  1255
                ].
169
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
  1256
                last notNil ifTrue:[        
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
  1257
                    ^ last
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
  1258
                ].
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
  1259
                ^ lineNumberTable at:2
75
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
  1260
            ].
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
  1261
        ].
46
db9b84631d43 checkin from browser
cg
parents: 43
diff changeset
  1262
    ].
31
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
  1263
46
db9b84631d43 checkin from browser
cg
parents: 43
diff changeset
  1264
    "/ decompile and look which line the pc falls into
209
9e4b45da1117 checkin from browser
cg
parents: 207
diff changeset
  1265
9e4b45da1117 checkin from browser
cg
parents: 207
diff changeset
  1266
    ForceByteCodeDisplay == true ifTrue:[
9e4b45da1117 checkin from browser
cg
parents: 207
diff changeset
  1267
        text := self decompiledBytecode asCollectionOfLines.
9e4b45da1117 checkin from browser
cg
parents: 207
diff changeset
  1268
    ] ifFalse:[
9e4b45da1117 checkin from browser
cg
parents: 207
diff changeset
  1269
        text := self decompiledSource asCollectionOfLines.
9e4b45da1117 checkin from browser
cg
parents: 207
diff changeset
  1270
    ].
31
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
  1271
46
db9b84631d43 checkin from browser
cg
parents: 43
diff changeset
  1272
    text keysAndValuesDo:[:lineNr :line |
db9b84631d43 checkin from browser
cg
parents: 43
diff changeset
  1273
        |nr|
db9b84631d43 checkin from browser
cg
parents: 43
diff changeset
  1274
83
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
  1275
        (line startsWith:'    ') ifFalse:[
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
  1276
            nr := Integer readFrom:line onError:0.
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
  1277
            nr >= pc ifTrue:[
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
  1278
                ^ lineNr
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
  1279
            ]
46
db9b84631d43 checkin from browser
cg
parents: 43
diff changeset
  1280
        ]
31
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
  1281
    ].
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
  1282
    ^ num
141
0baa4706b898 checkin from browser
cg
parents: 135
diff changeset
  1283
209
9e4b45da1117 checkin from browser
cg
parents: 207
diff changeset
  1284
    "Modified: 12.8.1997 / 01:55:24 / cg"
31
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
  1285
!
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
  1286
156
fee47d32724d *** empty log message ***
cg
parents: 155
diff changeset
  1287
package
fee47d32724d *** empty log message ***
cg
parents: 155
diff changeset
  1288
    ^ 'none'
fee47d32724d *** empty log message ***
cg
parents: 155
diff changeset
  1289
fee47d32724d *** empty log message ***
cg
parents: 155
diff changeset
  1290
    "Created: 5.2.1997 / 11:31:26 / cg"
fee47d32724d *** empty log message ***
cg
parents: 155
diff changeset
  1291
!
fee47d32724d *** empty log message ***
cg
parents: 155
diff changeset
  1292
18
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
  1293
who
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
  1294
    "return the class and selector of where I am defined in."
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
  1295
64
2e4b425dc40c changes for new methodDict
cg
parents: 55
diff changeset
  1296
    |sel|
18
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
  1297
64
2e4b425dc40c changes for new methodDict
cg
parents: 55
diff changeset
  1298
    sel := javaClass methodDictionary keyAtValue:self ifAbsent:nil.
2e4b425dc40c changes for new methodDict
cg
parents: 55
diff changeset
  1299
    sel isNil ifTrue:[^ nil].
129
f40775af59a5 checkin from browser
cg
parents: 127
diff changeset
  1300
    ^ Method::MethodWhoInfo class:javaClass selector:sel.
5
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
  1301
! !
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
  1302
154
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  1303
!JavaMethod methodsFor:'signature parsing'!
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  1304
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  1305
specWithArgsFromSignature:aSignature withName:name in:aPackage
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  1306
    "given a signature, return a spec with args"
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  1307
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  1308
    |s argSpec retvalSpec|
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  1309
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  1310
    s := aSignature readStream.
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  1311
    s next ~~ $( ifTrue:[self halt. ^ name].
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  1312
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  1313
    argSpec := self argSpecWithArgsFromStream:s in:aPackage.
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  1314
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  1315
    s next ~~ $) ifTrue:[self halt. ^ name].
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  1316
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  1317
    retvalSpec := self retvalSpecFromStream:s in:aPackage.
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  1318
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  1319
    ^ retvalSpec , ' ' , name , ' (' , argSpec , ')'
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  1320
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  1321
    "
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  1322
     JavaMethod specFromSignature:'(LObject;)V' withName:'foo' 
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  1323
     JavaMethod specFromSignature:'(BB)S'       withName:'foo' 
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  1324
    "
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  1325
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  1326
    "Created: 20.3.1997 / 12:44:36 / cg"
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  1327
! !
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  1328
129
f40775af59a5 checkin from browser
cg
parents: 127
diff changeset
  1329
!JavaMethod class methodsFor:'documentation'!
2
91843ac44d2f intitial checkin
cg
parents:
diff changeset
  1330
91843ac44d2f intitial checkin
cg
parents:
diff changeset
  1331
version
237
4c9ca89313d4 *** empty log message ***
cg
parents: 220
diff changeset
  1332
    ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaMethod.st,v 1.51 1997/08/18 18:29:58 cg Exp $'
2
91843ac44d2f intitial checkin
cg
parents:
diff changeset
  1333
! !
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
  1334
JavaMethod initialize!