JavaMethod.st
author cg
Tue, 18 Mar 1997 16:55:02 +0000
changeset 148 db560ebab8b5
parent 143 43a48853d86f
child 149 d6fe26e9af47
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
72
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
     2
	instanceVariableNames:'javaByteCode numArgs numLocals returnType accessFlags name
83
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
     3
		signature exceptionHandlerTable exceptionTable lineNumberTable
148
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
     4
		localVariableTable javaClass numStack isNOOPMethod'
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
     5
	classVariableNames:'SignatureTypeCodes'
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
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    14
    SignatureTypeCodes := IdentityDictionary new.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    15
    SignatureTypeCodes at:$B put:#byte.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    16
    SignatureTypeCodes at:$C put:#char.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    17
    SignatureTypeCodes at:$D put:#double.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    18
    SignatureTypeCodes at:$F put:#float.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    19
    SignatureTypeCodes at:$I put:#int.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    20
    SignatureTypeCodes at:$J put:#long.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    21
    SignatureTypeCodes at:$S put:#'unsigned short'.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    22
    SignatureTypeCodes at:$Z put:#boolean.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    23
    SignatureTypeCodes at:$L put:#object.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    24
    SignatureTypeCodes at:$[ put:#array.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    25
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    26
    "
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    27
     JavaMethod initialize
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    28
    "
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    29
! !
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    30
129
f40775af59a5 checkin from browser
cg
parents: 127
diff changeset
    31
!JavaMethod class methodsFor:'signature parsing'!
5
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
    32
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    33
argSigArrayFromSignature:aSignature
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    34
    "given a signature, return a specArray for the arguments"
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    35
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    36
    |s argSpec retvalSpec|
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    37
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    38
    s := aSignature readStream.
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    39
    s next ~~ $( ifTrue:[self halt. ^ name].
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    40
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    41
    ^ self argSigArrayFromStream:s.
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    42
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    43
    "
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    44
     JavaMethod argSigArrayFromSignature:'(LObject;)V'
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    45
     JavaMethod argSigArrayFromSignature:'(BB)S'      
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    46
     JavaMethod argSigArrayFromSignature:'(LObject;LObject;II)V'      
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    47
    "
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    48
!
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    49
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    50
argSigArrayFromStream:s
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    51
    "parse an argSpec, return an array of specs - see java doc"
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    52
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    53
    |argSpec spec|
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    54
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    55
    spec := #().
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    56
    [s atEnd or:[s peek == $)]] whileFalse:[
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    57
"/        s peek == Character space ifTrue:[
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    58
"/            s next
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    59
"/        ] ifFalse:[
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    60
            argSpec := self fieldTypeFromStream:s.
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    61
            spec := spec copyWith:argSpec.
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
    ^ spec
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    65
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    66
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    67
!
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
    68
113
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
    69
argSpecFromSignature:aSignature withName:name
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
    70
    "given a signature, return a spec"
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
    71
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
    72
    |s argSpec retvalSpec|
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
    73
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
    74
    s := aSignature readStream.
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
    75
    s next ~~ $( ifTrue:[self halt. ^ name].
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
    76
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
    77
    argSpec := self argSpecFromStream:s.
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
    78
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
    79
    s next ~~ $) ifTrue:[self halt. ^ name].
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
    80
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
    81
    ^ name , ' (' , argSpec , ')'
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
    82
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
    83
    "
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
    84
     JavaMethod argSpecFromSignature:'(LObject;)V' withName:'foo' 
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
    85
     JavaMethod argSpecFromSignature:'(BB)S'       withName:'foo' 
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
    86
    "
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
    87
!
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
    88
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    89
argSpecFromStream:s
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    90
    "parse an argSpec - see java doc"
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    91
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    92
    |argSpec spec|
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    93
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    94
    spec := ''.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    95
    [s atEnd or:[s peek == $)]] whileFalse:[
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
    96
"/        s peek == Character space ifTrue:[
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
    97
"/            s next
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
    98
"/        ] ifFalse:[
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
    99
            argSpec := self fieldTypeFromStream:s.
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   100
            spec size ~~ 0 ifTrue:[
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   101
                spec := spec , ' '
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   102
            ].
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   103
            spec := spec , argSpec.
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   104
"/        ]
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   105
    ].
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   106
    ^ spec
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   107
5
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   108
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   109
!
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   110
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   111
argSpecFromStream:s in:aPackage
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   112
    "parse an argSpec - see java doc"
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   113
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   114
    |argSpec spec|
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   115
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   116
    spec := ''.
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   117
    [s atEnd or:[s peek == $)]] whileFalse:[
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   118
"/        s peek == Character space ifTrue:[
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   119
"/            s next
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   120
"/        ] ifFalse:[
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   121
            argSpec := self fieldTypeFromStream:s in:aPackage.
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   122
            spec size ~~ 0 ifTrue:[
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   123
                spec := spec , ' '
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   124
            ].
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   125
            spec := spec , argSpec.
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   126
"/        ]
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   127
    ].
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   128
    ^ spec
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   129
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   130
    "Created: 18.3.1997 / 11:06:44 / cg"
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   131
!
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   132
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   133
fieldTypeFromStream:s
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   134
    "parse a fieldTypeSpec - see java doc"
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   135
10
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   136
    |typeChar typeSym spec elType size className|
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   137
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   138
    typeChar := s next.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   139
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   140
    typeSym := SignatureTypeCodes at:typeChar ifAbsent:#unknown.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   141
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   142
    typeSym == #unknown ifTrue:[
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   143
        ^ typeSym
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   144
    ].
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   145
    typeSym == #object ifTrue:[
10
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   146
        className := s upTo:$;.
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   147
        "/ strip off default
113
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
   148
"/        (className startsWith:'java/lang/') ifTrue:[
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
   149
"/            ^ className copyFrom:11
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
   150
"/        ].
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
   151
        ^ className copy replaceAll:$/ by:$.
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   152
    ].
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   153
    typeSym == #array ifTrue:[
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   154
        s peek isDigit ifTrue:[
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   155
            size := Integer readFrom:s.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   156
            elType := self fieldTypeFromStream:s.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   157
            ^ elType , '[' , size printString , ']'
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   158
        ].
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   159
        elType := self fieldTypeFromStream:s.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   160
        ^ elType , '[]'
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   161
    ].
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   162
    ^ typeSym
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   163
!
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   164
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   165
fieldTypeFromStream:s in:aPackage
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   166
    "parse a fieldTypeSpec - see java doc"
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   167
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   168
    |typeChar typeSym spec elType size className nm|
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   169
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   170
    typeChar := s next.
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   171
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   172
    typeSym := SignatureTypeCodes at:typeChar ifAbsent:#unknown.
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   173
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   174
    typeSym == #unknown ifTrue:[
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   175
        ^ typeSym
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   176
    ].
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   177
    typeSym == #object ifTrue:[
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   178
        className := s upTo:$;.
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   179
        "/ strip off default
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   180
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   181
"/        (className startsWith:'java/lang/') ifTrue:[
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   182
"/            ^ className copyFrom:11
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   183
"/        ].
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   184
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   185
        nm := className.
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   186
        aPackage notNil ifTrue:[
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   187
            (nm startsWith:aPackage) ifTrue:[
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   188
                nm := nm copyFrom:(aPackage size + 2).
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   189
            ].
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   190
        ].
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   191
        
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   192
        nm := nm copy replaceAll:$/ by:$..
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   193
        ^ nm
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   194
    ].
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   195
    typeSym == #array ifTrue:[
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   196
        s peek isDigit ifTrue:[
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   197
            size := Integer readFrom:s.
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   198
            elType := self fieldTypeFromStream:s.
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   199
            ^ elType , '[' , size printString , ']'
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   200
        ].
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   201
        elType := self fieldTypeFromStream:s.
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   202
        ^ elType , '[]'
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   203
    ].
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   204
    ^ typeSym
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   205
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   206
    "Created: 18.3.1997 / 11:07:56 / cg"
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   207
    "Modified: 18.3.1997 / 11:18:09 / cg"
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   208
!
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   209
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   210
numArgsFromSignature:aSignature
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   211
    "given a signature, return the number of args"
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   212
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   213
    |s argSpec|
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   214
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   215
    s := aSignature readStream.
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   216
    s next ~~ $( ifTrue:[self halt. ^ name].
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   217
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   218
    ^ self numArgsFromStream:s.
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   219
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   220
    "
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   221
     JavaMethod numArgsFromSignature:'(LObject;)V'
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   222
     JavaMethod numArgsFromSignature:'(BB)S'      
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   223
     JavaMethod numArgsFromSignature:'()V'      
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   224
    "
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   225
!
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   226
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   227
numArgsFromStream:s
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   228
    "parse an argSpec - see java doc"
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   229
55
5573344a887d checkin from browser
cg
parents: 50
diff changeset
   230
    |argSpec n t|
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   231
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   232
    n := 0.
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   233
    [s atEnd or:[s peek == $)]] whileFalse:[
55
5573344a887d checkin from browser
cg
parents: 50
diff changeset
   234
        t := self fieldTypeFromStream:s.
5573344a887d checkin from browser
cg
parents: 50
diff changeset
   235
        "/
5573344a887d checkin from browser
cg
parents: 50
diff changeset
   236
        "/ some args count as 2
5573344a887d checkin from browser
cg
parents: 50
diff changeset
   237
        "/
5573344a887d checkin from browser
cg
parents: 50
diff changeset
   238
        t == #long ifTrue:[
5573344a887d checkin from browser
cg
parents: 50
diff changeset
   239
            n := n + 2.
5573344a887d checkin from browser
cg
parents: 50
diff changeset
   240
        ] ifFalse:[
5573344a887d checkin from browser
cg
parents: 50
diff changeset
   241
            t == #double ifTrue:[
5573344a887d checkin from browser
cg
parents: 50
diff changeset
   242
                n := n + 2
5573344a887d checkin from browser
cg
parents: 50
diff changeset
   243
            ] ifFalse:[
5573344a887d checkin from browser
cg
parents: 50
diff changeset
   244
                n := n + 1.
5573344a887d checkin from browser
cg
parents: 50
diff changeset
   245
            ]
5573344a887d checkin from browser
cg
parents: 50
diff changeset
   246
        ]
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   247
    ].
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   248
    ^ n
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   249
!
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   250
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   251
retValSpecFromSignature:aSignature
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   252
    "given a signature, return a spec"
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   253
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   254
    |s argSpec retvalSpec|
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   255
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   256
    s := aSignature readStream.
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   257
    s next ~~ $( ifTrue:[self halt. ^ name].
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   258
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   259
    argSpec := self argSpecFromStream:s.
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   260
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   261
    s next ~~ $) ifTrue:[self halt. ^ name].
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   262
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   263
    retvalSpec := self retvalSpecFromStream:s.
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   264
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   265
    ^ retvalSpec 
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   266
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   267
    "
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   268
     JavaMethod retValSpecFromSignature:'(LObject;)V'
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   269
     JavaMethod retValSpecFromSignature:'(BB)S'      
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   270
    "
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   271
!
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   272
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   273
retValSpecFromSignature:aSignature in:aPackage
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   274
    "given a signature, return a spec"
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   275
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   276
    |s argSpec retvalSpec|
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   277
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   278
    s := aSignature readStream.
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   279
    s next ~~ $( ifTrue:[self halt. ^ name].
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   280
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   281
    argSpec := self argSpecFromStream:s in:aPackage.
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   282
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   283
    s next ~~ $) ifTrue:[self halt. ^ name].
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   284
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   285
    retvalSpec := self retvalSpecFromStream:s in:aPackage.
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   286
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   287
    ^ retvalSpec 
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   288
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   289
    "
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   290
     JavaMethod retValSpecFromSignature:'(LObject;)V'
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   291
     JavaMethod retValSpecFromSignature:'(BB)S'      
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   292
    "
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   293
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   294
    "Created: 18.3.1997 / 11:11:50 / cg"
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   295
!
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   296
72
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   297
returnTypeFromSignature:aSignature
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   298
    "given a signature, return its type as a string"
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   299
80
f08d2cab0b55 *** empty log message ***
cg
parents: 75
diff changeset
   300
    |s c argSpec retvalSpec|
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   301
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   302
    s := aSignature readStream.
80
f08d2cab0b55 *** empty log message ***
cg
parents: 75
diff changeset
   303
    (c := s peek) ~~ $( ifTrue:[
f08d2cab0b55 *** empty log message ***
cg
parents: 75
diff changeset
   304
        c == $' ifTrue:[
f08d2cab0b55 *** empty log message ***
cg
parents: 75
diff changeset
   305
           [s peek ~= $'] whileTrue:[s next].
f08d2cab0b55 *** empty log message ***
cg
parents: 75
diff changeset
   306
           s next.
f08d2cab0b55 *** empty log message ***
cg
parents: 75
diff changeset
   307
           ^ (self retvalSpecFromStream:s)
f08d2cab0b55 *** empty log message ***
cg
parents: 75
diff changeset
   308
        ].
f08d2cab0b55 *** empty log message ***
cg
parents: 75
diff changeset
   309
        ^ (self retvalSpecFromStream:s)
f08d2cab0b55 *** empty log message ***
cg
parents: 75
diff changeset
   310
    ].
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   311
80
f08d2cab0b55 *** empty log message ***
cg
parents: 75
diff changeset
   312
    s next.
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   313
    self argSpecFromStream:s.
80
f08d2cab0b55 *** empty log message ***
cg
parents: 75
diff changeset
   314
    s next ~~ $) ifTrue:[self halt. ^ nil].
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   315
72
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   316
    ^ (self retvalSpecFromStream:s)
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   317
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   318
    "
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   319
     JavaMethod returnTypeFromSignature:'(LObject;)V' 
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   320
     JavaMethod returnTypeFromSignature:'(BB)S'       
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   321
     JavaMethod returnTypeFromSignature:'()J'       
80
f08d2cab0b55 *** empty log message ***
cg
parents: 75
diff changeset
   322
     JavaMethod returnTypeFromSignature:'''first''J'       
72
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   323
    "
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   324
!
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   325
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   326
returnsVoidFromSignature:aSignature
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   327
    "given a signature, return true if it returns void, false if not"
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   328
83
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   329
    ^ (self typeFromSignature:aSignature) = 'void'
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   330
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   331
    "
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   332
     JavaMethod returnsVoidFromSignature:'(LObject;)V' 
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   333
     JavaMethod returnsVoidFromSignature:'(BB)S'       
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   334
    "
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   335
!
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   336
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   337
retvalSpecFromStream:s
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   338
    "parse a retvalSpec - see java doc"
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   339
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   340
    |argSpec spec|
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   341
72
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   342
    s atEnd ifTrue:[self halt. ^ #void].
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   343
    s peek == $V ifTrue:[^ #void].
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   344
    ^ self fieldTypeFromStream:s
10
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   345
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   346
!
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   347
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   348
retvalSpecFromStream:s in:aPackage
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   349
    "parse a retvalSpec - see java doc"
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   350
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   351
    |argSpec spec|
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   352
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   353
    s atEnd ifTrue:[self halt. ^ #void].
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   354
    s peek == $V ifTrue:[^ #void].
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   355
    ^ self fieldTypeFromStream:s in:aPackage
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   356
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   357
    "Created: 18.3.1997 / 11:12:19 / cg"
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   358
!
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   359
10
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   360
specFromSignature:aSignature withName:name
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   361
    "given a signature, return a spec"
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   362
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   363
    |s argSpec retvalSpec|
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   364
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   365
    s := aSignature readStream.
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   366
    s next ~~ $( ifTrue:[self halt. ^ name].
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   367
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   368
    argSpec := self argSpecFromStream:s.
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   369
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   370
    s next ~~ $) ifTrue:[self halt. ^ name].
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   371
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   372
    retvalSpec := self retvalSpecFromStream:s.
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   373
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   374
    ^ retvalSpec , ' ' , name , ' (' , argSpec , ')'
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   375
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   376
    "
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   377
     JavaMethod specFromSignature:'(LObject;)V' withName:'foo' 
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   378
     JavaMethod specFromSignature:'(BB)S'       withName:'foo' 
10
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   379
    "
83
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   380
!
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   381
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   382
specFromSignature:aSignature withName:name in:aPackage
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   383
    "given a signature, return a spec"
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   384
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   385
    |s argSpec retvalSpec|
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   386
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   387
    s := aSignature readStream.
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   388
    s next ~~ $( ifTrue:[self halt. ^ name].
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   389
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   390
    argSpec := self argSpecFromStream:s in:aPackage.
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   391
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   392
    s next ~~ $) ifTrue:[self halt. ^ name].
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   393
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   394
    retvalSpec := self retvalSpecFromStream:s in:aPackage.
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   395
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   396
    ^ retvalSpec , ' ' , name , ' (' , argSpec , ')'
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   397
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   398
    "
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   399
     JavaMethod specFromSignature:'(LObject;)V' withName:'foo' 
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   400
     JavaMethod specFromSignature:'(BB)S'       withName:'foo' 
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   401
    "
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   402
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   403
    "Created: 18.3.1997 / 11:06:22 / cg"
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   404
!
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   405
83
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   406
typeFromSignature:aSignature
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   407
    "given a signature, return its type as a string"
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   408
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   409
    |s c argSpec retvalSpec|
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   410
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   411
    s := aSignature readStream.
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   412
    (c := s peek) ~~ $( ifTrue:[
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   413
        c == $' ifTrue:[
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   414
           s next.
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   415
           [s peek ~= $'] whileTrue:[s next].
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   416
           s next.
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   417
           ^ (self retvalSpecFromStream:s)
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   418
        ].
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   419
        ^ (self retvalSpecFromStream:s)
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   420
    ].
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   421
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   422
    s next.
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   423
    self argSpecFromStream:s.
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   424
    s next ~~ $) ifTrue:[self halt. ^ nil].
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   425
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   426
    ^ (self retvalSpecFromStream:s)
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   427
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   428
    "
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   429
     JavaMethod typeFromSignature:'(LObject;)V'  
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   430
     JavaMethod typeFromSignature:'(BB)S'        
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   431
     JavaMethod typeFromSignature:'()J'          
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   432
     JavaMethod typeFromSignature:'J'          
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   433
     JavaMethod typeFromSignature:'''first''J'       
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   434
    "
10
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   435
! !
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   436
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   437
!JavaMethod methodsFor:'accessing'!
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   438
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   439
argSignature
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   440
    ^ self class argSigArrayFromSignature:signature
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   441
!
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   442
10
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   443
constantPool
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   444
    ^ javaClass constantPool
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   445
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   446
    "Modified: 16.4.1996 / 12:36:27 / cg"
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   447
    "Created: 16.4.1996 / 15:28:50 / cg"
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   448
!
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   449
129
f40775af59a5 checkin from browser
cg
parents: 127
diff changeset
   450
containingClass
f40775af59a5 checkin from browser
cg
parents: 127
diff changeset
   451
    ^ javaClass
f40775af59a5 checkin from browser
cg
parents: 127
diff changeset
   452
f40775af59a5 checkin from browser
cg
parents: 127
diff changeset
   453
!
f40775af59a5 checkin from browser
cg
parents: 127
diff changeset
   454
75
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   455
decompiledSource
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   456
    |s|
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   457
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   458
    s := '' writeStream.
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   459
    self decompileTo:s.
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   460
    ^ s contents
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   461
!
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   462
135
098936234135 *** empty log message ***
cg
parents: 129
diff changeset
   463
exceptionHandlerTable
098936234135 *** empty log message ***
cg
parents: 129
diff changeset
   464
    ^ exceptionHandlerTable
098936234135 *** empty log message ***
cg
parents: 129
diff changeset
   465
098936234135 *** empty log message ***
cg
parents: 129
diff changeset
   466
    "Modified: 16.4.1996 / 12:49:06 / cg"
098936234135 *** empty log message ***
cg
parents: 129
diff changeset
   467
    "Created: 7.2.1997 / 20:04:20 / cg"
098936234135 *** empty log message ***
cg
parents: 129
diff changeset
   468
!
098936234135 *** empty log message ***
cg
parents: 129
diff changeset
   469
83
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   470
exceptionTable
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   471
    ^ exceptionTable
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   472
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   473
    "Created: 16.4.1996 / 12:34:04 / cg"
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   474
    "Modified: 16.4.1996 / 12:49:06 / cg"
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   475
!
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   476
90
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   477
hasLineNumberInformation
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   478
    ^ lineNumberTable notNil
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   479
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   480
    "Created: 16.4.1996 / 12:34:04 / cg"
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   481
    "Modified: 16.4.1996 / 12:49:06 / cg"
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   482
!
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   483
148
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
   484
isNOOPMethod:aBoolean
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
   485
    isNOOPMethod := aBoolean
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
   486
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
   487
    "Created: 18.3.1997 / 13:31:16 / cg"
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
   488
!
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
   489
10
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   490
javaByteCode
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   491
    ^ javaByteCode
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   492
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   493
    "Modified: 16.4.1996 / 12:36:27 / cg"
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   494
    "Created: 16.4.1996 / 14:55:44 / cg"
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   495
!
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   496
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   497
javaClass
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   498
    ^ javaClass
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   499
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   500
    "Modified: 16.4.1996 / 12:36:27 / cg"
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   501
    "Created: 16.4.1996 / 14:55:44 / cg"
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   502
!
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   503
90
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   504
lineNumber
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   505
    ^ lineNumberTable at:2
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   506
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   507
    "Created: 16.4.1996 / 12:34:04 / cg"
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   508
    "Modified: 16.4.1996 / 12:49:06 / cg"
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   509
!
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   510
50
458467ce0e15 checkin from browser
cg
parents: 48
diff changeset
   511
lineNumberTable
458467ce0e15 checkin from browser
cg
parents: 48
diff changeset
   512
    ^ lineNumberTable
458467ce0e15 checkin from browser
cg
parents: 48
diff changeset
   513
458467ce0e15 checkin from browser
cg
parents: 48
diff changeset
   514
    "Created: 16.4.1996 / 12:34:04 / cg"
458467ce0e15 checkin from browser
cg
parents: 48
diff changeset
   515
    "Modified: 16.4.1996 / 12:49:06 / cg"
458467ce0e15 checkin from browser
cg
parents: 48
diff changeset
   516
!
458467ce0e15 checkin from browser
cg
parents: 48
diff changeset
   517
85
888c37bbe4bb checkin from browser
cg
parents: 83
diff changeset
   518
localVariableTable
888c37bbe4bb checkin from browser
cg
parents: 83
diff changeset
   519
    ^ localVariableTable
888c37bbe4bb checkin from browser
cg
parents: 83
diff changeset
   520
888c37bbe4bb checkin from browser
cg
parents: 83
diff changeset
   521
    "
888c37bbe4bb checkin from browser
cg
parents: 83
diff changeset
   522
     JavaMethod allInstancesDo:[:m| m localVariableTable notNil ifTrue:[self halt]]
888c37bbe4bb checkin from browser
cg
parents: 83
diff changeset
   523
    "
888c37bbe4bb checkin from browser
cg
parents: 83
diff changeset
   524
!
888c37bbe4bb checkin from browser
cg
parents: 83
diff changeset
   525
31
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   526
methodArgAndVarNames
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   527
    ^ ((1 to:self numArgs) collect:[:i | 'arg' , i printString])
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   528
      ,
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   529
      ((1 to:self numVars) collect:[:i | 'local' , i printString])
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   530
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   531
!
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   532
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   533
methodArgNames
102
de5ab089cf47 checkin from browser
cg
parents: 90
diff changeset
   534
    localVariableTable notNil ifTrue:[
de5ab089cf47 checkin from browser
cg
parents: 90
diff changeset
   535
        ^ (1 to:self numArgs) collect:
de5ab089cf47 checkin from browser
cg
parents: 90
diff changeset
   536
            [:argIndex | |slot name|
de5ab089cf47 checkin from browser
cg
parents: 90
diff changeset
   537
                "/ search for an entry with that index (slot),
de5ab089cf47 checkin from browser
cg
parents: 90
diff changeset
   538
                "/ which has is valid at PC 0
de5ab089cf47 checkin from browser
cg
parents: 90
diff changeset
   539
de5ab089cf47 checkin from browser
cg
parents: 90
diff changeset
   540
                self isStatic ifTrue:[
de5ab089cf47 checkin from browser
cg
parents: 90
diff changeset
   541
                    slot := argIndex
de5ab089cf47 checkin from browser
cg
parents: 90
diff changeset
   542
                ] ifFalse:[
de5ab089cf47 checkin from browser
cg
parents: 90
diff changeset
   543
                    slot := argIndex + 1
de5ab089cf47 checkin from browser
cg
parents: 90
diff changeset
   544
                ].
de5ab089cf47 checkin from browser
cg
parents: 90
diff changeset
   545
                name := localVariableTable nameForSlot:slot atPC:0.
de5ab089cf47 checkin from browser
cg
parents: 90
diff changeset
   546
                name isNil ifTrue:[
de5ab089cf47 checkin from browser
cg
parents: 90
diff changeset
   547
                    'arg' , argIndex printString
de5ab089cf47 checkin from browser
cg
parents: 90
diff changeset
   548
                ] ifFalse:[
de5ab089cf47 checkin from browser
cg
parents: 90
diff changeset
   549
                    name
de5ab089cf47 checkin from browser
cg
parents: 90
diff changeset
   550
                ].
de5ab089cf47 checkin from browser
cg
parents: 90
diff changeset
   551
            ]
de5ab089cf47 checkin from browser
cg
parents: 90
diff changeset
   552
    ].
31
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   553
    ^ (1 to:self numArgs) collect:[:i | 'arg' , i printString]
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   554
!
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   555
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   556
name
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   557
    ^ name
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   558
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   559
    "Created: 16.4.1996 / 11:34:22 / cg"
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   560
!
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   561
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   562
numArgs
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   563
    numArgs isNil ifTrue:[^ 0].
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   564
    ^ numArgs
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   565
!
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   566
118
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
   567
numLocals
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
   568
    numLocals isNil ifTrue:[^ 0].
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
   569
    ^ numLocals
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
   570
!
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
   571
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
   572
numStack
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
   573
    numStack isNil ifTrue:[^ 0].
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
   574
    ^ numStack
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
   575
!
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
   576
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   577
numVars
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   578
    numLocals isNil ifTrue:[^ 0].
118
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
   579
    numArgs isNil ifTrue:[^ numLocals].
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
   580
    ^ numLocals - numArgs
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   581
!
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   582
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   583
numberOfMethodArgs:n
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   584
    numArgs := n
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   585
!
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   586
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   587
retValSignature
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   588
    ^ self class retValSpecFromSignature:signature
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   589
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   590
!
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   591
123
4a5d4ac95782 checkin from browser
cg
parents: 118
diff changeset
   592
returnType
4a5d4ac95782 checkin from browser
cg
parents: 118
diff changeset
   593
    ^ returnType
4a5d4ac95782 checkin from browser
cg
parents: 118
diff changeset
   594
!
4a5d4ac95782 checkin from browser
cg
parents: 118
diff changeset
   595
116
7d612d4450c0 *** empty log message ***
cg
parents: 113
diff changeset
   596
returnsDouble
7d612d4450c0 *** empty log message ***
cg
parents: 113
diff changeset
   597
    ^ returnType == #double
7d612d4450c0 *** empty log message ***
cg
parents: 113
diff changeset
   598
!
7d612d4450c0 *** empty log message ***
cg
parents: 113
diff changeset
   599
72
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   600
returnsLong
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   601
    ^ returnType == #long
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   602
!
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   603
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   604
returnsVoid
72
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   605
    ^ returnType == #void
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   606
!
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   607
5
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   608
setAccessFlags:flags
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   609
    accessFlags := flags.
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   610
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   611
    "Created: 16.4.1996 / 11:34:14 / cg"
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   612
!
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   613
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   614
setCode:codeBytes maxStack:max_stack maxLocals:max_locals u1:unknown1 u2:unknown2
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   615
    javaByteCode := codeBytes.
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   616
    numStack := max_stack.
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   617
    numLocals := max_locals.
5
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   618
43
2c4ca2eb8d07 checkin from browser
cg
parents: 31
diff changeset
   619
"/    self displayString printNL.
2c4ca2eb8d07 checkin from browser
cg
parents: 31
diff changeset
   620
"/    '   nStack: ' print. numStack print. 
2c4ca2eb8d07 checkin from browser
cg
parents: 31
diff changeset
   621
"/    ' nLocal: ' print. numLocals print. 
2c4ca2eb8d07 checkin from browser
cg
parents: 31
diff changeset
   622
"/    ' u1: ' print. unknown1 print.
2c4ca2eb8d07 checkin from browser
cg
parents: 31
diff changeset
   623
"/    ' u2: ' print. unknown2 printNL.
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   624
5
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   625
!
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   626
83
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   627
setExceptionHandlerTable:anArray
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   628
    exceptionHandlerTable := anArray.
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   629
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   630
    "Created: 16.4.1996 / 12:34:04 / cg"
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   631
!
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   632
5
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   633
setExceptionTable:anArray
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   634
    exceptionTable := anArray.
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   635
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   636
    "Created: 16.4.1996 / 12:34:04 / cg"
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   637
!
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   638
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   639
setJavaClass:aJavaClass
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   640
    javaClass := aJavaClass
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   641
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   642
    "Modified: 16.4.1996 / 12:36:27 / cg"
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   643
    "Created: 16.4.1996 / 15:28:15 / cg"
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   644
!
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   645
90
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   646
setLineNumberTable:anArrayOfPCtoLineAssociations
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   647
    "since this uses up lots of memory, compress it"
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   648
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   649
    |allBytes allWords idx|
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   650
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   651
    allBytes := allWords := true.
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   652
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   653
    anArrayOfPCtoLineAssociations do:[:assoc |
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   654
        assoc key > 255 ifTrue:[
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   655
            allBytes := false.
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   656
            assoc key > 16rFFFF ifTrue:[
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   657
                allWords := false.
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   658
            ].
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   659
        ].
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   660
        assoc value > 255 ifTrue:[
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   661
            allBytes := false.
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   662
            assoc value > 16rFFFF ifTrue:[
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   663
                allWords := false
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   664
            ].
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   665
        ].
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   666
    ].
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   667
    allBytes ifTrue:[
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   668
        lineNumberTable := ByteArray new:(anArrayOfPCtoLineAssociations size * 2).
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   669
    ] ifFalse:[
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   670
        allWords ifTrue:[
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   671
            lineNumberTable := WordArray new:(anArrayOfPCtoLineAssociations size * 2).
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   672
        ] ifFalse:[
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   673
            lineNumberTable := Array new:(anArrayOfPCtoLineAssociations size * 2).
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   674
        ]
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   675
    ].
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   676
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   677
    idx := 1.
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   678
    anArrayOfPCtoLineAssociations do:[:assoc |
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   679
        lineNumberTable at:idx   put:assoc key.
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   680
        lineNumberTable at:idx+1 put:assoc value.
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   681
        idx := idx + 2.
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   682
    ].
5
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   683
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   684
    "Created: 16.4.1996 / 12:34:04 / cg"
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   685
    "Modified: 16.4.1996 / 12:49:06 / cg"
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   686
!
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   687
50
458467ce0e15 checkin from browser
cg
parents: 48
diff changeset
   688
setLocalVariableTable:anArray
83
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   689
     localVariableTable := anArray.
50
458467ce0e15 checkin from browser
cg
parents: 48
diff changeset
   690
!
458467ce0e15 checkin from browser
cg
parents: 48
diff changeset
   691
5
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   692
setName:aString
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   693
    name := aString asSymbol.
5
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   694
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   695
    "Created: 16.4.1996 / 11:34:22 / cg"
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   696
!
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   697
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   698
setSignature:aString
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   699
    signature := aString asSymbol.
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   700
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   701
    self numberOfMethodArgs:(self class numArgsFromSignature:aString).
83
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   702
    returnType := self class typeFromSignature:aString.
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   703
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   704
    "Created: 16.4.1996 / 11:34:29 / cg"
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   705
!
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   706
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   707
signature
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   708
    ^ signature 
5
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   709
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   710
    "Created: 16.4.1996 / 11:34:29 / cg"
31
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   711
!
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   712
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   713
source
75
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   714
    |classSource|
31
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   715
75
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   716
    lineNumberTable notNil ifTrue:[
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   717
        classSource := javaClass source.
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   718
        classSource notNil ifTrue:[^ classSource].
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   719
    ].
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   720
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   721
    ^ self decompiledSource
31
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   722
!
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   723
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   724
sourceFilename
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   725
    ^ javaClass sourceFile
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   726
! !
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   727
18
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
   728
!JavaMethod methodsFor:'decompiling'!
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
   729
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
   730
decompileTo:aStream
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
   731
    JavaDecompiler decompile:self to:aStream.
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
   732
    ^ true
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
   733
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
   734
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
   735
! !
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
   736
118
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
   737
!JavaMethod methodsFor:'methodref interchangability'!
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
   738
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
   739
method
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
   740
    ^ self
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
   741
! !
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
   742
148
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
   743
!JavaMethod methodsFor:'misc'!
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
   744
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
   745
checkForNOOPMethod
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
   746
    javaByteCode notNil ifTrue:[
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
   747
        (javaByteCode at:1) == 177 "RETURN" ifTrue:[
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
   748
            'dummy static method: ' print. self displayString printCR.
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
   749
            isNOOPMethod := true.
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
   750
            ^ self
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
   751
        ].
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
   752
    ].
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
   753
    ^ self
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
   754
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
   755
    "Created: 18.3.1997 / 13:31:50 / cg"
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
   756
    "Modified: 18.3.1997 / 13:42:48 / cg"
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
   757
! !
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
   758
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   759
!JavaMethod methodsFor:'printing & storing'!
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   760
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   761
displayString
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   762
    ^ 'JavaMethod(' , javaClass name , '::' , self signatureName , ')'
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   763
!
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   764
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   765
printStringForBrowserWithSelector:selector
43
2c4ca2eb8d07 checkin from browser
cg
parents: 31
diff changeset
   766
"/    self isStatic ifTrue:[
2c4ca2eb8d07 checkin from browser
cg
parents: 31
diff changeset
   767
"/        ^ 'static ' , self signatureName
2c4ca2eb8d07 checkin from browser
cg
parents: 31
diff changeset
   768
"/    ].
80
f08d2cab0b55 *** empty log message ***
cg
parents: 75
diff changeset
   769
    self isBreakpointed ifTrue:[
f08d2cab0b55 *** empty log message ***
cg
parents: 75
diff changeset
   770
        ^ '!! ' , self signatureName
f08d2cab0b55 *** empty log message ***
cg
parents: 75
diff changeset
   771
    ].
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   772
    ^ self signatureName
10
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   773
!
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   774
118
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
   775
shortDisplayString
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
   776
    ^ javaClass name , '::' , self signatureNameWithoutReturnType
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
   777
!
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
   778
10
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   779
signatureName
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   780
    "return a string to be used when browsing"
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   781
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   782
    ^ self class specFromSignature:signature withName:name
113
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
   783
!
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
   784
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   785
signatureNameIn:aPackage
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   786
    "return a string to be used when browsing"
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   787
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   788
    ^ self class specFromSignature:signature withName:name in:aPackage
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   789
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   790
    "Created: 18.3.1997 / 11:11:01 / cg"
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   791
!
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   792
113
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
   793
signatureNameWithoutReturnType
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
   794
    "return a string to be used when browsing"
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
   795
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
   796
    ^ self class argSpecFromSignature:signature withName:name
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
   797
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   798
! !
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   799
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   800
!JavaMethod methodsFor:'queries'!
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   801
111
23243f9273fa *** empty log message ***
cg
parents: 102
diff changeset
   802
handlerFor:anException at:pc
23243f9273fa *** empty log message ***
cg
parents: 102
diff changeset
   803
    exceptionHandlerTable isNil ifTrue:[^ nil].
83
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   804
    exceptionHandlerTable do:[:entry |
48
1e12f315ed97 checkin from browser
cg
parents: 46
diff changeset
   805
        |hpc|
1e12f315ed97 checkin from browser
cg
parents: 46
diff changeset
   806
1e12f315ed97 checkin from browser
cg
parents: 46
diff changeset
   807
        hpc := entry handlerPCFor:anException at:pc in:self.
111
23243f9273fa *** empty log message ***
cg
parents: 102
diff changeset
   808
        hpc notNil ifTrue:[^ hpc].
48
1e12f315ed97 checkin from browser
cg
parents: 46
diff changeset
   809
    ].
1e12f315ed97 checkin from browser
cg
parents: 46
diff changeset
   810
111
23243f9273fa *** empty log message ***
cg
parents: 102
diff changeset
   811
    ^ nil
31
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   812
!
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   813
127
96f1bf74011f *** empty log message ***
cg
parents: 123
diff changeset
   814
hasResource
96f1bf74011f *** empty log message ***
cg
parents: 123
diff changeset
   815
    ^ false
96f1bf74011f *** empty log message ***
cg
parents: 123
diff changeset
   816
!
96f1bf74011f *** empty log message ***
cg
parents: 123
diff changeset
   817
19
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
   818
isAbstract
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
   819
    ^ (accessFlags bitAnd:16r0400) ~~ 0
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
   820
!
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
   821
80
f08d2cab0b55 *** empty log message ***
cg
parents: 75
diff changeset
   822
isBreakpointed
f08d2cab0b55 *** empty log message ***
cg
parents: 75
diff changeset
   823
    ^ false
f08d2cab0b55 *** empty log message ***
cg
parents: 75
diff changeset
   824
!
f08d2cab0b55 *** empty log message ***
cg
parents: 75
diff changeset
   825
19
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
   826
isFinal
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
   827
    ^ (accessFlags bitAnd:16r0010) ~~ 0
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
   828
!
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
   829
148
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
   830
isNOOPMethod
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
   831
    ^ isNOOPMethod == true
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
   832
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
   833
    "Modified: 18.3.1997 / 13:30:56 / cg"
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
   834
!
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
   835
19
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
   836
isNative
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
   837
    ^ (accessFlags bitAnd:16r0100) ~~ 0
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
   838
!
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
   839
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
   840
isPrivate
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
   841
    ^ (accessFlags bitAnd:16r0002) ~~ 0
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
   842
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
   843
!
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
   844
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
   845
isProtected
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
   846
    ^ (accessFlags bitAnd:16r0004) ~~ 0
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
   847
!
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
   848
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
   849
isPublic
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
   850
    ^ (accessFlags bitAnd:16r0001) ~~ 0
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
   851
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
   852
!
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
   853
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
   854
isStatic
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
   855
    ^ (accessFlags bitAnd:16r0008) ~~ 0
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
   856
!
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
   857
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
   858
isSynchronized
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
   859
    ^ (accessFlags bitAnd:16r0020) ~~ 0
18
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
   860
!
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
   861
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   862
isUnloaded
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   863
    ^ false
18
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
   864
!
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
   865
31
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   866
lineNumberForPC:pc
75
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   867
    |last num text classSource|
31
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   868
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   869
    num := nil.
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   870
46
db9b84631d43 checkin from browser
cg
parents: 43
diff changeset
   871
    lineNumberTable notNil ifTrue:[
75
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   872
        classSource := javaClass source.
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   873
        classSource notNil ifTrue:[
90
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   874
            lineNumberTable pairWiseDo:[:lPc :lNr |
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   875
                lPc >= pc ifTrue:[
143
43a48853d86f linenumber
cg
parents: 142
diff changeset
   876
                    "/ lPc == pc ifTrue:[^ lNr].
90
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   877
                    last isNil ifTrue:[^ lNr].
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   878
                    ^ last.
75
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   879
                ].
90
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   880
                last := lNr.
75
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   881
            ].
141
0baa4706b898 checkin from browser
cg
parents: 135
diff changeset
   882
            last notNil ifTrue:[        
0baa4706b898 checkin from browser
cg
parents: 135
diff changeset
   883
                ^ last
0baa4706b898 checkin from browser
cg
parents: 135
diff changeset
   884
            ].
90
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
   885
            ^ lineNumberTable at:2
75
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   886
        ].
46
db9b84631d43 checkin from browser
cg
parents: 43
diff changeset
   887
    ].
31
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   888
46
db9b84631d43 checkin from browser
cg
parents: 43
diff changeset
   889
    "/ decompile and look which line the pc falls into
75
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   890
    text := self decompiledSource asCollectionOfLines.
31
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   891
46
db9b84631d43 checkin from browser
cg
parents: 43
diff changeset
   892
    text keysAndValuesDo:[:lineNr :line |
db9b84631d43 checkin from browser
cg
parents: 43
diff changeset
   893
        |nr|
db9b84631d43 checkin from browser
cg
parents: 43
diff changeset
   894
83
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   895
        (line startsWith:'    ') ifFalse:[
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   896
            nr := Integer readFrom:line onError:0.
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   897
            nr >= pc ifTrue:[
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   898
                ^ lineNr
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   899
            ]
46
db9b84631d43 checkin from browser
cg
parents: 43
diff changeset
   900
        ]
31
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   901
    ].
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   902
    ^ num
141
0baa4706b898 checkin from browser
cg
parents: 135
diff changeset
   903
143
43a48853d86f linenumber
cg
parents: 142
diff changeset
   904
    "Modified: 18.3.1997 / 12:30:07 / cg"
31
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   905
!
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
   906
18
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
   907
who
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
   908
    "return the class and selector of where I am defined in."
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
   909
64
2e4b425dc40c changes for new methodDict
cg
parents: 55
diff changeset
   910
    |sel|
18
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
   911
64
2e4b425dc40c changes for new methodDict
cg
parents: 55
diff changeset
   912
    sel := javaClass methodDictionary keyAtValue:self ifAbsent:nil.
2e4b425dc40c changes for new methodDict
cg
parents: 55
diff changeset
   913
    sel isNil ifTrue:[^ nil].
129
f40775af59a5 checkin from browser
cg
parents: 127
diff changeset
   914
    ^ Method::MethodWhoInfo class:javaClass selector:sel.
5
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   915
! !
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   916
129
f40775af59a5 checkin from browser
cg
parents: 127
diff changeset
   917
!JavaMethod class methodsFor:'documentation'!
2
91843ac44d2f intitial checkin
cg
parents:
diff changeset
   918
91843ac44d2f intitial checkin
cg
parents:
diff changeset
   919
version
148
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
   920
    ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaMethod.st,v 1.34 1997/03/18 16:52:18 cg Exp $'
2
91843ac44d2f intitial checkin
cg
parents:
diff changeset
   921
! !
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   922
JavaMethod initialize!