JavaMethod.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Sun, 26 Apr 2015 21:07:30 +0100
changeset 3442 e59716e00703
parent 3419 aa30aeb2ee07
child 3466 5c317b796c61
permissions -rw-r--r--
Oops, fix for commit 48320b2d4: Use first element of binding to read bound value For workspace variables it does not matter much as both values are valueholders, however in inspector and for debugger, binding contains block with fixed number of arguments.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
454
38f590639d65 *** empty log message ***
cg
parents: 449
diff changeset
     1
"
3324
a58245c0e83a Updated copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3236
diff changeset
     2
 COPYRIGHT (c) 1996-2015 by Claus Gittinger
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
     3
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
     4
 New code and modifications done at SWING Research Group [1]:
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
     5
3324
a58245c0e83a Updated copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3236
diff changeset
     6
 COPYRIGHT (c) 2010-2015 by Jan Vrany, Jan Kurs and Marcel Hlopko
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
     7
                            SWING Research Group, Czech Technical University in Prague
454
38f590639d65 *** empty log message ***
cg
parents: 449
diff changeset
     8
38f590639d65 *** empty log message ***
cg
parents: 449
diff changeset
     9
 This software is furnished under a license and may be used
38f590639d65 *** empty log message ***
cg
parents: 449
diff changeset
    10
 only in accordance with the terms of that license and with the
38f590639d65 *** empty log message ***
cg
parents: 449
diff changeset
    11
 inclusion of the above copyright notice.   This software may not
38f590639d65 *** empty log message ***
cg
parents: 449
diff changeset
    12
 be provided or otherwise made available to, or used by, any
38f590639d65 *** empty log message ***
cg
parents: 449
diff changeset
    13
 other person.  No title to or ownership of the software is
38f590639d65 *** empty log message ***
cg
parents: 449
diff changeset
    14
 hereby transferred.
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
    15
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
    16
 [1] Code written at SWING Research Group contains a signature
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
    17
     of one of the above copright owners. For exact set of such code,
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
    18
     see the differences between this version and version stx:libjava
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
    19
     as of 1.9.2010
2086
66b8f6529783 comment
Claus Gittinger <cg@exept.de>
parents: 750
diff changeset
    20
"
678
0e4f13d5f7e9 printString; added dummy #comment
cg
parents: 673
diff changeset
    21
"{ Package: 'stx:libjava' }"
0e4f13d5f7e9 printString; added dummy #comment
cg
parents: 673
diff changeset
    22
3419
aa30aeb2ee07 Fixed (some) race conditions during class reload
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3324
diff changeset
    23
"{ NameSpace: Smalltalk }"
aa30aeb2ee07 Fixed (some) race conditions during class reload
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3324
diff changeset
    24
2551
6b1262d7f5a0 class: JavaMethod
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
    25
CompiledCode variableSubclass:#JavaMethod
2160
15a9de58bf7d changed: #rationale
Claus Gittinger <cg@exept.de>
parents: 2158
diff changeset
    26
	instanceVariableNames:'accessFlags selector javaClass descriptor signature lookupObject
2716
1cca77810e04 Initial support for source file partitioning using eclipse parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2708
diff changeset
    27
		lineNumberTable localVariableTable source annotations'
2160
15a9de58bf7d changed: #rationale
Claus Gittinger <cg@exept.de>
parents: 2158
diff changeset
    28
	classVariableNames:'AbstractMethodInvokationSignal SignatureTypeCodes
2726
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
    29
		ForceByteCodeDisplay ShowFullSource UnresolvedClassSignal
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
    30
		A_PUBLIC A_PRIVATE A_PROTECTED A_STATIC A_FINAL A_SYNCHRONIZED
2992
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2902
diff changeset
    31
		A_ABSTRACT A_NATIVE A_BREAKPOINT A_HASHANDLER A_BRIDGE A_VARARGS
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2902
diff changeset
    32
		A_STRICT A_SYNTHETIC A_RESOLVED A_HASFINALLY'
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
    33
	poolDictionaries:'JavaConstants'
2160
15a9de58bf7d changed: #rationale
Claus Gittinger <cg@exept.de>
parents: 2158
diff changeset
    34
	category:'Languages-Java-Classes'
2
91843ac44d2f intitial checkin
cg
parents:
diff changeset
    35
!
91843ac44d2f intitial checkin
cg
parents:
diff changeset
    36
454
38f590639d65 *** empty log message ***
cg
parents: 449
diff changeset
    37
!JavaMethod class methodsFor:'documentation'!
38f590639d65 *** empty log message ***
cg
parents: 449
diff changeset
    38
38f590639d65 *** empty log message ***
cg
parents: 449
diff changeset
    39
copyright
38f590639d65 *** empty log message ***
cg
parents: 449
diff changeset
    40
"
3324
a58245c0e83a Updated copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3236
diff changeset
    41
 COPYRIGHT (c) 1996-2015 by Claus Gittinger
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
    42
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
    43
 New code and modifications done at SWING Research Group [1]:
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
    44
3324
a58245c0e83a Updated copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3236
diff changeset
    45
 COPYRIGHT (c) 2010-2015 by Jan Vrany, Jan Kurs and Marcel Hlopko
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
    46
                            SWING Research Group, Czech Technical University in Prague
454
38f590639d65 *** empty log message ***
cg
parents: 449
diff changeset
    47
38f590639d65 *** empty log message ***
cg
parents: 449
diff changeset
    48
 This software is furnished under a license and may be used
38f590639d65 *** empty log message ***
cg
parents: 449
diff changeset
    49
 only in accordance with the terms of that license and with the
38f590639d65 *** empty log message ***
cg
parents: 449
diff changeset
    50
 inclusion of the above copyright notice.   This software may not
38f590639d65 *** empty log message ***
cg
parents: 449
diff changeset
    51
 be provided or otherwise made available to, or used by, any
38f590639d65 *** empty log message ***
cg
parents: 449
diff changeset
    52
 other person.  No title to or ownership of the software is
38f590639d65 *** empty log message ***
cg
parents: 449
diff changeset
    53
 hereby transferred.
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
    54
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
    55
 [1] Code written at SWING Research Group contains a signature
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
    56
     of one of the above copright owners. For exact set of such code,
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
    57
     see the differences between this version and version stx:libjava
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
    58
     as of 1.9.2010
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
    59
2086
66b8f6529783 comment
Claus Gittinger <cg@exept.de>
parents: 750
diff changeset
    60
"
454
38f590639d65 *** empty log message ***
cg
parents: 449
diff changeset
    61
! !
2
91843ac44d2f intitial checkin
cg
parents:
diff changeset
    62
129
f40775af59a5 checkin from browser
cg
parents: 127
diff changeset
    63
!JavaMethod class methodsFor:'initialization'!
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    64
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    65
initialize
277
511c3bb153b7 jdk1.2 stuff.
cg
parents: 275
diff changeset
    66
    AbstractMethodInvokationSignal isNil ifTrue:[
2114
cbdc4c02a8e2 ExecutionErrorSignal -> ExecutionError
Claus Gittinger <cg@exept.de>
parents: 2110
diff changeset
    67
        AbstractMethodInvokationSignal := ExecutionError newSignalMayProceed:true.
594
0d5fea9542d3 checkin from browser
cg
parents: 525
diff changeset
    68
        AbstractMethodInvokationSignal nameClass:self message:#abstractMethodInvokationSignal.
0d5fea9542d3 checkin from browser
cg
parents: 525
diff changeset
    69
        AbstractMethodInvokationSignal notifierString:'attempt to execute abstract method'.
0d5fea9542d3 checkin from browser
cg
parents: 525
diff changeset
    70
2114
cbdc4c02a8e2 ExecutionErrorSignal -> ExecutionError
Claus Gittinger <cg@exept.de>
parents: 2110
diff changeset
    71
        UnresolvedClassSignal := ExecutionError newSignalMayProceed:true.
594
0d5fea9542d3 checkin from browser
cg
parents: 525
diff changeset
    72
        UnresolvedClassSignal nameClass:self message:#unresolvedClassSignal.
0d5fea9542d3 checkin from browser
cg
parents: 525
diff changeset
    73
        UnresolvedClassSignal notifierString:'unresolved class'.
277
511c3bb153b7 jdk1.2 stuff.
cg
parents: 275
diff changeset
    74
    ].
511c3bb153b7 jdk1.2 stuff.
cg
parents: 275
diff changeset
    75
2729
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
    76
    ShowFullSource := true.
2726
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
    77
    ForceByteCodeDisplay := false.
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
    78
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 238
diff changeset
    79
    A_PUBLIC       := 16r0001.
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 238
diff changeset
    80
    A_PRIVATE      := 16r0002.
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 238
diff changeset
    81
    A_PROTECTED    := 16r0004.
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 238
diff changeset
    82
    A_STATIC       := 16r0008.
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 238
diff changeset
    83
    A_FINAL        := 16r0010.
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 238
diff changeset
    84
    A_SYNCHRONIZED := 16r0020.
2145
0df96de83547 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
    85
    A_BRIDGE       := 16r0040.
0df96de83547 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
    86
    A_VARARGS      := 16r0080.
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 238
diff changeset
    87
    A_NATIVE       := 16r0100.
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 238
diff changeset
    88
    A_ABSTRACT     := 16r0400.
2145
0df96de83547 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
    89
    A_STRICT       := 16r0800.
0df96de83547 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
    90
    A_SYNTHETIC    := 16r1000.
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 238
diff changeset
    91
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
    92
    A_BREAKPOINT   := 16r10000000.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
    93
    A_HASHANDLER   := 16r20000000.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
    94
    A_HASFINALLY   := 16r00004000.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
    95
    A_RESOLVED     := 16r00000200.
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
    96
173
10513c48882f checkin from browser
cg
parents: 169
diff changeset
    97
    self flags:(self flags bitOr:Behavior flagJavaMethod).
10513c48882f checkin from browser
cg
parents: 169
diff changeset
    98
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
    99
    SignatureTypeCodes := IdentityDictionary new.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   100
    SignatureTypeCodes at:$B put:#byte.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   101
    SignatureTypeCodes at:$C put:#char.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   102
    SignatureTypeCodes at:$D put:#double.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   103
    SignatureTypeCodes at:$F put:#float.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   104
    SignatureTypeCodes at:$I put:#int.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   105
    SignatureTypeCodes at:$J put:#long.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   106
    SignatureTypeCodes at:$S put:#'unsigned short'.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   107
    SignatureTypeCodes at:$Z put:#boolean.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   108
    SignatureTypeCodes at:$L put:#object.
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   109
    SignatureTypeCodes at:$[ put:#array.
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   110
    SignatureTypeCodes at:$T put:#typevar.
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   111
207
dfbd9b69a64e checkin from browser
cg
parents: 189
diff changeset
   112
    ForceByteCodeDisplay := false.
dfbd9b69a64e checkin from browser
cg
parents: 189
diff changeset
   113
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   114
    "
378
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
   115
     JavaMethod initialize.
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
   116
     JavaMethodWithHandler initialize.
209
9e4b45da1117 checkin from browser
cg
parents: 207
diff changeset
   117
     ForceByteCodeDisplay := true.
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   118
     ForceByteCodeDisplay := false.
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   119
    "
173
10513c48882f checkin from browser
cg
parents: 169
diff changeset
   120
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   121
    "Modified: / 16-10-1998 / 01:29:48 / cg"
2992
732f9db2a195 Cleanup & refactoring of constant pool references (JavaRef2 hierarchy)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2902
diff changeset
   122
    "Modified: / 31-01-2014 / 03:35:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   123
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   124
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   125
reinitialize
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   126
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   127
    self flags:(self flags bitOr:Behavior flagJavaMethod).
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   128
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   129
    "Created: / 14-12-2010 / 20:58:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
378
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
   130
! !
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
   131
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
   132
!JavaMethod class methodsFor:'instance creation'!
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
   133
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
   134
fromMethod:aJavaMethod
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
   135
    "create a new javaMethod, copying values from another javaMethod"
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
   136
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
   137
    ^ self new fromMethod:aJavaMethod
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
   138
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
   139
    "Created: / 16.10.1998 / 01:25:12 / cg"
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
   140
!
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
   141
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
   142
new
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
   143
    "create a new javaMethod.
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
   144
     Redefined, since constants are NOT stored in a literalArray,
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
   145
     but my classes constantTable instead."
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
   146
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
   147
    ^ self basicNew:0.
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
   148
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
   149
    "Created: / 16.10.1998 / 01:13:02 / cg"
277
511c3bb153b7 jdk1.2 stuff.
cg
parents: 275
diff changeset
   150
! !
511c3bb153b7 jdk1.2 stuff.
cg
parents: 275
diff changeset
   151
511c3bb153b7 jdk1.2 stuff.
cg
parents: 275
diff changeset
   152
!JavaMethod class methodsFor:'Signal constants'!
511c3bb153b7 jdk1.2 stuff.
cg
parents: 275
diff changeset
   153
511c3bb153b7 jdk1.2 stuff.
cg
parents: 275
diff changeset
   154
abstractMethodInvokationSignal
511c3bb153b7 jdk1.2 stuff.
cg
parents: 275
diff changeset
   155
    "return the signal raised when an abstract method is invoked"
511c3bb153b7 jdk1.2 stuff.
cg
parents: 275
diff changeset
   156
511c3bb153b7 jdk1.2 stuff.
cg
parents: 275
diff changeset
   157
    ^ AbstractMethodInvokationSignal
511c3bb153b7 jdk1.2 stuff.
cg
parents: 275
diff changeset
   158
511c3bb153b7 jdk1.2 stuff.
cg
parents: 275
diff changeset
   159
    "Created: / 27.1.1998 / 21:50:05 / cg"
594
0d5fea9542d3 checkin from browser
cg
parents: 525
diff changeset
   160
!
0d5fea9542d3 checkin from browser
cg
parents: 525
diff changeset
   161
0d5fea9542d3 checkin from browser
cg
parents: 525
diff changeset
   162
unresolvedClassSignal
0d5fea9542d3 checkin from browser
cg
parents: 525
diff changeset
   163
    "return the signal raised when an unresolved class is referenced"
0d5fea9542d3 checkin from browser
cg
parents: 525
diff changeset
   164
0d5fea9542d3 checkin from browser
cg
parents: 525
diff changeset
   165
    ^ UnresolvedClassSignal
0d5fea9542d3 checkin from browser
cg
parents: 525
diff changeset
   166
0d5fea9542d3 checkin from browser
cg
parents: 525
diff changeset
   167
    "Created: / 27.1.1998 / 21:50:05 / cg"
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   168
! !
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   169
2729
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
   170
!JavaMethod class methodsFor:'accessing'!
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
   171
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
   172
showFullSource
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
   173
    ^ ShowFullSource
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
   174
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
   175
    "Created: / 14-09-2013 / 11:56:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
   176
! !
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
   177
169
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
   178
!JavaMethod class methodsFor:'misc'!
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
   179
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
   180
forceByteCodeDisplay
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
   181
    ^ ForceByteCodeDisplay
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
   182
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
   183
    "Created: 7.4.1997 / 20:11:39 / cg"
309
e1bfd26cadae *** empty log message ***
cg
parents: 277
diff changeset
   184
!
e1bfd26cadae *** empty log message ***
cg
parents: 277
diff changeset
   185
e1bfd26cadae *** empty log message ***
cg
parents: 277
diff changeset
   186
forceByteCodeDisplay:aBoolean
e1bfd26cadae *** empty log message ***
cg
parents: 277
diff changeset
   187
    ForceByteCodeDisplay := aBoolean
e1bfd26cadae *** empty log message ***
cg
parents: 277
diff changeset
   188
e1bfd26cadae *** empty log message ***
cg
parents: 277
diff changeset
   189
    "
e1bfd26cadae *** empty log message ***
cg
parents: 277
diff changeset
   190
     self forceByteCodeDisplay:true
e1bfd26cadae *** empty log message ***
cg
parents: 277
diff changeset
   191
     self forceByteCodeDisplay:false
e1bfd26cadae *** empty log message ***
cg
parents: 277
diff changeset
   192
    "
e1bfd26cadae *** empty log message ***
cg
parents: 277
diff changeset
   193
e1bfd26cadae *** empty log message ***
cg
parents: 277
diff changeset
   194
    "Created: / 4.2.1998 / 00:22:54 / cg"
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   195
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   196
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   197
makeJavaMethod
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   198
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
   199
    self flags:((self flags
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   200
                 bitOr:Behavior flagJavaMethod)
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   201
                 bitClear:Behavior flagMetaMethod)
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   202
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   203
    "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   204
        JavaMethod makeJavaMethod
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   205
        JavaMethod makeMetaMethod
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   206
    "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   207
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   208
    "Created: / 23-02-2011 / 12:56:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   209
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   210
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   211
makeMetaMethod
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   212
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
   213
    self flags:((self flags
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   214
                 bitOr:Behavior flagMetaMethod)
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   215
                 bitClear:Behavior flagJavaMethod)
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   216
     "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   217
        JavaMethod makeJavaMethod
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   218
        JavaMethod makeMetaMethod
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   219
    "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   220
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   221
    "Created: / 23-02-2011 / 12:56:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
169
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
   222
! !
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
   223
2678
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
   224
!JavaMethod class methodsFor:'others'!
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
   225
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
   226
version_HG
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
   227
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
   228
    ^ '$Changeset: <not expanded> $'
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
   229
! !
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
   230
129
f40775af59a5 checkin from browser
cg
parents: 127
diff changeset
   231
!JavaMethod class methodsFor:'signature parsing'!
5
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   232
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   233
argSigArrayFromSignature:aSignature
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   234
    "given a signature, return a specArray for the arguments"
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   235
238
18c543cfe8ef *** empty log message ***
cg
parents: 237
diff changeset
   236
    |s|
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   237
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   238
    s := aSignature readStream.
237
4c9ca89313d4 *** empty log message ***
cg
parents: 220
diff changeset
   239
    s next ~~ $( ifTrue:[self halt].
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   240
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   241
    ^ self argSigArrayFromStream:s.
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   242
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   243
    "
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   244
     JavaMethod argSigArrayFromSignature:'(LObject;)V'
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
   245
     JavaMethod argSigArrayFromSignature:'(BB)S'
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
   246
     JavaMethod argSigArrayFromSignature:'(LObject;LObject;II)V'
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   247
    "
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   248
!
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   249
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   250
argSigArrayFromStream:s
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   251
    "parse an argSpec, return an array of specs - see java doc"
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   252
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   253
    |argSpec spec|
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   254
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   255
    spec := #().
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   256
    [s atEnd or:[s peek == $)]] whileFalse:[
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   257
"/        s peek == Character space ifTrue:[
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   258
"/            s next
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   259
"/        ] ifFalse:[
2158
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   260
            argSpec := self fieldTypeFromStream:s in:nil.
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   261
            spec := spec copyWith:argSpec.
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   262
"/        ]
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   263
    ].
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   264
    ^ spec
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   265
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   266
    "Modified: / 8.1.1998 / 19:10:20 / cg"
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   267
!
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   268
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
   269
argSignatureFromArgTypeArray:arr
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   270
    | sig |
321
1fc4570fb914 preps for getMethod nativeCall
cg
parents: 309
diff changeset
   271
1fc4570fb914 preps for getMethod nativeCall
cg
parents: 309
diff changeset
   272
    sig := ''.
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   273
    arr do:
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
   274
            [:el |
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   275
            | jCLass |
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   276
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   277
            jCLass := el.
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
   278
            jCLass isJavaClass
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   279
                ifFalse:[ jCLass := JavaVM reflection classForJavaClassObject:el ].
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
   280
            jCLass isJavaClass
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   281
                ifTrue:
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   282
                    [ sig := sig , jCLass typeName.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   283
                    ]
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   284
                ifFalse:[ self halt. ] ].
322
567088a5a1b0 partial support for getMethod0 & invokeMethod.
cg
parents: 321
diff changeset
   285
    ^ sig
321
1fc4570fb914 preps for getMethod nativeCall
cg
parents: 309
diff changeset
   286
1fc4570fb914 preps for getMethod nativeCall
cg
parents: 309
diff changeset
   287
    "
1fc4570fb914 preps for getMethod nativeCall
cg
parents: 309
diff changeset
   288
     self argSignatureFromArgTypeArray:
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   289
 (Array
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   290
     with:(JavaVM javaClassObjectForClass:(Java at:'com.sun.java.swing.JComponent')))"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   291
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   292
    "Modified: / 13-02-1998 / 14:57:58 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   293
    "Modified: / 02-03-2011 / 22:49:24 / Marcel Hlopko <hlopik@gmail.com>"
321
1fc4570fb914 preps for getMethod nativeCall
cg
parents: 309
diff changeset
   294
!
1fc4570fb914 preps for getMethod nativeCall
cg
parents: 309
diff changeset
   295
113
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
   296
argSpecFromSignature:aSignature withName:name
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
   297
    "given a signature, return a spec"
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
   298
238
18c543cfe8ef *** empty log message ***
cg
parents: 237
diff changeset
   299
    |s argSpec|
113
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
   300
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
   301
    s := aSignature readStream.
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
   302
    s next ~~ $( ifTrue:[self halt. ^ name].
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
   303
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   304
    argSpec := self argSpecFromStream:s in:nil.
113
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
   305
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
   306
    s next ~~ $) ifTrue:[self halt. ^ name].
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
   307
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
   308
    ^ name , ' (' , argSpec , ')'
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
   309
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
   310
    "
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
   311
     JavaMethod argSpecFromSignature:'(LObject;)V' withName:'foo'
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
   312
     JavaMethod argSpecFromSignature:'(BB)S'       withName:'foo'
113
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
   313
    "
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
   314
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   315
    "Modified: / 8.1.1998 / 19:05:36 / cg"
5
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   316
!
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
   317
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   318
argSpecFromStream:s in:aPackage
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   319
    "parse an argSpec - see java doc"
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   320
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   321
    |argSpec spec|
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   322
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   323
    spec := ''.
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   324
    [s atEnd or:[s peek == $)]] whileFalse:[
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   325
"/        s peek == Character space ifTrue:[
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   326
"/            s next
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   327
"/        ] ifFalse:[
2158
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   328
            argSpec := self fieldTypeFromStream:s in:aPackage.
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   329
            spec size ~~ 0 ifTrue:[
2790
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   330
                spec := spec , ', '
2158
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   331
            ].
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   332
            spec := spec , argSpec.
142
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
    ^ spec
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   336
2790
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   337
    "Created: / 18-03-1997 / 11:06:44 / cg"
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   338
    "Modified: / 04-10-2013 / 12:45:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   339
!
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   340
154
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   341
argSpecWithArgsFromStream:s in:aPackage
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   342
    "parse an argSpec - see java doc"
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   343
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   344
    ^ self argSpecWithArgsFromStream:s in:aPackage argNames:nil
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   345
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   346
    "Modified: / 8.1.1998 / 19:21:00 / cg"
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   347
!
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   348
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   349
argSpecWithArgsFromStream:s in:aPackage argNames:argNames
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   350
    "parse an argSpec - see java doc"
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   351
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   352
    |argSpec spec argNr nm|
154
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   353
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   354
    argNr := 1.
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   355
    spec := ''.
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   356
    [s atEnd or:[s peek == $)]] whileFalse:[
2158
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   357
        argSpec := self fieldTypeFromStream:s in:aPackage.
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   358
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   359
        (argNames notNil
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   360
        and:[argNames size >= argNr
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   361
        and:[(nm := argNames at:argNr) notNil]]) ifFalse:[
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   362
            nm := 'arg' , argNr printString.
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   363
        ].
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   364
        argSpec := argSpec , ' ' , nm.
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   365
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   366
        spec size ~~ 0 ifTrue:[
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   367
            spec := spec , ', '
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   368
        ].
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   369
        spec := spec , argSpec.
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   370
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   371
        argNr := argNr + 1.
154
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   372
    ].
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   373
    ^ spec
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   374
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   375
    "Created: / 8.1.1998 / 19:20:36 / cg"
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   376
    "Modified: / 8.1.1998 / 21:14:33 / cg"
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   377
!
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
   378
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   379
fieldTypeFromStream:s in:aPackage
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   380
    "parse a fieldTypeSpec - see java doc"
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   381
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   382
    |typeChar typeSym elType size className nm out nangles |
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   383
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   384
    typeChar := s next.
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   385
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   386
    typeSym := SignatureTypeCodes at:typeChar ifAbsent:#unknown.
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   387
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   388
    typeSym == #unknown ifTrue:[
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   389
        ^ typeSym
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   390
    ].
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   391
    (typeSym == #object or: [typeSym == #typevar]) ifTrue:[
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   392
        "Take care about type variables"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   393
        out := String new writeStream.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   394
        [ s peek ~~ $; and:[ s peek ~~ $< ] ] whileTrue:[
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   395
            out nextPut: s next.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   396
        ].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   397
        className := out contents.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   398
        "Eat possible type variables"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   399
        (s peek == $<) ifTrue:[
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   400
            nangles := 1. s next.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   401
            [  nangles ~~ 0 ] whileTrue:[
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   402
                s peek == $< ifTrue:[nangles := nangles + 1].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   403
                s peek == $> ifTrue:[nangles := nangles - 1].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   404
                s next.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   405
            ]
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   406
        ].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   407
        s peek ~~ $; ifTrue:[self error: 'Signature corrupted?'].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   408
        s next. "/eat ;
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   409
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   410
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   411
        typeSym == #typevar ifTrue:[^className].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   412
        "/ strip off default
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   413
        nm := className.
2790
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   414
"/        aPackage notNil ifTrue:[
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   415
"/            (nm startsWith:aPackage) ifTrue:[
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   416
"/                nm := nm copyFrom:(aPackage size + 2).
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   417
"/            ].
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   418
"/        ].
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   419
        "/ Show only local name, otherwise names are way too long...
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   420
        nm := nm copyFrom: (nm lastIndexOf: $/) + 1.
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
   421
2790
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   422
"/        nm := nm copyReplaceAll:$/ with:$..
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   423
        ^ nm
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   424
    ].
189
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   425
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   426
    typeSym == #array ifTrue:[
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   427
        s peek isDigit ifTrue:[
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   428
            size := Integer readFrom:s.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   429
            elType := self fieldTypeFromStream:s in:aPackage.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   430
            ^ elType , '[' , size printString , ']'
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   431
        ].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   432
        elType := self fieldTypeFromStream:s in:aPackage.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   433
        ^ elType , '[]'
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   434
    ].
189
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   435
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   436
    ^ typeSym
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   437
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   438
    "Created: / 18-03-1997 / 11:07:56 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   439
    "Modified: / 18-07-1998 / 22:57:06 / cg"
2790
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   440
    "Modified: / 04-10-2013 / 12:42:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   441
!
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   442
3197
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   443
numArgsFromDescriptor:descriptor 
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   444
    "Given a method descriptor, return the number physical of args (number of arg slots)"
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   445
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   446
    | i c numArgs |
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   447
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   448
    "/ The following code is king of ugly, but it is optimized for speed as
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   449
    "/ profiling shown that some 10% time was spent in descriptor parsing.
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   450
    "/ Fillowing code is written upon assumption we get a proper method
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   451
    "/ descriptor (i.e., descriptor, not signature with type parameters).
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   452
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   453
    numArgs := 0.
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   454
    i := descriptor indexOf: $(.
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   455
    i ~~ 0 ifTrue:[ 
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   456
        i := i + 1.
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   457
        [ (c := descriptor at: i) ~~ $) ] whileTrue:[
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   458
            c == $D ifTrue:[ 
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   459
                numArgs := numArgs + 2.
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   460
            ] ifFalse:[ 
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   461
                c == $J ifTrue:[ 
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   462
                    numArgs := numArgs + 2.
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   463
                ] ifFalse:[ 
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   464
                    numArgs := numArgs + 1.
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   465
                    c == $[ ifTrue:[ 
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   466
                        i := i + 1.
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   467
                        [ (c := descriptor at: i) == $[ ] whileTrue:[ i := i + 1 ].
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   468
                    ].
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   469
                    c == $L ifTrue:[ 
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   470
                        i := descriptor indexOf: $; startingAt: i + 1.
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   471
                        i == 0 ifTrue:[ 
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   472
                            self error: 'Invalid descriptor'
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   473
                        ].
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   474
                    ].
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   475
                ].
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   476
            ].
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   477
            i := i + 1.
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   478
        ].
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   479
        ^ numArgs
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   480
    ].
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   481
    self error: 'Invalid descriptor'
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   482
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   483
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   484
    "
3197
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   485
     JavaMethod numArgsFromDescriptor:'(LObject;)V'
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   486
     JavaMethod numArgsFromDescriptor:'(BB)S'
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   487
     JavaMethod numArgsFromDescriptor:'()V'  
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   488
     JavaMethod numArgsFromDescriptor:'(Ljava/util/ArrayList<*>;)V'
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   489
     JavaMethod numArgsFromDescriptor:'(LObject;J)V'
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   490
     JavaMethod numArgsFromDescriptor:'([[LObject;J)V'
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   491
     JavaMethod numArgsFromDescriptor:'([[J)V'
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   492
    "
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   493
3197
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   494
    "/ Original (slow) code:
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   495
"/    | s |
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   496
"/
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   497
"/    s := descriptor readStream.
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   498
"/    (descriptor includes:$() ifFalse:[
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   499
"/        self error:'Invalid signature'
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   500
"/    ].
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   501
"/    [ s next ~~ $( ] whileTrue.
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   502
"/    ^ self numArgsFromStream:s.
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   503
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   504
    "Modified: / 04-08-2014 / 16:39:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   505
!
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   506
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   507
numArgsFromStream:s
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   508
    "parse an argSpec - see java doc"
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   509
238
18c543cfe8ef *** empty log message ***
cg
parents: 237
diff changeset
   510
    |n t|
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   511
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   512
    n := 0.
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   513
    [s atEnd or:[s peek == $)]] whileFalse:[
2158
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   514
        t := self fieldTypeFromStream:s in:nil.
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   515
        "/
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   516
        "/ some args count as 2
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   517
        "/
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   518
        t == #long ifTrue:[
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   519
            n := n + 2.
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   520
        ] ifFalse:[
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   521
            t == #double ifTrue:[
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   522
                n := n + 2
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   523
            ] ifFalse:[
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   524
                n := n + 1.
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   525
            ]
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   526
        ]
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   527
    ].
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   528
    ^ n
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   529
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   530
    "Modified: / 8.1.1998 / 19:10:25 / cg"
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   531
!
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   532
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   533
retValSpecFromSignature:aSignature in:aPackage
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   534
    "given a signature, return a spec"
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   535
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   536
    |s argSpec retvalSpec|
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   537
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   538
    s := aSignature readStream.
237
4c9ca89313d4 *** empty log message ***
cg
parents: 220
diff changeset
   539
    s next ~~ $( ifTrue:[self halt].
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   540
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   541
    argSpec := self argSpecFromStream:s in:aPackage.
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   542
237
4c9ca89313d4 *** empty log message ***
cg
parents: 220
diff changeset
   543
    s next ~~ $) ifTrue:[self halt].
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   544
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   545
    retvalSpec := self retvalSpecFromStream:s in:aPackage.
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   546
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
   547
    ^ retvalSpec
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   548
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   549
    "
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   550
     JavaMethod retValSpecFromSignature:'(LObject;)V'
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
   551
     JavaMethod retValSpecFromSignature:'(BB)S'
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   552
    "
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   553
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   554
    "Created: 18.3.1997 / 11:11:50 / cg"
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   555
!
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   556
189
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   557
returnTypeFromSignature:aSignature in:aPackage
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   558
    "given a signature, return its type as a string"
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   559
238
18c543cfe8ef *** empty log message ***
cg
parents: 237
diff changeset
   560
    |s c|
189
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   561
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   562
    s := aSignature readStream.
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   563
    (c := s peek) ~~ $( ifTrue:[
2158
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   564
        c == $' ifTrue:[
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   565
           [s peek ~= $'] whileTrue:[s next].
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   566
           s next.
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   567
           ^ (self retvalSpecFromStream:s in:aPackage)
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   568
        ].
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   569
        ^ (self retvalSpecFromStream:s in:aPackage)
189
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   570
    ].
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   571
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   572
    s next.
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   573
    self argSpecFromStream:s in:aPackage.
189
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   574
    s next ~~ $) ifTrue:[self halt. ^ nil].
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   575
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   576
    ^ (self retvalSpecFromStream:s in:aPackage)
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   577
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   578
    "
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
   579
     JavaMethod returnTypeFromSignature:'(LObject;)V'
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
   580
     JavaMethod returnTypeFromSignature:'(BB)S'
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
   581
     JavaMethod returnTypeFromSignature:'()J'
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
   582
     JavaMethod returnTypeFromSignature:'''first''J'
189
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   583
    "
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   584
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   585
    "Created: / 1.8.1997 / 10:54:31 / cg"
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   586
    "Modified: / 8.1.1998 / 19:09:06 / cg"
72
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   587
!
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   588
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   589
returnsVoidFromSignature:aSignature
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   590
    "given a signature, return true if it returns void, false if not"
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
   591
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   592
    ^ (self typeFromSignature:aSignature in:nil) = 'void'
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   593
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   594
    "
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
   595
     JavaMethod returnsVoidFromSignature:'(LObject;)V'
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
   596
     JavaMethod returnsVoidFromSignature:'(BB)S'
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   597
    "
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
   598
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   599
    "Modified: / 8.1.1998 / 19:13:53 / cg"
10
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   600
!
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   601
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   602
retvalSpecFromStream:s in:aPackage
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   603
    "parse a retvalSpec - see java doc"
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   604
332
2cb9ceae74d3 checkin from browser
cg
parents: 323
diff changeset
   605
    |spec|
2cb9ceae74d3 checkin from browser
cg
parents: 323
diff changeset
   606
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   607
    s atEnd ifTrue:[self halt. ^ #void].
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   608
    s peek == $V ifTrue:[^ #void].
332
2cb9ceae74d3 checkin from browser
cg
parents: 323
diff changeset
   609
    spec := self fieldTypeFromStream:s in:aPackage.
2cb9ceae74d3 checkin from browser
cg
parents: 323
diff changeset
   610
    spec knownAsSymbol ifTrue:[
2158
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   611
        ^ spec asSymbol
332
2cb9ceae74d3 checkin from browser
cg
parents: 323
diff changeset
   612
    ].
2cb9ceae74d3 checkin from browser
cg
parents: 323
diff changeset
   613
    ^ spec
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   614
332
2cb9ceae74d3 checkin from browser
cg
parents: 323
diff changeset
   615
    "Created: / 18.3.1997 / 11:12:19 / cg"
2cb9ceae74d3 checkin from browser
cg
parents: 323
diff changeset
   616
    "Modified: / 7.4.1998 / 22:28:27 / cg"
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   617
!
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   618
189
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   619
specComponentsWithArgsFromSignature:aSignature withName:name in:aPackage
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   620
    "given a signature, return a spec"
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   621
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   622
    |s argSpec retvalSpec|
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   623
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   624
    s := aSignature readStream.
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   625
    s next ~~ $( ifTrue:[self halt. ^ name].
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   626
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   627
    argSpec := self argSpecWithArgsFromStream:s in:aPackage.
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   628
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   629
    s next ~~ $) ifTrue:[self halt. ^ name].
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   630
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   631
    retvalSpec := self retvalSpecFromStream:s in:aPackage.
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   632
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   633
    ^ Array with:retvalSpec with:name with:argSpec
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   634
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   635
    "
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
   636
     JavaMethod specWithArgsFromSignature:'(LObject;)V' withName:'foo' in:nil
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
   637
     JavaMethod specComponentsWithArgsFromSignature:'(LObject;)V' withName:'foo' in:nil
189
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   638
    "
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   639
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   640
    "Created: 18.3.1997 / 11:06:22 / cg"
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   641
    "Modified: 1.8.1997 / 11:03:50 / cg"
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   642
!
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   643
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   644
specFromSignature:aSignature withName:name argNames:argNames in:aPackage
10
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   645
    "given a signature, return a spec"
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   646
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   647
    |s argSpec retvalSpec|
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   648
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   649
    s := aSignature readStream.
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   650
    s next ~~ $( ifTrue:[self halt. ^ name].
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   651
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   652
    argSpec := self argSpecWithArgsFromStream:s in:aPackage argNames:argNames.
10
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   653
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   654
    s next ~~ $) ifTrue:[self halt. ^ name].
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   655
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   656
    retvalSpec := self retvalSpecFromStream:s in:aPackage.
10
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   657
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   658
    ^ retvalSpec , ' ' , name , ' (' , argSpec , ')'
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   659
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   660
    "
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
   661
     JavaMethod specFromSignature:'(LObject;)V' withName:'foo' argNames:#('a') in:nil
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   662
     JavaMethod specFromSignature:'(BB)S'       withName:'foo' argNames:#('a' 'b') in:nil
10
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   663
    "
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   664
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   665
    "Created: / 18.3.1997 / 11:06:22 / cg"
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   666
    "Modified: / 8.1.1998 / 21:14:43 / cg"
83
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   667
!
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   668
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   669
specFromSignature:aSignature withName:name in:aPackage
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   670
    "given a signature, return a spec"
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   671
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   672
    |s argSpec retvalSpec|
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   673
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   674
    s := aSignature readStream.
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   675
    s next ~~ $( ifTrue:[self halt. ^ name].
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   676
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   677
    argSpec := self argSpecFromStream:s in:aPackage.
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   678
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   679
    s next ~~ $) ifTrue:[self halt. ^ name].
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   680
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   681
    retvalSpec := self retvalSpecFromStream:s in:aPackage.
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   682
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   683
    ^ retvalSpec , ' ' , name , ' (' , argSpec , ')'
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   684
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   685
    "
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   686
     JavaMethod specFromSignature:'(LObject;)V' withName:'foo' in:nil
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   687
     JavaMethod specFromSignature:'(BB)S'       withName:'foo' in:nil
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   688
    "
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   689
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   690
    "Created: / 18.3.1997 / 11:06:22 / cg"
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   691
    "Modified: / 8.1.1998 / 21:06:32 / cg"
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   692
!
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
   693
2790
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   694
specTextFromSignature:aSignature in:aPackage withName:name isConstructor: isCtor
678
0e4f13d5f7e9 printString; added dummy #comment
cg
parents: 673
diff changeset
   695
    "given a signature, return a spec as boldified text"
0e4f13d5f7e9 printString; added dummy #comment
cg
parents: 673
diff changeset
   696
0e4f13d5f7e9 printString; added dummy #comment
cg
parents: 673
diff changeset
   697
    |s argSpec retvalSpec|
0e4f13d5f7e9 printString; added dummy #comment
cg
parents: 673
diff changeset
   698
0e4f13d5f7e9 printString; added dummy #comment
cg
parents: 673
diff changeset
   699
    s := aSignature readStream.
0e4f13d5f7e9 printString; added dummy #comment
cg
parents: 673
diff changeset
   700
    s next ~~ $( ifTrue:[self halt. ^ name].
0e4f13d5f7e9 printString; added dummy #comment
cg
parents: 673
diff changeset
   701
0e4f13d5f7e9 printString; added dummy #comment
cg
parents: 673
diff changeset
   702
    argSpec := self argSpecFromStream:s in:aPackage.
0e4f13d5f7e9 printString; added dummy #comment
cg
parents: 673
diff changeset
   703
0e4f13d5f7e9 printString; added dummy #comment
cg
parents: 673
diff changeset
   704
    s next ~~ $) ifTrue:[self halt. ^ name].
0e4f13d5f7e9 printString; added dummy #comment
cg
parents: 673
diff changeset
   705
2790
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   706
    ^ isCtor ifTrue:[
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   707
        name , ' (' , argSpec , ')'
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   708
    ] ifFalse:[
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   709
        retvalSpec := self retvalSpecFromStream:s in:aPackage.
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
   710
        name , ' (' , argSpec , ') : ' , retvalSpec
2790
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   711
    ]
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   712
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
   713
"/    ^
2790
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   714
678
0e4f13d5f7e9 printString; added dummy #comment
cg
parents: 673
diff changeset
   715
0e4f13d5f7e9 printString; added dummy #comment
cg
parents: 673
diff changeset
   716
    "
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
   717
     JavaMethod specTextFromSignature:'(LObject;)V' withName:'foo'
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
   718
     JavaMethod specTextFromSignature:'(BB)S'       withName:'foo'
678
0e4f13d5f7e9 printString; added dummy #comment
cg
parents: 673
diff changeset
   719
    "
0e4f13d5f7e9 printString; added dummy #comment
cg
parents: 673
diff changeset
   720
2790
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   721
    "Created: / 04-10-2013 / 12:36:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
678
0e4f13d5f7e9 printString; added dummy #comment
cg
parents: 673
diff changeset
   722
!
0e4f13d5f7e9 printString; added dummy #comment
cg
parents: 673
diff changeset
   723
175
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   724
specTextFromSignature:aSignature withName:name
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   725
    "given a signature, return a spec as boldified text"
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   726
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   727
    |s argSpec retvalSpec|
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   728
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   729
    s := aSignature readStream.
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   730
    s next ~~ $( ifTrue:[self halt. ^ name].
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   731
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   732
    argSpec := self argSpecFromStream:s in:nil.
175
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   733
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   734
    s next ~~ $) ifTrue:[self halt. ^ name].
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   735
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   736
    retvalSpec := self retvalSpecFromStream:s in:nil.
175
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   737
2110
6188ec8713ea no need for asText when sending allBold
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   738
    ^ retvalSpec , ' ' , (name allBold) , ' (' , argSpec , ')'
175
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   739
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   740
    "
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
   741
     JavaMethod specTextFromSignature:'(LObject;)V' withName:'foo'
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
   742
     JavaMethod specTextFromSignature:'(BB)S'       withName:'foo'
175
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   743
    "
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   744
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   745
    "Modified: / 8.1.1998 / 19:11:20 / cg"
175
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   746
!
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   747
189
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   748
specTextWithArgsFromSignature:aSignature withName:name in:aPackage
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   749
    "given a signature, return a spec"
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   750
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   751
    |s argSpec retvalSpec|
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   752
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   753
    s := aSignature readStream.
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   754
    s next ~~ $( ifTrue:[self halt. ^ name].
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   755
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   756
    argSpec := self argSpecWithArgsFromStream:s in:aPackage.
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   757
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   758
    s next ~~ $) ifTrue:[self halt. ^ name].
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   759
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   760
    retvalSpec := self retvalSpecFromStream:s in:aPackage.
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   761
2110
6188ec8713ea no need for asText when sending allBold
Claus Gittinger <cg@exept.de>
parents: 2107
diff changeset
   762
    ^ retvalSpec , ' ' , (name allBold) , ' (' , argSpec , ')'
189
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   763
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   764
    "
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
   765
     JavaMethod specWithArgsFromSignature:'(LObject;)V' withName:'foo' in:nil
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
   766
     JavaMethod specWithArgsFromSignature:'(BB)S'       withName:'foo' in:nil
189
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   767
    "
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   768
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   769
    "Modified: 20.3.1997 / 12:50:10 / cg"
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   770
    "Created: 1.8.1997 / 10:43:57 / cg"
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   771
!
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   772
154
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   773
specWithArgsFromSignature:aSignature withName:name in:aPackage
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   774
    "given a signature, return a spec"
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   775
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   776
    |s argSpec retvalSpec|
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   777
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   778
    s := aSignature readStream.
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   779
    s next ~~ $( ifTrue:[self halt. ^ name].
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   780
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   781
    argSpec := self argSpecWithArgsFromStream:s in:aPackage.
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   782
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   783
    s next ~~ $) ifTrue:[self halt. ^ name].
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   784
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   785
    retvalSpec := self retvalSpecFromStream:s in:aPackage.
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   786
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   787
    ^ retvalSpec , ' ' , name , ' (' , argSpec , ')'
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   788
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   789
    "
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
   790
     JavaMethod specWithArgsFromSignature:'(LObject;)V' withName:'foo' in:nil
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
   791
     JavaMethod specWithArgsFromSignature:'(BB)S'       withName:'foo' in:nil
154
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   792
    "
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   793
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   794
    "Created: 18.3.1997 / 11:06:22 / cg"
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   795
    "Modified: 20.3.1997 / 12:50:10 / cg"
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   796
!
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
   797
2790
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   798
specWithArgsFromSignature:aSignature withName:name in:aPackage isConstructor: isCtor
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   799
    "given a signature, return a spec"
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   800
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   801
    |s argSpec retvalSpec|
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   802
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   803
    s := aSignature readStream.
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   804
    s next ~~ $( ifTrue:[self halt. ^ name].
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   805
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   806
    argSpec := self argSpecWithArgsFromStream:s in:aPackage.
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   807
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   808
    s next ~~ $) ifTrue:[self halt. ^ name].
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   809
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   810
    retvalSpec := self retvalSpecFromStream:s in:aPackage.
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   811
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   812
    ^ retvalSpec , ' ' , name , ' (' , argSpec , ')'
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   813
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   814
    "
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
   815
     JavaMethod specWithArgsFromSignature:'(LObject;)V' withName:'foo' in:nil
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
   816
     JavaMethod specWithArgsFromSignature:'(BB)S'       withName:'foo' in:nil
2790
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   817
    "
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   818
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   819
    "Created: / 04-10-2013 / 12:33:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   820
!
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   821
189
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   822
typeFromSignature:aSignature in:package
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   823
    "given a signature, return its type as a string"
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   824
238
18c543cfe8ef *** empty log message ***
cg
parents: 237
diff changeset
   825
    |s c|
189
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   826
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   827
    s := aSignature readStream.
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   828
    (c := s peek) ~~ $( ifTrue:[
2158
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   829
        c == $' ifTrue:[
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   830
           s next.
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   831
           [s peek ~= $'] whileTrue:[s next].
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   832
           s next.
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   833
           ^ (self retvalSpecFromStream:s in:package)
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   834
        ].
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
   835
        ^ (self retvalSpecFromStream:s in:package)
189
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   836
    ].
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   837
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   838
    s next.
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   839
    self argSpecFromStream:s in:nil.
189
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   840
    s next ~~ $) ifTrue:[self halt. ^ nil].
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   841
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   842
    ^ (self retvalSpecFromStream:s in:package)
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   843
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   844
    "
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
   845
     JavaMethod typeFromSignature:'(LObject;)Ljava/lang/Object'
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
   846
     JavaMethod typeFromSignature:'(LObject;)Ljava/lang/Object' in:'java.lang'
189
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   847
    "
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
   848
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   849
    "Created: / 1.8.1997 / 10:50:38 / cg"
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   850
    "Modified: / 8.1.1998 / 19:09:31 / cg"
10
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   851
! !
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   852
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   853
!JavaMethod methodsFor:'* As yet uncategorized *'!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   854
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
   855
annotationIndexOf:aSymbol
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
   856
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
   857
    ^nil
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
   858
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
   859
    "Created: / 24-02-2012 / 16:06:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   860
! !
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   861
3236
c8b42e8c2d6c Fix in reloading of a method with method-level breakpoint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3197
diff changeset
   862
!JavaMethod methodsFor:'* uncategorized *'!
c8b42e8c2d6c Fix in reloading of a method with method-level breakpoint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3197
diff changeset
   863
c8b42e8c2d6c Fix in reloading of a method with method-level breakpoint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3197
diff changeset
   864
annotationAt:aSymbol    
c8b42e8c2d6c Fix in reloading of a method with method-level breakpoint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3197
diff changeset
   865
    ^ nil "/ There are no annotation is Smalltalk sense...
c8b42e8c2d6c Fix in reloading of a method with method-level breakpoint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3197
diff changeset
   866
c8b42e8c2d6c Fix in reloading of a method with method-level breakpoint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3197
diff changeset
   867
    "Created: / 17-08-2014 / 08:34:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c8b42e8c2d6c Fix in reloading of a method with method-level breakpoint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3197
diff changeset
   868
! !
c8b42e8c2d6c Fix in reloading of a method with method-level breakpoint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3197
diff changeset
   869
10
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   870
!JavaMethod methodsFor:'accessing'!
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   871
334
638045537cf7 *** empty log message ***
cg
parents: 332
diff changeset
   872
accessFlags
638045537cf7 *** empty log message ***
cg
parents: 332
diff changeset
   873
    "java calls this the modifiers"
638045537cf7 *** empty log message ***
cg
parents: 332
diff changeset
   874
638045537cf7 *** empty log message ***
cg
parents: 332
diff changeset
   875
    ^ accessFlags
638045537cf7 *** empty log message ***
cg
parents: 332
diff changeset
   876
638045537cf7 *** empty log message ***
cg
parents: 332
diff changeset
   877
    "Created: / 9.4.1998 / 17:49:44 / cg"
638045537cf7 *** empty log message ***
cg
parents: 332
diff changeset
   878
!
638045537cf7 *** empty log message ***
cg
parents: 332
diff changeset
   879
2678
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
   880
analyzer
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
   881
    "Returns an analyzer for the method which can be used
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
   882
     to query some statistics like sent messages or modified classvars"
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
   883
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
   884
    ^ JavaMethodAnalyzer analyze: self.
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
   885
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
   886
    "Created: / 30-08-2013 / 13:47:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
   887
!
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
   888
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   889
annotations
3196
d617b4590431 (Class reading) optimization [2/4]: rewrite slow ifNil:... by faster isNil ifTrue:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3111
diff changeset
   890
    annotations isNil ifTrue:[
d617b4590431 (Class reading) optimization [2/4]: rewrite slow ifNil:... by faster isNil ifTrue:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3111
diff changeset
   891
        ^ JavaMethodAnnotationContainer empty
d617b4590431 (Class reading) optimization [2/4]: rewrite slow ifNil:... by faster isNil ifTrue:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3111
diff changeset
   892
    ].
d617b4590431 (Class reading) optimization [2/4]: rewrite slow ifNil:... by faster isNil ifTrue:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3111
diff changeset
   893
    ^ annotations
d617b4590431 (Class reading) optimization [2/4]: rewrite slow ifNil:... by faster isNil ifTrue:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3111
diff changeset
   894
d617b4590431 (Class reading) optimization [2/4]: rewrite slow ifNil:... by faster isNil ifTrue:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3111
diff changeset
   895
    "Modified: / 04-08-2014 / 16:01:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   896
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   897
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   898
annotations:something
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   899
    annotations := something.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   900
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   901
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   902
argSignature
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   903
    ^ self class argSigArrayFromSignature:descriptor
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   904
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   905
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   906
asByteCodeMethod
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   907
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   908
    "JavaMethods are always bytecode methods"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   909
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   910
    ^self
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   911
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   912
    "Created: / 18-07-2011 / 20:48:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   913
!
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
   914
678
0e4f13d5f7e9 printString; added dummy #comment
cg
parents: 673
diff changeset
   915
comment
0e4f13d5f7e9 printString; added dummy #comment
cg
parents: 673
diff changeset
   916
    "should access the source here, and parse any method comment"
0e4f13d5f7e9 printString; added dummy #comment
cg
parents: 673
diff changeset
   917
0e4f13d5f7e9 printString; added dummy #comment
cg
parents: 673
diff changeset
   918
    ^ nil
0e4f13d5f7e9 printString; added dummy #comment
cg
parents: 673
diff changeset
   919
!
0e4f13d5f7e9 printString; added dummy #comment
cg
parents: 673
diff changeset
   920
10
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   921
constantPool
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   922
    ^ javaClass constantPool
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   923
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   924
    "Modified: 16.4.1996 / 12:36:27 / cg"
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   925
    "Created: 16.4.1996 / 15:28:50 / cg"
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   926
!
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
   927
129
f40775af59a5 checkin from browser
cg
parents: 127
diff changeset
   928
containingClass
f40775af59a5 checkin from browser
cg
parents: 127
diff changeset
   929
    ^ javaClass
f40775af59a5 checkin from browser
cg
parents: 127
diff changeset
   930
f40775af59a5 checkin from browser
cg
parents: 127
diff changeset
   931
!
f40775af59a5 checkin from browser
cg
parents: 127
diff changeset
   932
169
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
   933
decompiledBytecode
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
   934
    |s|
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
   935
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
   936
    s := '' writeStream.
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
   937
    JavaDecompiler decompile:self to:s.
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
   938
    ^ s contents
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
   939
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
   940
    "Created: 7.4.1997 / 20:10:37 / cg"
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
   941
!
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
   942
75
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   943
decompiledSource
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   944
    |s|
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   945
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   946
    s := '' writeStream.
175
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   947
    self decompileSourceTo:s.
75
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   948
    ^ s contents
175
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   949
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
   950
    "Modified: 30.7.1997 / 16:27:55 / cg"
75
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   951
!
9816a04c8b21 checkin from browser
cg
parents: 72
diff changeset
   952
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   953
descriptor
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   954
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
   955
    ^ (JavaDescriptor fromString: descriptor) name: self name
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   956
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   957
    "Created: / 16-04-1996 / 11:34:29 / cg"
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
   958
    "Modified: / 06-12-2011 / 21:53:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
   959
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
   960
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
   961
descriptorSymbol
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
   962
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
   963
    ^descriptor
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
   964
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
   965
    "Created: / 16-04-1996 / 11:34:29 / cg"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
   966
    "Created: / 06-12-2011 / 23:00:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   967
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   968
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   969
ensureHasAnnotations
3196
d617b4590431 (Class reading) optimization [2/4]: rewrite slow ifNil:... by faster isNil ifTrue:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3111
diff changeset
   970
    annotations isNil ifTrue:[
d617b4590431 (Class reading) optimization [2/4]: rewrite slow ifNil:... by faster isNil ifTrue:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3111
diff changeset
   971
        annotations := JavaMethodAnnotationContainer for:self
d617b4590431 (Class reading) optimization [2/4]: rewrite slow ifNil:... by faster isNil ifTrue:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3111
diff changeset
   972
    ].
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   973
    ^ annotations
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   974
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   975
    "Created: / 25-02-2011 / 16:02:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   976
    "Modified: / 28-02-2011 / 16:33:00 / Marcel Hlopko <hlopik@gmail.com>"
3196
d617b4590431 (Class reading) optimization [2/4]: rewrite slow ifNil:... by faster isNil ifTrue:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3111
diff changeset
   977
    "Modified: / 04-08-2014 / 15:55:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   978
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
   979
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
   980
exceptionClasses
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
   981
    "Return a collection of declared exception classes that this method
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
   982
     throws"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
   983
    ^#()
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
   984
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
   985
    "Created: / 01-08-2012 / 10:06:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
   986
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
   987
135
098936234135 *** empty log message ***
cg
parents: 129
diff changeset
   988
exceptionHandlerTable
378
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
   989
    ^ nil
135
098936234135 *** empty log message ***
cg
parents: 129
diff changeset
   990
378
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
   991
    "Created: / 16.10.1998 / 01:50:51 / cg"
135
098936234135 *** empty log message ***
cg
parents: 129
diff changeset
   992
!
098936234135 *** empty log message ***
cg
parents: 129
diff changeset
   993
83
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   994
exceptionTable
378
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
   995
    ^ nil
83
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   996
378
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
   997
    "Created: / 16.10.1998 / 01:51:04 / cg"
83
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   998
!
2d61ef3579e4 *** empty log message ***
cg
parents: 80
diff changeset
   999
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1000
firstInstructionLineNumber
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1001
    ForceByteCodeDisplay == true ifTrue:[ ^ 1].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1002
    lineNumberTable notNil ifTrue:[ ^ lineNumberTable at:2].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1003
    ^ 0.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1004
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1005
    "Created: / 17-12-2010 / 17:02:46 / Jan Kurs <kurs.jan@post.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1006
    "Modified: / 08-01-2011 / 16:30:16 / Jan Kurs <kurs.jan@post.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1007
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1008
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1009
getExceptionTable
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1010
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1011
    ^ nil
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1012
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1013
    "Created: / 04-02-2011 / 23:07:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1014
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1015
2678
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  1016
getMclass
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  1017
    ^javaClass
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  1018
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  1019
    "Created: / 15-04-2013 / 17:57:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  1020
!
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  1021
2729
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
  1022
getSource
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
  1023
    ^ source
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
  1024
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
  1025
    "Created: / 13-09-2013 / 01:41:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
  1026
!
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
  1027
2090
756cbebc78f4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2087
diff changeset
  1028
getSourcePosition
756cbebc78f4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2087
diff changeset
  1029
    ^ 1
756cbebc78f4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2087
diff changeset
  1030
!
756cbebc78f4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2087
diff changeset
  1031
90
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
  1032
hasLineNumberInformation
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
  1033
    ^ lineNumberTable notNil
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
  1034
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
  1035
    "Created: 16.4.1996 / 12:34:04 / cg"
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
  1036
    "Modified: 16.4.1996 / 12:49:06 / cg"
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
  1037
!
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
  1038
10
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
  1039
javaByteCode
184
f65eb9c4ba6e checkin from browser
cg
parents: 175
diff changeset
  1040
"/    ^ javaByteCode
f65eb9c4ba6e checkin from browser
cg
parents: 175
diff changeset
  1041
    ^ byteCode
10
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
  1042
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
  1043
    "Created: 16.4.1996 / 14:55:44 / cg"
184
f65eb9c4ba6e checkin from browser
cg
parents: 175
diff changeset
  1044
    "Modified: 1.8.1997 / 00:08:45 / cg"
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
  1045
!
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
  1046
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
  1047
javaClass
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
  1048
    ^ javaClass
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
  1049
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
  1050
    "Modified: 16.4.1996 / 12:36:27 / cg"
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
  1051
    "Created: 16.4.1996 / 14:55:44 / cg"
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
  1052
!
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
  1053
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1054
javaExceptionTable
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1055
    <resource: #obsolete>
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1056
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1057
    self obsoleteMethodWarning: 'Use #exceptionClasses  instead'.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1058
    ^ self exceptionClasses
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1059
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1060
    "Created: / 04-06-2011 / 18:16:23 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1061
    "Modified: / 01-08-2012 / 10:08:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1062
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1063
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1064
javaNumArgs
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1065
^ self argSignature size.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1066
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1067
    "Created: / 14-03-2011 / 15:50:58 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1068
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1069
90
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
  1070
lineNumber
2888
5b492b74975f Bugfix in JavaMethod>>lineNumber (missing return)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2870
diff changeset
  1071
    ^ self sourceLineNumber.
2717
16564a7101b8 Initial support for displaying only selected method's source in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2716
diff changeset
  1072
16564a7101b8 Initial support for displaying only selected method's source in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2716
diff changeset
  1073
    "Created: / 16-04-1996 / 12:34:04 / cg"
2888
5b492b74975f Bugfix in JavaMethod>>lineNumber (missing return)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2870
diff changeset
  1074
    "Modified: / 23-10-2013 / 10:48:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
90
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
  1075
!
918e2740098c resolve rewritten
cg
parents: 85
diff changeset
  1076
50
458467ce0e15 checkin from browser
cg
parents: 48
diff changeset
  1077
lineNumberTable
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1078
"/    lineNumberTable ifNil:[ lineNumberTable := Dictionary new.].
50
458467ce0e15 checkin from browser
cg
parents: 48
diff changeset
  1079
    ^ lineNumberTable
458467ce0e15 checkin from browser
cg
parents: 48
diff changeset
  1080
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1081
    "Created: / 16-04-1996 / 12:34:04 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1082
    "Modified: / 13-12-2010 / 11:06:40 / Jan Kurs <kurs.jan@post.cz>"
50
458467ce0e15 checkin from browser
cg
parents: 48
diff changeset
  1083
!
458467ce0e15 checkin from browser
cg
parents: 48
diff changeset
  1084
618
1ef28aa96092 added #sends: query
cg
parents: 611
diff changeset
  1085
literalsDetect:aBlock ifNone:exceptionBlock
1ef28aa96092 added #sends: query
cg
parents: 611
diff changeset
  1086
    "execute a one arg block for each of our literals.
1ef28aa96092 added #sends: query
cg
parents: 611
diff changeset
  1087
     return the first literal for which aBlock returns true"
1ef28aa96092 added #sends: query
cg
parents: 611
diff changeset
  1088
1ef28aa96092 added #sends: query
cg
parents: 611
diff changeset
  1089
    "/ sigh - must first extract all accessed literals ...
1ef28aa96092 added #sends: query
cg
parents: 611
diff changeset
  1090
    "/ must deparse the byteCode in order to do this.
1ef28aa96092 added #sends: query
cg
parents: 611
diff changeset
  1091
1ef28aa96092 added #sends: query
cg
parents: 611
diff changeset
  1092
    |walker|
1ef28aa96092 added #sends: query
cg
parents: 611
diff changeset
  1093
1ef28aa96092 added #sends: query
cg
parents: 611
diff changeset
  1094
    walker := JavaByteCodeEnumerator new.
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  1095
    walker literalAction:[:pc :slotIndex :const |
651
c4f8130fb962 checkin from browser
cg
parents: 637
diff changeset
  1096
        const isJavaMethodRef ifTrue:[
654
da8d060a3150 checkin from browser
cg
parents: 651
diff changeset
  1097
            (aBlock value:(const name)) ifTrue:[^ const name].
651
c4f8130fb962 checkin from browser
cg
parents: 637
diff changeset
  1098
        ] ifFalse:[
c4f8130fb962 checkin from browser
cg
parents: 637
diff changeset
  1099
            const isJavaClassRef ifTrue:[
654
da8d060a3150 checkin from browser
cg
parents: 651
diff changeset
  1100
                (aBlock value:(const name)) ifTrue:[^ const name].
651
c4f8130fb962 checkin from browser
cg
parents: 637
diff changeset
  1101
            ]
c4f8130fb962 checkin from browser
cg
parents: 637
diff changeset
  1102
        ]
c4f8130fb962 checkin from browser
cg
parents: 637
diff changeset
  1103
    ].
618
1ef28aa96092 added #sends: query
cg
parents: 611
diff changeset
  1104
    walker decompile:self to:nil.
654
da8d060a3150 checkin from browser
cg
parents: 651
diff changeset
  1105
    ^ nil
618
1ef28aa96092 added #sends: query
cg
parents: 611
diff changeset
  1106
1ef28aa96092 added #sends: query
cg
parents: 611
diff changeset
  1107
    "Created: / 9.11.1999 / 15:21:40 / cg"
654
da8d060a3150 checkin from browser
cg
parents: 651
diff changeset
  1108
    "Modified: / 24.12.1999 / 02:55:55 / cg"
618
1ef28aa96092 added #sends: query
cg
parents: 611
diff changeset
  1109
!
1ef28aa96092 added #sends: query
cg
parents: 611
diff changeset
  1110
85
888c37bbe4bb checkin from browser
cg
parents: 83
diff changeset
  1111
localVariableTable
888c37bbe4bb checkin from browser
cg
parents: 83
diff changeset
  1112
    ^ localVariableTable
888c37bbe4bb checkin from browser
cg
parents: 83
diff changeset
  1113
888c37bbe4bb checkin from browser
cg
parents: 83
diff changeset
  1114
    "
888c37bbe4bb checkin from browser
cg
parents: 83
diff changeset
  1115
     JavaMethod allInstancesDo:[:m| m localVariableTable notNil ifTrue:[self halt]]
888c37bbe4bb checkin from browser
cg
parents: 83
diff changeset
  1116
    "
888c37bbe4bb checkin from browser
cg
parents: 83
diff changeset
  1117
!
888c37bbe4bb checkin from browser
cg
parents: 83
diff changeset
  1118
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1119
mclass
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1120
    ^ self javaClass
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1121
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1122
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1123
mclass: anObject
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1124
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1125
    javaClass := anObject
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1126
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1127
    "Created: / 18-10-2010 / 19:01:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1128
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1129
2086
66b8f6529783 comment
Claus Gittinger <cg@exept.de>
parents: 750
diff changeset
  1130
methodArgAndVarNames
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1131
    ^ "((1 to:self numArgs) collect:[:i | 'arg' , i printString])"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1132
      self methodArgNames
2086
66b8f6529783 comment
Claus Gittinger <cg@exept.de>
parents: 750
diff changeset
  1133
      ,
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1134
      "((1 to:self numVars) collect:[:i | 'local' , i printString])"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1135
      self methodVarNames
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1136
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1137
    "Modified: / 23-11-2010 / 19:32:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
31
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
  1138
!
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
  1139
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1140
methodArgAndVarNamesInContext: context
2902
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1141
    | pc stop |
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1142
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1143
    self isNative ifTrue:[
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1144
        ^ self methodArgNames
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  1145
    ].
2902
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1146
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1147
    context isJavaContext ifTrue:[
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1148
        pc := context pc.
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1149
    ] ifFalse:[
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1150
        "/ It may happen that the context for Java method is not
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1151
        "/ a JavaContext. This is true for some code-saver functions
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1152
        "/ such as __retInst1(), __retSelf1() and so on. In that case,
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1153
        "/ method sould be simple enough to have no nested scopes
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1154
        "/ or local variables. Forcing pc := 0 therefore works fine
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1155
        pc := 0.
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1156
    ].
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1157
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1158
    localVariableTable isNil ifTrue:[^self methodArgNames , self methodVarNames ].
2902
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1159
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1160
    stop := context arg1Index - 1 + self numArgs + self numVars.
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1161
    stop := stop min: context size.
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1162
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1163
    ^(1 to: stop) collect:[:i|
2814
342fbc21cc23 Small fix in JavaMethod>>argAndVarNamesInContext:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2791
diff changeset
  1164
        (localVariableTable nameForSlot: i - 1 atPC: pc) ? '<inaccessible>'.
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1165
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1166
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1167
    "Created: / 18-12-2012 / 18:17:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2902
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1168
    "Modified: / 05-11-2013 / 17:28:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1169
!
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1170
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1171
methodArgAndVarValuesInContext: context
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1172
    | pc stop |
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1173
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1174
    localVariableTable isNil ifTrue:[
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1175
        | values |
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1176
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1177
        values := Array new: context size.
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1178
        values replaceFrom: 1  count: context size with: context  startingAt: 1.
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1179
        ^ values.
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1180
    ].
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1181
    context isJavaContext ifTrue:[
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1182
        pc := context pc.
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1183
    ] ifFalse:[
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1184
        "/ It may happen that the context for Java method is not
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1185
        "/ a JavaContext. This is true for some code-saver functions
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1186
        "/ such as __retInst1(), __retSelf1() and so on. In that case,
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1187
        "/ method sould be simple enough to have no nested scopes
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1188
        "/ or local variables. Forcing pc := 0 therefore works fine
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1189
        pc := 0.
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1190
    ].
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1191
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1192
    stop := context arg1Index - 1 + self numArgs + self numVars.
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1193
    stop := stop min: context size.
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1194
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1195
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  1196
    ^(1 to: stop) collect:[:i|
2902
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1197
        (localVariableTable nameForSlot: i - 1 atPC: pc) notNil ifTrue:[
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1198
            context at: i
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1199
        ] ifFalse:[
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1200
            nil
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1201
        ].
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1202
    ].
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1203
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1204
    "Created: / 04-11-2013 / 18:53:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  1205
    "Modified: / 05-11-2013 / 17:28:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1206
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1207
31
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
  1208
methodArgNames
3083
ccde6af7278c JavaContext:
Claus Gittinger
parents: 3028
diff changeset
  1209
    |nA "{ Class: SmallInteger }" isStatic|
ccde6af7278c JavaContext:
Claus Gittinger
parents: 3028
diff changeset
  1210
ccde6af7278c JavaContext:
Claus Gittinger
parents: 3028
diff changeset
  1211
    isStatic := self isStatic.
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 238
diff changeset
  1212
    nA := self numArgs.
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  1213
    ^ 1 to:nA collect: [:argIndex |
3083
ccde6af7278c JavaContext:
Claus Gittinger
parents: 3028
diff changeset
  1214
            |slot name|
ccde6af7278c JavaContext:
Claus Gittinger
parents: 3028
diff changeset
  1215
ccde6af7278c JavaContext:
Claus Gittinger
parents: 3028
diff changeset
  1216
            "/ search for an entry with that index (slot),
ccde6af7278c JavaContext:
Claus Gittinger
parents: 3028
diff changeset
  1217
            "/ which has is valid at PC 0
ccde6af7278c JavaContext:
Claus Gittinger
parents: 3028
diff changeset
  1218
ccde6af7278c JavaContext:
Claus Gittinger
parents: 3028
diff changeset
  1219
            localVariableTable notNil ifTrue:[
ccde6af7278c JavaContext:
Claus Gittinger
parents: 3028
diff changeset
  1220
                isStatic ifTrue:[
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1221
                    slot := argIndex - 1
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1222
                ] ifFalse:[
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1223
                    slot := argIndex "/+ 1
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1224
                ].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1225
                name := localVariableTable nameForSlot:slot atPC:0.
3083
ccde6af7278c JavaContext:
Claus Gittinger
parents: 3028
diff changeset
  1226
            ].
ccde6af7278c JavaContext:
Claus Gittinger
parents: 3028
diff changeset
  1227
            name isNil ifTrue:[
ccde6af7278c JavaContext:
Claus Gittinger
parents: 3028
diff changeset
  1228
                name := 'arg' , argIndex printString
ccde6af7278c JavaContext:
Claus Gittinger
parents: 3028
diff changeset
  1229
            ].
ccde6af7278c JavaContext:
Claus Gittinger
parents: 3028
diff changeset
  1230
            name
102
de5ab089cf47 checkin from browser
cg
parents: 90
diff changeset
  1231
    ].
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1232
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1233
    "Modified: / 23-11-2010 / 19:47:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1234
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1235
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1236
methodVarNames
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1237
    |nV|
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1238
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1239
    nV := self numVars.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1240
    localVariableTable notNil ifTrue:[
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1241
        ^ (self numArgs + 1 to: self numArgs + nV) collect:
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  1242
            [:argIndex |
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1243
                |slot name|
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1244
                "/ search for an entry with that index (slot),
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1245
                "/ which has is valid at PC 0
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1246
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1247
                self isStatic ifTrue:[
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1248
                    slot := argIndex - 1
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1249
                ] ifFalse:[
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1250
                    slot := argIndex"/ + 1
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1251
                ].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1252
                name := localVariableTable nameForSlot:slot atPC:0.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1253
                name isNil ifTrue:[
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1254
                    'local' , argIndex printString
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1255
                ] ifFalse:[
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1256
                    name
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1257
                ].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1258
            ]
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1259
    ].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1260
    ^ (1 to:nV) collect:[:i | 'local' , i printString]
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1261
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1262
    "Created: / 23-11-2010 / 19:28:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
31
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
  1263
!
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
  1264
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
  1265
name
2555
655f39b36a10 Changed usage of deprecated #copyWithoutLast: to #copyButLast:
Stefan Vogel <sv@exept.de>
parents: 2551
diff changeset
  1266
    ^ (selector copyButLast:descriptor size) asSymbol
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
  1267
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
  1268
    "Created: 16.4.1996 / 11:34:22 / cg"
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
  1269
!
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
  1270
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1271
nameSpaceName
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1272
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1273
    ^''
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1274
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1275
    "Created: / 18-10-2010 / 19:10:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1276
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1277
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1278
numJArgs
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1279
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1280
    ^self numberOfJavaArgs
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1281
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1282
    "Created: / 25-10-2011 / 10:50:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1283
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1284
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1285
numJavaArgs
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1286
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1287
    ^self numberOfJavaArgs
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1288
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1289
    "Created: / 25-10-2011 / 10:50:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
118
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
  1290
!
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
  1291
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1292
numberOfJavaArgs
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1293
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1294
    ^(accessFlags bitAnd: 16r00FF0000) rightShift: 16.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1295
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1296
    "Created: / 25-10-2011 / 10:45:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1297
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1298
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1299
numberOfJavaArgs: nArgs
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1300
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1301
    ( nArgs > 16rFF ) ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1302
        ArgumentError raiseRequestWith:self errorString:'too many args method  - ', nArgs printString.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1303
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1304
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  1305
    accessFlags := accessFlags bitOr:
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1306
        ((nArgs bitAnd: 16rFF) bitShift: 16)
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1307
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1308
    "Created: / 25-10-2011 / 10:43:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
  1309
!
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
  1310
2158
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1311
originalMethodIfWrapped
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1312
    "return the method the receiver is wrapping - none here"
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1313
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1314
    ^ self
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1315
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1316
    "Created: / 22-10-2010 / 11:46:07 / cg"
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1317
!
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1318
175
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1319
previousVersion
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1320
    ^ nil
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1321
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1322
    "Created: 30.7.1997 / 15:56:18 / cg"
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1323
!
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1324
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1325
previousVersionCode
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1326
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1327
    ^nil
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1328
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1329
    "Created: / 18-10-2010 / 20:15:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1330
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1331
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
  1332
retValSignature
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1333
    ^ self class retValSpecFromSignature:descriptor in:nil
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
  1334
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  1335
    "Modified: / 8.1.1998 / 19:06:40 / cg"
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
  1336
!
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
  1337
123
4a5d4ac95782 checkin from browser
cg
parents: 118
diff changeset
  1338
returnType
378
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
  1339
    "/ ^ returnType
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1340
    ^ self class typeFromSignature:descriptor in:nil.
378
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
  1341
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
  1342
    "Modified: / 16.10.1998 / 00:17:43 / cg"
123
4a5d4ac95782 checkin from browser
cg
parents: 118
diff changeset
  1343
!
4a5d4ac95782 checkin from browser
cg
parents: 118
diff changeset
  1344
322
567088a5a1b0 partial support for getMethod0 & invokeMethod.
cg
parents: 321
diff changeset
  1345
returnTypeClass
378
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
  1346
    |cls returnType|
322
567088a5a1b0 partial support for getMethod0 & invokeMethod.
cg
parents: 321
diff changeset
  1347
378
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
  1348
    (returnType := self returnType) isNil ifTrue:[
2158
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1349
        self halt.
322
567088a5a1b0 partial support for getMethod0 & invokeMethod.
cg
parents: 321
diff changeset
  1350
    ].
567088a5a1b0 partial support for getMethod0 & invokeMethod.
cg
parents: 321
diff changeset
  1351
    cls := Java at:returnType.
567088a5a1b0 partial support for getMethod0 & invokeMethod.
cg
parents: 321
diff changeset
  1352
    cls notNil ifTrue:[^ cls].
567088a5a1b0 partial support for getMethod0 & invokeMethod.
cg
parents: 321
diff changeset
  1353
567088a5a1b0 partial support for getMethod0 & invokeMethod.
cg
parents: 321
diff changeset
  1354
    returnType == #void ifTrue:[
2158
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1355
        ^ nil
322
567088a5a1b0 partial support for getMethod0 & invokeMethod.
cg
parents: 321
diff changeset
  1356
    ].
567088a5a1b0 partial support for getMethod0 & invokeMethod.
cg
parents: 321
diff changeset
  1357
    returnType == #double ifTrue:[
2158
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1358
        'warning: no returnTypeClass for double' printCR.
334
638045537cf7 *** empty log message ***
cg
parents: 332
diff changeset
  1359
"/        self halt:'no returnTypeClass for double'.
2158
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1360
        ^ nil
322
567088a5a1b0 partial support for getMethod0 & invokeMethod.
cg
parents: 321
diff changeset
  1361
    ].
567088a5a1b0 partial support for getMethod0 & invokeMethod.
cg
parents: 321
diff changeset
  1362
    returnType == #float ifTrue:[
2158
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1363
        'warning: no returnTypeClass for float' printCR.
334
638045537cf7 *** empty log message ***
cg
parents: 332
diff changeset
  1364
"/        self halt:'no returnTypeClass for float'.
2158
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1365
        ^ nil
322
567088a5a1b0 partial support for getMethod0 & invokeMethod.
cg
parents: 321
diff changeset
  1366
    ].
567088a5a1b0 partial support for getMethod0 & invokeMethod.
cg
parents: 321
diff changeset
  1367
    returnType == #long ifTrue:[
2158
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1368
        'warning: no returnTypeClass for long' printCR.
334
638045537cf7 *** empty log message ***
cg
parents: 332
diff changeset
  1369
"/        self halt:'no returnTypeClass for long'.
2158
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1370
        ^ nil
334
638045537cf7 *** empty log message ***
cg
parents: 332
diff changeset
  1371
    ].
638045537cf7 *** empty log message ***
cg
parents: 332
diff changeset
  1372
    returnType == #int ifTrue:[
2158
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1373
        'warning: no returnTypeClass for int' printCR.
334
638045537cf7 *** empty log message ***
cg
parents: 332
diff changeset
  1374
"/        self halt:'no returnTypeClass for int'.
2158
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1375
        ^ nil
334
638045537cf7 *** empty log message ***
cg
parents: 332
diff changeset
  1376
    ].
638045537cf7 *** empty log message ***
cg
parents: 332
diff changeset
  1377
    returnType == #boolean ifTrue:[
2158
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1378
        'warning: no returnTypeClass for boolean' printCR.
334
638045537cf7 *** empty log message ***
cg
parents: 332
diff changeset
  1379
"/        self halt:'no returnTypeClass for boolean'.
2158
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1380
        ^ nil
322
567088a5a1b0 partial support for getMethod0 & invokeMethod.
cg
parents: 321
diff changeset
  1381
    ].
567088a5a1b0 partial support for getMethod0 & invokeMethod.
cg
parents: 321
diff changeset
  1382
    self halt.
567088a5a1b0 partial support for getMethod0 & invokeMethod.
cg
parents: 321
diff changeset
  1383
    ^ nil
567088a5a1b0 partial support for getMethod0 & invokeMethod.
cg
parents: 321
diff changeset
  1384
567088a5a1b0 partial support for getMethod0 & invokeMethod.
cg
parents: 321
diff changeset
  1385
    "Created: / 13.2.1998 / 15:08:26 / cg"
378
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
  1386
    "Modified: / 16.10.1998 / 00:16:07 / cg"
322
567088a5a1b0 partial support for getMethod0 & invokeMethod.
cg
parents: 321
diff changeset
  1387
!
567088a5a1b0 partial support for getMethod0 & invokeMethod.
cg
parents: 321
diff changeset
  1388
116
7d612d4450c0 *** empty log message ***
cg
parents: 113
diff changeset
  1389
returnsDouble
378
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
  1390
    ^ self returnType == #double
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
  1391
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
  1392
    "Modified: / 16.10.1998 / 00:18:24 / cg"
116
7d612d4450c0 *** empty log message ***
cg
parents: 113
diff changeset
  1393
!
7d612d4450c0 *** empty log message ***
cg
parents: 113
diff changeset
  1394
72
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
  1395
returnsLong
378
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
  1396
    ^ self returnType == #long
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
  1397
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
  1398
    "Modified: / 16.10.1998 / 00:18:41 / cg"
72
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
  1399
!
9427aa6a8528 *** empty log message ***
cg
parents: 64
diff changeset
  1400
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
  1401
returnsVoid
378
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
  1402
    ^ self returnType == #void
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
  1403
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1404
    "Modified: / 16-10-1998 / 00:18:53 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1405
    "Modified: / 22-03-2011 / 12:27:02 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
  1406
!
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
  1407
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  1408
selector
378
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
  1409
    "/ could theoretically be extracted from my classes
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
  1410
    "/ methodDictionary via:
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
  1411
    "/  ^ javaClass methodDictionary keyAtValue:self ifAbsent:nil.
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
  1412
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  1413
    ^ selector
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  1414
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  1415
    "Created: / 7.1.1998 / 14:05:11 / cg"
378
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
  1416
    "Modified: / 16.10.1998 / 13:41:06 / cg"
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  1417
!
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  1418
27
4560bb77bb36 checkin from browser
cg
parents: 19
diff changeset
  1419
signature
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1420
    ^ signature
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1421
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1422
    "Modified: / 04-12-2011 / 19:39:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
31
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
  1423
!
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
  1424
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
  1425
source
2716
1cca77810e04 Initial support for source file partitioning using eclipse parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2708
diff changeset
  1426
    | sourceString |
1cca77810e04 Initial support for source file partitioning using eclipse parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2708
diff changeset
  1427
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1428
    (self isSynthetic or:[ForceByteCodeDisplay == true]) ifTrue:[
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1429
        ^ self decompiledBytecode
169
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
  1430
    ].
2716
1cca77810e04 Initial support for source file partitioning using eclipse parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2708
diff changeset
  1431
1cca77810e04 Initial support for source file partitioning using eclipse parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2708
diff changeset
  1432
    sourceString := javaClass source.
1cca77810e04 Initial support for source file partitioning using eclipse parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2708
diff changeset
  1433
    sourceString isNil ifTrue:[
1cca77810e04 Initial support for source file partitioning using eclipse parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2708
diff changeset
  1434
        ^ self decompiledSource.
1cca77810e04 Initial support for source file partitioning using eclipse parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2708
diff changeset
  1435
    ].
2729
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
  1436
    ShowFullSource ifTrue:[ ^ sourceString ].
2725
258b8c6de530 STC bug workaround in JavaMethod>>source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2722
diff changeset
  1437
    source notNil ifTrue:[
258b8c6de530 STC bug workaround in JavaMethod>>source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2722
diff changeset
  1438
        ^ source readFrom: sourceString.
258b8c6de530 STC bug workaround in JavaMethod>>source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2722
diff changeset
  1439
    ].
258b8c6de530 STC bug workaround in JavaMethod>>source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2722
diff changeset
  1440
258b8c6de530 STC bug workaround in JavaMethod>>source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2722
diff changeset
  1441
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  1442
    "/ stx:libjava/tools may not be loaded...
2725
258b8c6de530 STC bug workaround in JavaMethod>>source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2722
diff changeset
  1443
    JavaSourceDocument notNil ifTrue:[
2716
1cca77810e04 Initial support for source file partitioning using eclipse parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2708
diff changeset
  1444
        "/ As a side effect, this fills in source references for all methods.
1cca77810e04 Initial support for source file partitioning using eclipse parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2708
diff changeset
  1445
        "/ see JavaSourceDocument
2720
d55ab9c66bb3 Bugfix in JavaMethod>>source - wait until the source file is scanned for source positions...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2717
diff changeset
  1446
        | document |
d55ab9c66bb3 Bugfix in JavaMethod>>source - wait until the source file is scanned for source positions...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2717
diff changeset
  1447
2729
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
  1448
        ((document := self sourceDocument) notNil and:[document sourceTreeOrNilIfParsing notNil]) ifTrue:[
2725
258b8c6de530 STC bug workaround in JavaMethod>>source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2722
diff changeset
  1449
            ^ source readFrom: sourceString.
2716
1cca77810e04 Initial support for source file partitioning using eclipse parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2708
diff changeset
  1450
        ]
2725
258b8c6de530 STC bug workaround in JavaMethod>>source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2722
diff changeset
  1451
    ].
258b8c6de530 STC bug workaround in JavaMethod>>source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2722
diff changeset
  1452
    ^ sourceString
169
269f334e9f34 *** empty log message ***
cg
parents: 168
diff changeset
  1453
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1454
    "Modified: / 04-01-1998 / 13:48:35 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1455
    "Modified: / 13-12-2010 / 11:06:51 / Jan Kurs <kurs.jan@post.cz>"
2729
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
  1456
    "Modified: / 14-09-2013 / 12:01:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2717
16564a7101b8 Initial support for displaying only selected method's source in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2716
diff changeset
  1457
!
16564a7101b8 Initial support for displaying only selected method's source in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2716
diff changeset
  1458
16564a7101b8 Initial support for displaying only selected method's source in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2716
diff changeset
  1459
sourceDocument
16564a7101b8 Initial support for displaying only selected method's source in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2716
diff changeset
  1460
    | doc |
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  1461
    "/ stx:libjava/tools may not be loaded...
2717
16564a7101b8 Initial support for displaying only selected method's source in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2716
diff changeset
  1462
    JavaSourceDocument notNil ifTrue:[
16564a7101b8 Initial support for displaying only selected method's source in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2716
diff changeset
  1463
        doc := JavaSourceDocument cachedDocumentFor: javaClass.
16564a7101b8 Initial support for displaying only selected method's source in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2716
diff changeset
  1464
        doc isNil ifTrue:[
16564a7101b8 Initial support for displaying only selected method's source in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2716
diff changeset
  1465
            doc := JavaSourceDocument for: javaClass.
16564a7101b8 Initial support for displaying only selected method's source in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2716
diff changeset
  1466
            JavaSourceDocument cachedDocumentFor: javaClass put: doc.
16564a7101b8 Initial support for displaying only selected method's source in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2716
diff changeset
  1467
        ].
16564a7101b8 Initial support for displaying only selected method's source in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2716
diff changeset
  1468
        ^ doc
16564a7101b8 Initial support for displaying only selected method's source in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2716
diff changeset
  1469
    ]
16564a7101b8 Initial support for displaying only selected method's source in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2716
diff changeset
  1470
16564a7101b8 Initial support for displaying only selected method's source in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2716
diff changeset
  1471
    "Created: / 07-09-2013 / 02:29:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
31
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
  1472
!
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
  1473
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
  1474
sourceFilename
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
  1475
    ^ javaClass sourceFile
175
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1476
!
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1477
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1478
sourceLineNumber
2722
1527fdb0c92f Return line number withing method source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2720
diff changeset
  1479
    "Return the line number of method declaration
1527fdb0c92f Return line number withing method source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2720
diff changeset
  1480
     withing method's source"
1527fdb0c92f Return line number withing method source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2720
diff changeset
  1481
2726
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  1482
    ^ ShowFullSource ifFalse:[
2722
1527fdb0c92f Return line number withing method source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2720
diff changeset
  1483
        "Showing only method's source..."
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  1484
        source notNil
2726
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  1485
            ifTrue:[source line0 - source lineH + 1]
2722
1527fdb0c92f Return line number withing method source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2720
diff changeset
  1486
            ifFalse:[1].
2726
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  1487
    ] ifTrue:[
2722
1527fdb0c92f Return line number withing method source.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2720
diff changeset
  1488
        "Showing full source..."
2726
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  1489
        source notNil ifTrue:[
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  1490
            source lineH
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  1491
        ] ifFalse:[
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  1492
            self firstInstructionLineNumber - 2.
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  1493
        ]
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1494
    ].
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1495
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1496
    "Created: / 30-07-1997 / 15:40:45 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1497
    "Modified: / 13-12-2010 / 23:46:30 / Marcel Hlopko <hlopik@gmail.com>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1498
    "Modified: / 08-01-2011 / 16:20:40 / Jan Kurs <kurs.jan@post.cz>"
2726
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  1499
    "Modified: / 11-09-2013 / 03:24:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1500
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1501
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1502
wrapper
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1503
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1504
    ^nil
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1505
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1506
    "Created: / 18-10-2010 / 19:11:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1507
! !
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1508
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1509
!JavaMethod methodsFor:'compiler interface'!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1510
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1511
flushCode
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1512
    "Flushes jitted code, effectively cause a recompile"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1513
    self code: nil.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1514
    ObjectMemory flushCachesForSelector: selector.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1515
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1516
    "Created: / 15-10-2012 / 21:03:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1517
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1518
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1519
mcompile
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1520
    "__mcompile(OBJ aMethod, unsigned char *bytecode, int nBytes, int nArgs, OBJ receiver, OBJ selector, OBJ srchClass, OBJ *pArgsOrNull)"
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  1521
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1522
    | bytecode  nBytes  nArgs  receiver  mySelector  srchClass  pArgsOrNull  retVal |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1523
    bytecode := self byteCode.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1524
    nBytes := self byteCode size.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1525
    nArgs := self numArgs.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1526
    receiver := nil.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1527
    mySelector := self selector.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1528
    srchClass := self mclass.
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  1529
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1530
%{
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1531
retVal = __mcompile(self, __ByteArrayInstPtr(bytecode), __intVal(nBytes), __intVal(nArgs), receiver, mySelector, srchClass, pArgsOrNull);
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1532
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1533
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1534
%}.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1535
self halt.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1536
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1537
    "Created: / 24-02-2012 / 11:39:13 / m"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1538
    "Modified: / 24-02-2012 / 14:00:04 / Marcel Hlopko <hlopik@gmail.com>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1539
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1540
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1541
programmingLanguage
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1542
    "Returns a programming language of the method"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1543
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1544
    "Do not return JavaLanguage unconditionally here.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1545
     Consider another JVM-based languages (such as Groovy)"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1546
    ^javaClass programmingLanguage
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1547
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1548
    "Created: / 26-10-2010 / 23:42:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2678
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  1549
!
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  1550
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  1551
updateFrom: anotherMethod
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  1552
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  1553
    self class allInstVarNames keysAndValuesDo:[:index :name|
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  1554
        (#(#'code*' #'javaClass') includes: name) ifFalse:[
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  1555
            self instVarAt: index put: (anotherMethod instVarAt: index)
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  1556
        ]
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  1557
    ]
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  1558
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  1559
    "Created: / 19-04-2013 / 00:08:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
  1560
! !
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
  1561
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  1562
!JavaMethod methodsFor:'debugging'!
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  1563
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  1564
breakPoint
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  1565
    Debugger enter:thisContext sender withMessage:'breakpoint'
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  1566
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  1567
    "Modified: / 9.1.1998 / 23:01:17 / cg"
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  1568
!
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  1569
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  1570
clearBreakPoint
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1571
    | clsInEvent |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1572
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1573
    accessFlags := (accessFlags bitClear:A_BREAKPOINT).
449
c9910d4dd515 *** empty log message ***
cg
parents: 431
diff changeset
  1574
    self hasCode ifTrue:[
2158
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1575
        MessageTracer unwrapMethod:self
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1576
    ] ifFalse:[
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  1577
        clsInEvent := self isStatic
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1578
                        ifTrue:[ javaClass theMetaclass ]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1579
                        ifFalse:[ javaClass ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1580
        Smalltalk changed:#methodTrap with:{ clsInEvent . selector }
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1581
    ]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1582
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1583
    "Modified: / 13-11-1998 / 23:31:00 / cg"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1584
    "Modified: / 30-05-2012 / 19:31:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  1585
!
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  1586
257
f0d546da7ac3 checkin from browser
cg
parents: 256
diff changeset
  1587
isCounting
f0d546da7ac3 checkin from browser
cg
parents: 256
diff changeset
  1588
    ^ false.
f0d546da7ac3 checkin from browser
cg
parents: 256
diff changeset
  1589
f0d546da7ac3 checkin from browser
cg
parents: 256
diff changeset
  1590
    "Created: / 12.1.1998 / 20:02:23 / cg"
f0d546da7ac3 checkin from browser
cg
parents: 256
diff changeset
  1591
!
f0d546da7ac3 checkin from browser
cg
parents: 256
diff changeset
  1592
f0d546da7ac3 checkin from browser
cg
parents: 256
diff changeset
  1593
isCountingMemoryUsage
f0d546da7ac3 checkin from browser
cg
parents: 256
diff changeset
  1594
    ^ false.
f0d546da7ac3 checkin from browser
cg
parents: 256
diff changeset
  1595
f0d546da7ac3 checkin from browser
cg
parents: 256
diff changeset
  1596
    "Created: / 12.1.1998 / 20:03:22 / cg"
f0d546da7ac3 checkin from browser
cg
parents: 256
diff changeset
  1597
!
f0d546da7ac3 checkin from browser
cg
parents: 256
diff changeset
  1598
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  1599
setBreakPoint
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1600
    | clsInEvent |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1601
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1602
    accessFlags := (accessFlags bitOr:A_BREAKPOINT).
449
c9910d4dd515 *** empty log message ***
cg
parents: 431
diff changeset
  1603
    self hasCode ifTrue:[
2158
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1604
        MessageTracer trapMethod:self
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1605
    ] ifFalse:[
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  1606
        clsInEvent := self isStatic
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1607
                        ifTrue:[ javaClass theMetaclass ]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1608
                        ifFalse:[ javaClass ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1609
        Smalltalk changed:#methodTrap with:{ clsInEvent . selector }
449
c9910d4dd515 *** empty log message ***
cg
parents: 431
diff changeset
  1610
    ].
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1611
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1612
    "Modified: / 13-11-1998 / 23:30:45 / cg"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1613
    "Modified: / 30-05-2012 / 19:30:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  1614
! !
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  1615
18
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
  1616
!JavaMethod methodsFor:'decompiling'!
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
  1617
175
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1618
decompileSourceTo:aStream
637
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1619
    |argNames|
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1620
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1621
    byteCode isNil ifTrue:[
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1622
        self isPublic ifTrue:[
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1623
            aStream nextPutAll:'public '.
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1624
        ].
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1625
        self isProtected ifTrue:[
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1626
            aStream nextPutAll:'protected '.
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1627
        ].
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1628
        self isPrivate ifTrue:[
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1629
            aStream nextPutAll:'private '.
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1630
        ].
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1631
        self isStatic ifTrue:[
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1632
            aStream nextPutAll:'static '.
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1633
        ].
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1634
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1635
        self isNative ifTrue:[
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1636
            aStream nextPutAll:'native '.
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1637
        ].
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1638
        self isAbstract ifTrue:[
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1639
            aStream nextPutAll:'abstract '.
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1640
        ].
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1641
        argNames := #('arg1' 'arg2' 'arg3' 'arg4' 'arg5' 'arg6' 'arg7' 'arg8' 'arg9').
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1642
        aStream nextPutAll:(self signatureNameWithArgNames:argNames).
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1643
        aStream nextPutAll:';'; cr.
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1644
        ^ self
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1645
    ].
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1646
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1647
    "
637
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1648
    JavaDeparser isNil ifTrue:[
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1649
        aStream nextPutAll:'// Sorry - no decompiler'.
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1650
        ^ self
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1651
    ].
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1652
    "
637
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1653
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1654
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 238
diff changeset
  1655
"/    self isNative ifFalse:[
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 238
diff changeset
  1656
"/        self isAbstract ifFalse:[
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1657
            aStream nextPutAll:'// source not available...'; cr.
637
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1658
            SignalSet anySignal handle:[:ex |
2551
6b1262d7f5a0 class: JavaMethod
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
  1659
                ex creator == Object haltSignal ifTrue:[ex reject].
6b1262d7f5a0 class: JavaMethod
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
  1660
                ex creator == MessageTracer breakpointSignal ifTrue:[ex reject].
6b1262d7f5a0 class: JavaMethod
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
  1661
                ex creator == Signal noHandlerSignal ifTrue:[ex reject].
506
81d3ef12bdc9 *** empty log message ***
cg
parents: 504
diff changeset
  1662
637
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1663
                aStream nextPutAll:'error while decompiling:'.
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1664
                aStream cr; cr; spaces:4.
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1665
                aStream nextPutAll:ex errorString.
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1666
                aStream cr.
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1667
                aStream nextPutAll:ex suspendedContext printString.
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1668
                aStream cr.
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1669
                aStream nextPutAll:ex suspendedContext sender printString.
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1670
                aStream cr.
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1671
                aStream nextPutAll:ex suspendedContext sender sender printString.
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1672
                aStream cr.
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1673
                aStream nextPutAll:ex suspendedContext sender sender sender printString.
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1674
                aStream cr.
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1675
                aStream nextPutAll:ex suspendedContext sender sender sender sender printString.
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1676
                aStream cr.
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1677
                aStream nextPutAll:ex suspendedContext sender sender sender sender sender printString.
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1678
                aStream cr.
2095
6773680aeb85 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2091
diff changeset
  1679
                aStream nextPutAll:ex suspendedContext sender sender sender sender sender sender printString.
6773680aeb85 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2091
diff changeset
  1680
                aStream cr.
6773680aeb85 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2091
diff changeset
  1681
                aStream nextPutAll:ex suspendedContext sender sender sender sender sender sender sender printString.
6773680aeb85 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2091
diff changeset
  1682
                aStream cr.
6773680aeb85 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2091
diff changeset
  1683
                aStream nextPutAll:ex suspendedContext sender sender sender sender sender sender sender sender printString.
6773680aeb85 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2091
diff changeset
  1684
                aStream cr.
506
81d3ef12bdc9 *** empty log message ***
cg
parents: 504
diff changeset
  1685
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1686
                "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1687
                JavaByteCodeDisassembler isNil ifTrue:[
637
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1688
                    aStream nextPutAll:'// Sorry - no decompiler'
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1689
                ] ifFalse:[
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1690
                    JavaByteCodeDisassembler diassemble:self to:aStream.
637
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1691
                ].
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1692
                "
637
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1693
                ex return
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1694
            ] do:[
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1695
                "aStream nextPutAll:(JavaDeparser decompile:self)."
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  1696
                JavaByteCodeDisassembler diassemble:self to:aStream.
637
d2e91e3e97c5 checkin from browser
cg
parents: 625
diff changeset
  1697
            ].
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 238
diff changeset
  1698
"/        ].
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 238
diff changeset
  1699
"/    ].
18
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
  1700
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1701
    "Created: / 30-07-1997 / 16:28:09 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1702
    "Modified: / 21-12-1999 / 14:31:54 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1703
    "Modified: / 22-03-2011 / 21:34:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
175
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1704
!
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1705
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1706
decompiler
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1707
    ^ JavaDecompiler
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1708
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  1709
    "Created: 30.7.1997 / 16:36:48 / cg"
261
d95d5a3cc475 lots of new stuff
cg
parents: 257
diff changeset
  1710
!
d95d5a3cc475 lots of new stuff
cg
parents: 257
diff changeset
  1711
449
c9910d4dd515 *** empty log message ***
cg
parents: 431
diff changeset
  1712
isMethod
c9910d4dd515 *** empty log message ***
cg
parents: 431
diff changeset
  1713
    "return true, if the receiver is some kind of method;
c9910d4dd515 *** empty log message ***
cg
parents: 431
diff changeset
  1714
     true returned here - the method is redefined from Object."
c9910d4dd515 *** empty log message ***
cg
parents: 431
diff changeset
  1715
c9910d4dd515 *** empty log message ***
cg
parents: 431
diff changeset
  1716
    ^ true
c9910d4dd515 *** empty log message ***
cg
parents: 431
diff changeset
  1717
c9910d4dd515 *** empty log message ***
cg
parents: 431
diff changeset
  1718
    "Created: / 13.11.1998 / 23:57:40 / cg"
c9910d4dd515 *** empty log message ***
cg
parents: 431
diff changeset
  1719
!
c9910d4dd515 *** empty log message ***
cg
parents: 431
diff changeset
  1720
261
d95d5a3cc475 lots of new stuff
cg
parents: 257
diff changeset
  1721
originalMethod
d95d5a3cc475 lots of new stuff
cg
parents: 257
diff changeset
  1722
    ^ self
d95d5a3cc475 lots of new stuff
cg
parents: 257
diff changeset
  1723
d95d5a3cc475 lots of new stuff
cg
parents: 257
diff changeset
  1724
    "Created: / 13.1.1998 / 15:03:05 / cg"
18
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
  1725
! !
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
  1726
277
511c3bb153b7 jdk1.2 stuff.
cg
parents: 275
diff changeset
  1727
!JavaMethod methodsFor:'error handling'!
511c3bb153b7 jdk1.2 stuff.
cg
parents: 275
diff changeset
  1728
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1729
errorInvalidClassRefAt: index
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1730
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1731
    "Sent by the VM when an invalid entry in contant pool
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1732
     is encountered - for instance when the VM expects
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1733
     a classref but the entry is not a classref"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1734
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1735
    "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1736
    javaClass constantPool at: index.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1737
    "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1738
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1739
    JavaInvalidRefError new
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1740
        javaClass: javaClass;
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1741
        index: index;
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1742
        raiseRequest
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1743
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1744
    "Created: / 18-07-2011 / 23:33:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1745
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1746
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1747
errorInvalidFieldRefAt: index
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1748
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1749
    "Sent by the VM when an invalid entry in contant pool
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1750
     is encountered - for instance when the VM expects
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1751
     a classref but the entry is not a classref"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1752
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1753
    "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1754
    javaClass constantPool at: index.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1755
    "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1756
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1757
    JavaInvalidRefError new
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1758
        javaClass: javaClass;
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1759
        index: index;
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1760
        raiseRequest
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1761
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1762
    "Created: / 18-07-2011 / 23:33:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1763
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1764
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1765
errorInvalidMethodRefAt: index
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1766
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1767
    "Sent by the VM when an invalid entry in contant pool
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1768
     is encountered - for instance when the VM expects
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1769
     a classref but the entry is not a classref"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1770
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1771
    "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1772
    javaClass constantPool at: index.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1773
    "
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1774
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1775
    JavaInvalidRefError new
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1776
        javaClass: javaClass;
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1777
        index: index;
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1778
        raiseRequest
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1779
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1780
    "Created: / 18-07-2011 / 19:59:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1781
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1782
277
511c3bb153b7 jdk1.2 stuff.
cg
parents: 275
diff changeset
  1783
invalidByteCode
511c3bb153b7 jdk1.2 stuff.
cg
parents: 275
diff changeset
  1784
    self isAbstract ifTrue:[
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1785
        ^ AbstractMethodInvokationSignal raise.
277
511c3bb153b7 jdk1.2 stuff.
cg
parents: 275
diff changeset
  1786
    ].
3197
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
  1787
    ((self class numArgsFromDescriptor:descriptor) > self class maxNumberOfArguments) ifTrue:[
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1788
        ^ self error:'method cannot be executed - too many args'
309
e1bfd26cadae *** empty log message ***
cg
parents: 277
diff changeset
  1789
    ].
277
511c3bb153b7 jdk1.2 stuff.
cg
parents: 275
diff changeset
  1790
    ^ super invalidByteCode
511c3bb153b7 jdk1.2 stuff.
cg
parents: 275
diff changeset
  1791
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1792
    "Created: / 27-01-1998 / 21:48:01 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1793
    "Modified: / 14-08-2011 / 19:29:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
378
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
  1794
!
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
  1795
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
  1796
invalidMethodRef
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
  1797
    self halt.
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
  1798
    ^ nil.
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
  1799
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
  1800
    "Modified: / 27.1.1998 / 21:50:19 / cg"
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
  1801
    "Created: / 16.10.1998 / 11:27:21 / cg"
594
0d5fea9542d3 checkin from browser
cg
parents: 525
diff changeset
  1802
!
0d5fea9542d3 checkin from browser
cg
parents: 525
diff changeset
  1803
0d5fea9542d3 checkin from browser
cg
parents: 525
diff changeset
  1804
nullClassPointer
0d5fea9542d3 checkin from browser
cg
parents: 525
diff changeset
  1805
    JavaVM throwClassNotFoundException
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1806
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1807
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1808
wrongNumberOfArguments:numArgsGiven
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1809
    "{ Pragma: +optSpace }"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1810
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1811
    "this error is triggered by the VM, if a method is called with a wrong number
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  1812
     of arguments.
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1813
     This only applies to #valueWithReceiverXXX and #perform:withArguments: - sends.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1814
     With a normal send, this error cannot happen."
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1815
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1816
    ^ JavaVM
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1817
        throwIllegalArgumentException:(' - %1 got %2 arg(s) where %3 expected'
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1818
                        bindWith:self class name
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1819
                        with:numArgsGiven
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1820
                        with:self numArgs)
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1821
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1822
    "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1823
     2 perform:#+
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1824
    "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1825
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1826
    "Modified: / 01-08-1997 / 00:23:10 / cg"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1827
    "Created: / 07-09-2011 / 14:17:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1828
! !
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1829
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1830
!JavaMethod methodsFor:'executing'!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1831
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1832
valueWithReceiver:anObject arguments:argArray selector:aSymbol search:aClass sender:virtualSender
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1833
    self isStatic ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1834
        anObject == javaClass ifFalse:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1835
            self error: 'Invalid receiver - only owning class can be a receiver of static method invocation!!'
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1836
        ]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1837
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1838
    ^super valueWithReceiver:anObject arguments:argArray selector:aSymbol search:aClass sender:virtualSender
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1839
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1840
    "Created: / 31-10-2012 / 23:09:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
277
511c3bb153b7 jdk1.2 stuff.
cg
parents: 275
diff changeset
  1841
! !
511c3bb153b7 jdk1.2 stuff.
cg
parents: 275
diff changeset
  1842
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1843
!JavaMethod methodsFor:'initialization'!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1844
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1845
resolve
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  1846
    "Called by VM to resolve all references used by this method. When
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1847
     successful (i.e., all references has been successfully resolved, a
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1848
     A_RESOLVED flag is set (to prevent VM from subsequent calls
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1849
     to this method)
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1850
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1851
     Returns 1 if successfull, 0 if not (at least one reference
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1852
     could not been resolved) or -1 when some (unspecified) erorr
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1853
     occurs."
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1854
    "Marcel, continue here!! And ALWAYS commit ALL the code!! Sigh"
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  1855
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  1856
    [
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1857
	JavaByteCodePreresolver preresolve: self.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1858
	accessFlags := accessFlags | A_RESOLVED.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1859
        ^1.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1860
    ] on: Error do:[:ex|
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1861
        self breakPoint: #mh.  "Marcel, please fix it"
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  1862
        ^0.
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1863
    ].
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  1864
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1865
    "/RETURN 1...OK,
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1866
    "/       0...Something could not be resolved
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1867
    "/      -1...Some error
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1868
    self breakPoint:#mh.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1869
    ^ 1.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1870
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1871
    "Created: / 09-02-2012 / 20:59:22 / mh <hlopik@gmail.com>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1872
    "Modified: / 11-02-2012 / 13:46:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1873
    "Modified (format): / 23-02-2012 / 17:49:09 / Marcel Hlopko <hlopik@gmail.com>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1874
    "Modified: / 24-02-2012 / 14:46:10 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1875
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1876
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1877
setAccessFlags:flags
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1878
    accessFlags := flags.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1879
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1880
    "Created: 16.4.1996 / 11:34:14 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1881
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1882
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1883
setCode:codeBytes maxStack:max_stack maxLocals:max_locals u1:unknown1 u2:unknown2
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1884
"/    javaByteCode := codeBytes.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1885
    byteCode := codeBytes.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1886
    "/ numStack := max_stack.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1887
    "/ numLocals := max_locals.
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1888
    super numberOfVars:max_locals - self numArgs - (self isStatic ifTrue:[0] ifFalse:[1]).
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1889
    super stackSize:max_stack.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1890
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1891
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1892
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1893
"/    self displayString printNL.
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  1894
"/    '   nStack: ' print. numStack print.
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  1895
"/    ' nLocal: ' print. numLocals print.
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1896
"/    ' u1: ' print. unknown1 print.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1897
"/    ' u2: ' print. unknown2 printNL.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1898
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1899
    "Modified: / 01-08-1997 / 00:08:32 / cg"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1900
    "Modified: / 12-10-2012 / 11:46:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1901
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1902
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1903
setDescriptor:aString
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1904
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1905
    descriptor := aString asSymbol.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1906
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1907
    "Created: / 16-04-1996 / 11:34:29 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1908
    "Modified: / 16-10-1998 / 00:17:12 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1909
    "Modified: / 13-08-2011 / 01:21:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1910
    "Created: / 14-08-2011 / 19:41:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1911
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1912
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1913
setJavaClass:aJavaClass
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1914
    javaClass := aJavaClass
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1915
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1916
    "Modified: 16.4.1996 / 12:36:27 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1917
    "Created: 16.4.1996 / 15:28:15 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1918
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1919
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1920
setLineNumberTable:anArrayOfPCtoLineAssociations
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1921
    "since this uses up lots of memory, compress it"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1922
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1923
    |allBytes allWords idx|
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1924
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1925
    allBytes := allWords := true.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1926
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1927
    anArrayOfPCtoLineAssociations do:[:assoc |
2158
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1928
        assoc key > 255 ifTrue:[
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1929
            allBytes := false.
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1930
            assoc key > 16rFFFF ifTrue:[
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1931
                allWords := false.
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1932
            ].
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1933
        ].
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1934
        assoc value > 255 ifTrue:[
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1935
            allBytes := false.
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1936
            assoc value > 16rFFFF ifTrue:[
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1937
                allWords := false
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1938
            ].
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1939
        ].
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1940
    ].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1941
    allBytes ifTrue:[
2158
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1942
        lineNumberTable := ByteArray new:(anArrayOfPCtoLineAssociations size * 2).
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1943
    ] ifFalse:[
2158
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1944
        allWords ifTrue:[
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1945
            lineNumberTable := WordArray new:(anArrayOfPCtoLineAssociations size * 2).
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1946
        ] ifFalse:[
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1947
            lineNumberTable := Array new:(anArrayOfPCtoLineAssociations size * 2).
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1948
        ]
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1949
    ].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1950
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1951
    idx := 1.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1952
    anArrayOfPCtoLineAssociations do:[:assoc |
2158
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1953
        lineNumberTable at:idx   put:assoc key.
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1954
        lineNumberTable at:idx+1 put:assoc value.
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  1955
        idx := idx + 2.
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1956
    ].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1957
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1958
    "Created: 16.4.1996 / 12:34:04 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1959
    "Modified: 16.4.1996 / 12:49:06 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1960
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1961
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1962
setLocalVariableTable:anArray
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1963
     localVariableTable := anArray.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1964
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1965
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  1966
setName:name descriptor:desc
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  1967
    | numArgs numJArgs returnTypeSignatureChar returnTypeIsPrimitiveArray |
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1968
2791
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2790
diff changeset
  1969
    "/ Force Symbol creation so Smalltalk syntax highlighter will not
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2790
diff changeset
  1970
    "/ mark them as unknown message (it detects this solely by existence
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2790
diff changeset
  1971
    "/ of the symbol.
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  1972
    name asSymbol.
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  1973
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  1974
    selector := (name , desc) asSymbol.
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  1975
    self setDescriptor:desc.
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  1976
3197
d44f099dcff0 Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
  1977
    numJArgs := self class numArgsFromDescriptor:desc.
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1978
    (numJArgs > self class maxNumberOfArguments) ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1979
        numArgs := 1.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1980
    ] ifFalse:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1981
        numArgs := numJArgs.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1982
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1983
    self numberOfArgs:numArgs.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  1984
    self numberOfJavaArgs:numJArgs.
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  1985
    returnTypeSignatureChar := descriptor last.
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  1986
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1987
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1988
     "/ for the convenience of the VM, also mirror the return type in
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1989
     "/ the flags ...
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  1990
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  1991
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  1992
    returnTypeSignatureChar == $V ifTrue:[
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  1993
            accessFlags := accessFlags bitOr:ACX_R_VOID
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  1994
    ] ifFalse:[
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  1995
        returnTypeIsPrimitiveArray := (descriptor at: (descriptor size - 1)) == $[.
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  1996
        returnTypeIsPrimitiveArray ifFalse:[
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  1997
            returnTypeSignatureChar == $J ifTrue:[
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  1998
                accessFlags := accessFlags bitOr:ACX_R_LONG
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  1999
            ] ifFalse:[
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  2000
               returnTypeSignatureChar == $D ifTrue:[
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  2001
                  accessFlags := accessFlags bitOr:ACX_R_DOUBLE
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  2002
               ].
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  2003
            ].
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  2004
        ].
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  2005
    ].
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2006
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2007
    "Created: / 14-08-2011 / 19:41:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  2008
    "Modified: / 21-05-2014 / 20:47:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2009
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2010
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2011
setSignature:aString
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2012
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2013
    signature := aString asSymbol.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2014
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2015
    "Created: / 16-04-1996 / 11:34:29 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2016
    "Modified: / 16-10-1998 / 00:17:12 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2017
    "Modified (format): / 14-08-2011 / 19:41:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2716
1cca77810e04 Initial support for source file partitioning using eclipse parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2708
diff changeset
  2018
!
1cca77810e04 Initial support for source file partitioning using eclipse parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2708
diff changeset
  2019
1cca77810e04 Initial support for source file partitioning using eclipse parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2708
diff changeset
  2020
setSource:aJavaMethodSourceRef
2729
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
  2021
    self assert: aJavaMethodSourceRef class == JavaSourceRef.
2716
1cca77810e04 Initial support for source file partitioning using eclipse parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2708
diff changeset
  2022
    source := aJavaMethodSourceRef
1cca77810e04 Initial support for source file partitioning using eclipse parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2708
diff changeset
  2023
1cca77810e04 Initial support for source file partitioning using eclipse parser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2708
diff changeset
  2024
    "Created: / 07-09-2013 / 01:44:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2729
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
  2025
    "Modified: / 13-09-2013 / 02:19:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2026
! !
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2027
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2028
!JavaMethod methodsFor:'inspecting'!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2029
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2030
inspectorExtraAttributes
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2031
    "extra (pseudo instvar) entries to be shown in an inspector."
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2032
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2033
    ^ Dictionary new
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2034
        declareAllNewFrom:(super inspectorExtraAttributes ? #());
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2035
        "/add:'-code' -> [ String streamContents:[:s | JavaDecompiler decompile: self to: s] ];
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2036
        add:'-code' -> [ String streamContents:[:s | JavaByteCodeDisassembler diassemble: self to: s] ];
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2037
        "/add:'-source' -> [ self source ];
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2038
        yourself
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2039
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2040
    "Modified: / 22-03-2011 / 21:13:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2041
! !
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2042
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2043
!JavaMethod methodsFor:'interpretation'!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2044
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  2045
interpretWithReceiver: receiver
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  2046
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  2047
    ^self
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  2048
        interpretWithReceiver: receiver
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2049
        arguments: #()
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2050
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2051
    "Created: / 24-02-2011 / 22:05:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2052
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2053
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2054
interpretWithReceiver: receiver arg: a1
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2055
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  2056
    ^self
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  2057
        interpretWithReceiver: receiver
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2058
        arguments: (Array with: a1)
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2059
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2060
    "Created: / 24-02-2011 / 22:05:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2061
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2062
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2063
interpretWithReceiver: receiver arg: a1 arg: a2
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2064
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  2065
    ^self
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  2066
        interpretWithReceiver: receiver
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2067
        arguments: (Array with: a1 with: a2)
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2068
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2069
    "Created: / 24-02-2011 / 22:05:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2070
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2071
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2072
interpretWithReceiver: receiver arg: a1 arg: a2 arg: a3
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2073
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  2074
    ^self
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  2075
        interpretWithReceiver: receiver
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2076
        arguments: (Array with: a1 with: a2 with: a3)
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2077
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2078
    "Created: / 24-02-2011 / 22:06:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2870
b8187695c8cd Added JavaMethod>>#interpretWithReceiver:arguments:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2864
diff changeset
  2079
!
b8187695c8cd Added JavaMethod>>#interpretWithReceiver:arguments:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2864
diff changeset
  2080
b8187695c8cd Added JavaMethod>>#interpretWithReceiver:arguments:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2864
diff changeset
  2081
interpretWithReceiver:aReceiver arguments:argVector
b8187695c8cd Added JavaMethod>>#interpretWithReceiver:arguments:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2864
diff changeset
  2082
    "invoked by VM for non-Smalltalk-methods (MetaMethods)"
b8187695c8cd Added JavaMethod>>#interpretWithReceiver:arguments:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2864
diff changeset
  2083
b8187695c8cd Added JavaMethod>>#interpretWithReceiver:arguments:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2864
diff changeset
  2084
    ^ JavaByteCodeInterpreter interpret: self receiver: aReceiver arguments: argVector
b8187695c8cd Added JavaMethod>>#interpretWithReceiver:arguments:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2864
diff changeset
  2085
b8187695c8cd Added JavaMethod>>#interpretWithReceiver:arguments:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2864
diff changeset
  2086
    "Created: / 17-10-2013 / 01:56:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2087
! !
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2088
118
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
  2089
!JavaMethod methodsFor:'methodref interchangability'!
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
  2090
673
5afd5a1e3b15 *** empty log message ***
cg
parents: 670
diff changeset
  2091
homeMethod
5afd5a1e3b15 *** empty log message ***
cg
parents: 670
diff changeset
  2092
    ^ self
5afd5a1e3b15 *** empty log message ***
cg
parents: 670
diff changeset
  2093
!
5afd5a1e3b15 *** empty log message ***
cg
parents: 670
diff changeset
  2094
118
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
  2095
method
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
  2096
    ^ self
692
2d757af88e5b comment
cg
parents: 685
diff changeset
  2097
!
2d757af88e5b comment
cg
parents: 685
diff changeset
  2098
2d757af88e5b comment
cg
parents: 685
diff changeset
  2099
setPackage:newPackage
2d757af88e5b comment
cg
parents: 685
diff changeset
  2100
    newPackage ~= javaClass package ifTrue:[
2d757af88e5b comment
cg
parents: 685
diff changeset
  2101
        self halt:'java method cannot be in a package different from its class'.
2d757af88e5b comment
cg
parents: 685
diff changeset
  2102
    ]
118
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
  2103
! !
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
  2104
148
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
  2105
!JavaMethod methodsFor:'misc'!
db560ebab8b5 *** empty log message ***
cg
parents: 143
diff changeset
  2106
378
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
  2107
fromMethod:aJavaMethod
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
  2108
    "copy values from another javaMethod"
149
d6fe26e9af47 *** empty log message ***
cg
parents: 148
diff changeset
  2109
378
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
  2110
    flags := aJavaMethod flags.
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
  2111
    byteCode := aJavaMethod byteCode.
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
  2112
    accessFlags := aJavaMethod accessFlags.
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
  2113
    selector := aJavaMethod selector.
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
  2114
    javaClass := aJavaMethod javaClass.
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2115
    descriptor := aJavaMethod instVarNamed:#descriptor.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2116
    signature := aJavaMethod instVarNamed:#signature.
378
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
  2117
    lineNumberTable := aJavaMethod lineNumberTable.
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
  2118
    localVariableTable := aJavaMethod localVariableTable.
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2119
    annotations := aJavaMethod annotations.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2120
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2121
    "Modified: / 16-10-1998 / 01:27:19 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2122
    "Modified: / 14-08-2011 / 19:30:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  2123
!
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 238
diff changeset
  2124
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  2125
updateClassRefsFrom:oldClass to:newClass
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  2126
    javaClass == oldClass ifTrue:[
2158
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  2127
        "/ invalidate
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  2128
        byteCode := nil.
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  2129
    ]
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 238
diff changeset
  2130
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  2131
    "Created: / 6.1.1998 / 18:19:48 / cg"
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 238
diff changeset
  2132
! !
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 238
diff changeset
  2133
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
  2134
!JavaMethod methodsFor:'printing & storing'!
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
  2135
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
  2136
displayString
168
90e39cb3fa04 *** empty log message ***
cg
parents: 166
diff changeset
  2137
    javaClass isNil ifTrue:[
611
490fbaed2257 faster nativeMethod invocation
cg
parents: 609
diff changeset
  2138
        ^ self class name , '(???)'
168
90e39cb3fa04 *** empty log message ***
cg
parents: 166
diff changeset
  2139
    ].
611
490fbaed2257 faster nativeMethod invocation
cg
parents: 609
diff changeset
  2140
    ^ self class name , '(' , javaClass displayString , '::' , self signatureName , ')'
423
08af061c56a8 javaClass now uses its fullName in name
cg
parents: 412
diff changeset
  2141
611
490fbaed2257 faster nativeMethod invocation
cg
parents: 609
diff changeset
  2142
    "Modified: / 25.9.1999 / 23:04:01 / cg"
29
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
  2143
!
eb3367f8fb9b checkin from browser
cg
parents: 27
diff changeset
  2144
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2145
printOn: aStream
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2146
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2147
    super printOn: aStream.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2148
    aStream nextPut: $(.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2149
    javaClass name printOn: aStream.
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  2150
    aStream nextPut: $..
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2151
    selector printOn: aStream.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2152
    aStream nextPut: $).
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2153
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2154
    "Created: / 05-12-2011 / 01:30:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2155
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2156
2864
50b4916dd8d2 Fixes for Java method tracing/counting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2814
diff changeset
  2157
printStringForBrowserWithSelector:dummySelector
50b4916dd8d2 Fixes for Java method tracing/counting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2814
diff changeset
  2158
"/    self isStatic ifTrue:[
50b4916dd8d2 Fixes for Java method tracing/counting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2814
diff changeset
  2159
"/        ^ 'static ' , self signatureName
50b4916dd8d2 Fixes for Java method tracing/counting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2814
diff changeset
  2160
"/    ].
50b4916dd8d2 Fixes for Java method tracing/counting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2814
diff changeset
  2161
"/    self isBreakpointed ifTrue:[
50b4916dd8d2 Fixes for Java method tracing/counting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2814
diff changeset
  2162
"/        ^ (LabelAndIcon '!! ' , self signatureName
50b4916dd8d2 Fixes for Java method tracing/counting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2814
diff changeset
  2163
"/    ].
50b4916dd8d2 Fixes for Java method tracing/counting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2814
diff changeset
  2164
50b4916dd8d2 Fixes for Java method tracing/counting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2814
diff changeset
  2165
    self name = #'<clinit>' ifTrue:[
50b4916dd8d2 Fixes for Java method tracing/counting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2814
diff changeset
  2166
        ^ 'static {}'
50b4916dd8d2 Fixes for Java method tracing/counting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2814
diff changeset
  2167
    ].
50b4916dd8d2 Fixes for Java method tracing/counting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2814
diff changeset
  2168
50b4916dd8d2 Fixes for Java method tracing/counting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2814
diff changeset
  2169
    ^ self name = #'<init>' ifTrue:[
50b4916dd8d2 Fixes for Java method tracing/counting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2814
diff changeset
  2170
        self class specTextFromSignature:descriptor in:javaClass package withName:(javaClass lastName) isConstructor: true
50b4916dd8d2 Fixes for Java method tracing/counting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2814
diff changeset
  2171
    ] ifFalse:[
50b4916dd8d2 Fixes for Java method tracing/counting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2814
diff changeset
  2172
        self class specTextFromSignature:descriptor in:javaClass package withName:(self name) isConstructor: false
50b4916dd8d2 Fixes for Java method tracing/counting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2814
diff changeset
  2173
    ]
50b4916dd8d2 Fixes for Java method tracing/counting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2814
diff changeset
  2174
50b4916dd8d2 Fixes for Java method tracing/counting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2814
diff changeset
  2175
    "Created: / 16-10-2013 / 00:52:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
50b4916dd8d2 Fixes for Java method tracing/counting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2814
diff changeset
  2176
!
50b4916dd8d2 Fixes for Java method tracing/counting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2814
diff changeset
  2177
670
92f120745381 printStringForBrowser
cg
parents: 654
diff changeset
  2178
printStringForBrowserWithSelector:dummySelector inClass:dummyClass
43
2c4ca2eb8d07 checkin from browser
cg
parents: 31
diff changeset
  2179
"/    self isStatic ifTrue:[
2c4ca2eb8d07 checkin from browser
cg
parents: 31
diff changeset
  2180
"/        ^ 'static ' , self signatureName
2c4ca2eb8d07 checkin from browser
cg
parents: 31
diff changeset
  2181
"/    ].
168
90e39cb3fa04 *** empty log message ***
cg
parents: 166
diff changeset
  2182
"/    self isBreakpointed ifTrue:[
90e39cb3fa04 *** empty log message ***
cg
parents: 166
diff changeset
  2183
"/        ^ (LabelAndIcon '!! ' , self signatureName
90e39cb3fa04 *** empty log message ***
cg
parents: 166
diff changeset
  2184
"/    ].
175
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  2185
2678
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2186
    self name = #'<clinit>' ifTrue:[
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2187
        ^ 'static {}'
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2188
    ].
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2189
2790
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
  2190
    ^ self name = #'<init>' ifTrue:[
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
  2191
        self class specTextFromSignature:descriptor in:javaClass package withName:(javaClass lastName) isConstructor: true
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
  2192
    ] ifFalse:[
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
  2193
        self class specTextFromSignature:descriptor in:javaClass package withName:(self name) isConstructor: false
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
  2194
    ]
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
  2195
2864
50b4916dd8d2 Fixes for Java method tracing/counting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2814
diff changeset
  2196
    "Created: / 16-10-2013 / 00:55:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
50b4916dd8d2 Fixes for Java method tracing/counting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2814
diff changeset
  2197
!
50b4916dd8d2 Fixes for Java method tracing/counting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2814
diff changeset
  2198
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  2199
selectorPrintStringInBrowserFor:dummySelector
2864
50b4916dd8d2 Fixes for Java method tracing/counting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2814
diff changeset
  2200
    ^ self selectorPrintStringInBrowserFor:dummySelector class: javaClass
50b4916dd8d2 Fixes for Java method tracing/counting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2814
diff changeset
  2201
50b4916dd8d2 Fixes for Java method tracing/counting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2814
diff changeset
  2202
    "Created: / 16-10-2013 / 01:02:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
50b4916dd8d2 Fixes for Java method tracing/counting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2814
diff changeset
  2203
!
50b4916dd8d2 Fixes for Java method tracing/counting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2814
diff changeset
  2204
50b4916dd8d2 Fixes for Java method tracing/counting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2814
diff changeset
  2205
selectorPrintStringInBrowserFor:dummySelector class: dummyClass
50b4916dd8d2 Fixes for Java method tracing/counting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2814
diff changeset
  2206
    ^ self printStringForBrowserWithSelector:dummySelector inClass:dummyClass
50b4916dd8d2 Fixes for Java method tracing/counting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2814
diff changeset
  2207
50b4916dd8d2 Fixes for Java method tracing/counting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2814
diff changeset
  2208
    "Created: / 16-10-2013 / 01:03:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
10
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
  2209
!
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
  2210
118
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
  2211
shortDisplayString
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
  2212
    ^ javaClass name , '::' , self signatureNameWithoutReturnType
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
  2213
!
c1f888534eed fixed numVar/numLocal & numStacl stuff
cg
parents: 116
diff changeset
  2214
10
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
  2215
signatureName
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
  2216
    "return a string to be used when browsing"
1f803ce6d3fc better signature code
cg
parents: 8
diff changeset
  2217
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2218
    ^ self class specFromSignature:descriptor withName:(self name) in:nil
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  2219
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  2220
    "Modified: / 8.1.1998 / 19:15:33 / cg"
113
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
  2221
!
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
  2222
164
724c443e6f79 *** empty log message ***
cg
parents: 156
diff changeset
  2223
signatureNameFor:name withArgsIn:aPackage
724c443e6f79 *** empty log message ***
cg
parents: 156
diff changeset
  2224
    "return a string to be used when decompiling"
724c443e6f79 *** empty log message ***
cg
parents: 156
diff changeset
  2225
2790
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
  2226
    ^ name = '<init>' ifTrue:[
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  2227
        self class specWithArgsFromSignature:descriptor withName: javaClass lastName in:aPackage isConstructor: true.
2790
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
  2228
    ] ifFalse:[
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
  2229
        self class specWithArgsFromSignature:descriptor withName:(self name) in:aPackage isConstructor: false.
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
  2230
    ]
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
  2231
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
  2232
    "Created: / 25-03-1997 / 18:49:45 / cg"
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
  2233
    "Modified: / 04-10-2013 / 12:33:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
164
724c443e6f79 *** empty log message ***
cg
parents: 156
diff changeset
  2234
!
724c443e6f79 *** empty log message ***
cg
parents: 156
diff changeset
  2235
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
  2236
signatureNameIn:aPackage
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
  2237
    "return a string to be used when browsing"
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
  2238
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2239
    ^ self class specFromSignature:descriptor withName:(self name) in:aPackage
142
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
  2240
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
  2241
    "Created: 18.3.1997 / 11:11:01 / cg"
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
  2242
!
1cc00567fb75 *** empty log message ***
cg
parents: 141
diff changeset
  2243
175
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  2244
signatureNameText
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  2245
    "return a text to be used when browsing"
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  2246
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2247
    ^ self class specTextFromSignature:descriptor withName:(self name)
175
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  2248
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  2249
    "Created: 30.7.1997 / 14:40:29 / cg"
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  2250
!
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  2251
189
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
  2252
signatureNameTextFor:name withArgsIn:aPackage
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
  2253
    "return a text to be used when decompiling"
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
  2254
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2255
    ^ self class specTextWithArgsFromSignature:descriptor withName:name in:aPackage
189
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
  2256
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
  2257
    "Created: 25.3.1997 / 18:49:45 / cg"
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
  2258
    "Modified: 1.8.1997 / 10:44:28 / cg"
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
  2259
!
babfb18fc67b signature parsing
cg
parents: 184
diff changeset
  2260
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  2261
signatureNameWithArgNames:argNames
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  2262
    "return a string to be used when browsing"
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  2263
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  2264
    |myName|
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  2265
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  2266
    myName := self name.
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  2267
    myName = '<init>' ifTrue:[
2158
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  2268
        myName := javaClass name
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  2269
    ].
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2270
    ^ self class specFromSignature:descriptor withName:myName argNames:argNames in:nil
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  2271
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  2272
    "Created: / 8.1.1998 / 21:04:03 / cg"
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  2273
    "Modified: / 8.1.1998 / 21:22:38 / cg"
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  2274
!
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  2275
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  2276
signatureNameWithArgNames:argNames in:package
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  2277
    "return a string to be used when browsing"
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  2278
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  2279
    |myName|
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  2280
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  2281
    myName := self name.
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  2282
    myName = '<init>' ifTrue:[
2158
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  2283
        myName := javaClass name
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  2284
    ].
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2285
    ^ self class specFromSignature:descriptor withName:myName argNames:argNames in:package
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  2286
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  2287
    "Modified: / 8.1.1998 / 21:05:52 / cg"
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  2288
    "Created: / 8.1.1998 / 21:23:03 / cg"
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  2289
!
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  2290
154
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  2291
signatureNameWithArgsIn:aPackage
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  2292
    "return a string to be used when browsing"
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  2293
2790
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
  2294
    ^ self signatureNameFor: self name withArgsIn: aPackage
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2295
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2296
    "Created: / 20-03-1997 / 12:44:17 / cg"
2790
b530c3f48cd3 Changed display string for Java methods.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
  2297
    "Modified: / 04-10-2013 / 12:34:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2298
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2299
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2300
signatureNameWithModifiers
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2301
    "return a string to be used when deassembling"
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  2302
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2303
    | result |
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2304
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2305
    result := self signatureName.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2306
    self isFinal ifTrue: [ result := 'final ' , result ].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2307
    self isStatic ifTrue: [ result := 'static ' , result ].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2308
    self isSynchronized ifTrue: [ result := 'synchronized ' , result ].
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  2309
    self isPrivate
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2310
        ifTrue: [ result := 'private ' , result ]
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  2311
        ifFalse:
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  2312
            [ self isProtected
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2313
                ifTrue: [ result := 'protected ' , result ]
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2314
                ifFalse: [ self isPublic ifTrue: [ result := 'public ' , result ] ] ].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2315
    self isAbstract ifTrue: [ result := 'abstract ' , result ].
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2316
    ^ result.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2317
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2318
    "Modified: / 08-01-1998 / 19:15:33 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2319
    "Created: / 22-03-2011 / 16:25:27 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
154
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  2320
!
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  2321
113
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
  2322
signatureNameWithoutReturnType
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
  2323
    "return a string to be used when browsing"
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
  2324
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2325
    ^ self class argSpecFromSignature:descriptor withName:(self name)
113
481bf55e161e *** empty log message ***
cg
parents: 111
diff changeset
  2326
2678
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2327
!
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2328
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2329
whoString
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2330
    ^ javaClass name , '>>' , (self printStringForBrowserWithSelector:nil inClass:nil)
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2331
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2332
    "Created: / 13-06-2013 / 08:52:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
  2333
! !
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
  2334
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
  2335
!JavaMethod methodsFor:'queries'!
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
  2336
111
23243f9273fa *** empty log message ***
cg
parents: 102
diff changeset
  2337
handlerFor:anException at:pc
611
490fbaed2257 faster nativeMethod invocation
cg
parents: 609
diff changeset
  2338
    "return an exceptionHandlers pc, for an exception of the given type,
490fbaed2257 faster nativeMethod invocation
cg
parents: 609
diff changeset
  2339
     occurring at pc. Returns nil, if there is none."
490fbaed2257 faster nativeMethod invocation
cg
parents: 609
diff changeset
  2340
490fbaed2257 faster nativeMethod invocation
cg
parents: 609
diff changeset
  2341
    |handlerTable|
490fbaed2257 faster nativeMethod invocation
cg
parents: 609
diff changeset
  2342
490fbaed2257 faster nativeMethod invocation
cg
parents: 609
diff changeset
  2343
    (handlerTable := self exceptionHandlerTable) isNil ifTrue:[^ nil].
2678
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2344
    ^handlerTable handlerPCFor:anException at:pc in:self.
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2345
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2346
    "Created: / 16-10-1998 / 01:18:40 / cg"
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2347
    "Modified: / 25-09-1999 / 23:07:01 / cg"
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2348
    "Modified: / 06-05-2013 / 21:49:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
31
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
  2349
!
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
  2350
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2351
hasFinally
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2352
    ^ (accessFlags bitAnd:A_HASFINALLY) ~~ 0
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2354
    "Created: / 28-03-2012 / 20:35:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2355
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2356
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2357
hasFinallyBasedOnExceptionTable
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  2358
    "Returns true if the exeption table has at least one
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2359
     entry for finally block"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2360
    ^false
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2361
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2362
    "Created: / 28-03-2012 / 23:18:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2363
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2364
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2365
hasHandler
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2366
    ^ (accessFlags bitAnd:A_HASHANDLER) ~~ 0
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2367
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2368
    "Created: / 28-03-2012 / 20:35:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2369
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2370
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2371
hasPrimitiveCode
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2372
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2373
    ^false
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2374
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2375
    "Created: / 18-07-2011 / 20:45:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2376
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2377
127
96f1bf74011f *** empty log message ***
cg
parents: 123
diff changeset
  2378
hasResource
96f1bf74011f *** empty log message ***
cg
parents: 123
diff changeset
  2379
    ^ false
96f1bf74011f *** empty log message ***
cg
parents: 123
diff changeset
  2380
!
96f1bf74011f *** empty log message ***
cg
parents: 123
diff changeset
  2381
19
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  2382
isAbstract
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 238
diff changeset
  2383
    ^ (accessFlags bitAnd:A_ABSTRACT) ~~ 0
19
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  2384
!
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  2385
80
f08d2cab0b55 *** empty log message ***
cg
parents: 75
diff changeset
  2386
isBreakpointed
256
2cbf20ad74b2 checkin from browser
cg
parents: 255
diff changeset
  2387
    ^ (accessFlags bitAnd:A_BREAKPOINT) ~~ 0
2cbf20ad74b2 checkin from browser
cg
parents: 255
diff changeset
  2388
2cbf20ad74b2 checkin from browser
cg
parents: 255
diff changeset
  2389
    "Modified: / 11.1.1998 / 13:28:43 / cg"
80
f08d2cab0b55 *** empty log message ***
cg
parents: 75
diff changeset
  2390
!
f08d2cab0b55 *** empty log message ***
cg
parents: 75
diff changeset
  2391
19
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  2392
isFinal
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 238
diff changeset
  2393
    ^ (accessFlags bitAnd:A_FINAL) ~~ 0
19
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  2394
!
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  2395
175
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  2396
isIgnored
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  2397
    "not really a java attribute;
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  2398
     added to allow browsing"
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  2399
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  2400
    ^ false.
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  2401
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  2402
    "Created: 30.7.1997 / 15:34:33 / cg"
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  2403
!
68da52e100ab *** empty log message ***
cg
parents: 174
diff changeset
  2404
625
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2405
isJavaClassRef
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2406
    ^ false
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2407
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2408
    "Created: / 9.11.1999 / 17:16:20 / cg"
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2409
!
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2410
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2411
isJavaConstructor
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2412
    ^((selector first) == $<) and:[selector startsWith:'<init>(']
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2413
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2414
    "Created: / 01-08-2012 / 00:21:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2415
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2416
431
fe362bcc1aeb checkin from browser
cg
parents: 428
diff changeset
  2417
isJavaMethod
fe362bcc1aeb checkin from browser
cg
parents: 428
diff changeset
  2418
    ^ true
fe362bcc1aeb checkin from browser
cg
parents: 428
diff changeset
  2419
fe362bcc1aeb checkin from browser
cg
parents: 428
diff changeset
  2420
    "Created: / 10.11.1998 / 18:24:51 / cg"
fe362bcc1aeb checkin from browser
cg
parents: 428
diff changeset
  2421
!
fe362bcc1aeb checkin from browser
cg
parents: 428
diff changeset
  2422
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2423
isJavaStaticInitializer
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2424
    ^((selector first) == $<) and:[selector startsWith:'<clinit>(']
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2425
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2426
    "Created: / 19-09-2012 / 16:26:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2427
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2428
19
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  2429
isNative
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 238
diff changeset
  2430
    ^ (accessFlags bitAnd:A_NATIVE) ~~ 0
19
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  2431
!
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  2432
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2433
isPackagePrivate
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2434
    ^ (accessFlags bitAnd:A_PRIVATE | A_PUBLIC | A_PROTECTED) = 0
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2435
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2436
    "Created: / 05-07-2012 / 10:12:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2437
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2438
19
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  2439
isPrivate
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 238
diff changeset
  2440
    ^ (accessFlags bitAnd:A_PRIVATE) ~~ 0
19
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  2441
!
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  2442
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  2443
isProtected
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 238
diff changeset
  2444
    ^ (accessFlags bitAnd:A_PROTECTED) ~~ 0
19
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  2445
!
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  2446
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  2447
isPublic
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 238
diff changeset
  2448
    ^ (accessFlags bitAnd:A_PUBLIC) ~~ 0
19
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  2449
!
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  2450
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2451
isResolved
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  2452
    "Return true, if the receiver is fully resolved, i.e.,
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2453
     if all references used by the method are resolved"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2454
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2455
    ^ (accessFlags bitAnd:A_RESOLVED) ~~ 0
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2456
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2457
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2458
19
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  2459
isStatic
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 238
diff changeset
  2460
    ^ (accessFlags bitAnd:A_STATIC) ~~ 0
19
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  2461
!
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  2462
512a19e2d46f checkin from browser
cg
parents: 18
diff changeset
  2463
isSynchronized
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 238
diff changeset
  2464
    ^ (accessFlags bitAnd:A_SYNCHRONIZED) ~~ 0
18
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
  2465
!
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
  2466
256
2cbf20ad74b2 checkin from browser
cg
parents: 255
diff changeset
  2467
isTraced
2cbf20ad74b2 checkin from browser
cg
parents: 255
diff changeset
  2468
    ^ false
2cbf20ad74b2 checkin from browser
cg
parents: 255
diff changeset
  2469
2cbf20ad74b2 checkin from browser
cg
parents: 255
diff changeset
  2470
    "Modified: / 11.1.1998 / 13:28:43 / cg"
2cbf20ad74b2 checkin from browser
cg
parents: 255
diff changeset
  2471
    "Created: / 11.1.1998 / 13:38:11 / cg"
2cbf20ad74b2 checkin from browser
cg
parents: 255
diff changeset
  2472
!
2cbf20ad74b2 checkin from browser
cg
parents: 255
diff changeset
  2473
8
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
  2474
isUnloaded
4df3a66460a3 can now read (undoc) 3.45 format
cg
parents: 5
diff changeset
  2475
    ^ false
18
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
  2476
!
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
  2477
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2478
isUnresolved
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2479
    "return true, if the receiver is unresolved;"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2480
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2481
    ^ self isResolved not
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2482
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2483
    "Created: / 06-03-2011 / 22:57:35 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2484
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2485
256
2cbf20ad74b2 checkin from browser
cg
parents: 255
diff changeset
  2486
isWrapped
2902
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  2487
    ^ super isWrapped
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  2488
"/    ^ self isBreakpointed
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  2489
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  2490
    "Created: / 11-01-1998 / 13:38:04 / cg"
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2888
diff changeset
  2491
    "Modified: / 05-11-2013 / 16:19:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
256
2cbf20ad74b2 checkin from browser
cg
parents: 255
diff changeset
  2492
!
2cbf20ad74b2 checkin from browser
cg
parents: 255
diff changeset
  2493
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  2494
lineNumberForPC0: pc
2726
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  2495
    | last |
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  2496
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  2497
    lineNumberTable notNil ifTrue: [
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  2498
        lineNumberTable
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  2499
            pairWiseDo: [:lPc :lNr |
2726
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  2500
                lPc >= pc ifTrue: [
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  2501
                    lPc == pc ifTrue: [
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  2502
                        ^ lNr
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  2503
                    ].
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  2504
                    last isNil ifTrue: [
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  2505
                        ^ lNr
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  2506
                    ].
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  2507
                    ^ last.
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  2508
                ].
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  2509
                last := lNr.
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  2510
            ].
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  2511
        last notNil ifTrue: [
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  2512
            ^ last
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  2513
        ].
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  2514
        ^ lineNumberTable at: 2
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  2515
    ].
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  2516
    ^ nil
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  2517
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  2518
    "Modified: / 14.1.1998 / 13:30:54 / cg"
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  2519
    "Created: / 10.11.1998 / 14:18:22 / cg"
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  2520
!
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  2521
31
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
  2522
lineNumberForPC:pc
2726
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  2523
    |num text|
31
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
  2524
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
  2525
    num := nil.
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
  2526
2726
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  2527
    ForceByteCodeDisplay ifFalse:[
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  2528
        | line0 |
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  2529
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  2530
        line0 := self lineNumberForPC0: pc.
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  2531
        ShowFullSource ifFalse:[
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  2532
            source isNil ifTrue:[
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  2533
                "/ Fetch the source ref...
2729
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
  2534
                self sourceDocument sourceTreeOrNilIfParsing.
2726
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  2535
                source isNil ifTrue:[
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  2536
                    ^ line0 - self firstInstructionLineNumber - 2.
2158
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  2537
                ].
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  2538
            ].
2726
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  2539
            ^ line0 - source line0 + 1.
2158
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  2540
        ].
2726
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  2541
        ^ line0
46
db9b84631d43 checkin from browser
cg
parents: 43
diff changeset
  2542
    ].
31
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
  2543
46
db9b84631d43 checkin from browser
cg
parents: 43
diff changeset
  2544
    "/ decompile and look which line the pc falls into
209
9e4b45da1117 checkin from browser
cg
parents: 207
diff changeset
  2545
2726
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  2546
    ForceByteCodeDisplay ifTrue:[
2158
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  2547
        text := self decompiledBytecode asCollectionOfLines.
209
9e4b45da1117 checkin from browser
cg
parents: 207
diff changeset
  2548
    ] ifFalse:[
2158
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  2549
        text := self decompiledSource asCollectionOfLines.
209
9e4b45da1117 checkin from browser
cg
parents: 207
diff changeset
  2550
    ].
31
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
  2551
46
db9b84631d43 checkin from browser
cg
parents: 43
diff changeset
  2552
    text keysAndValuesDo:[:lineNr :line |
2158
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  2553
        |nr|
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  2554
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  2555
        (line startsWith:'    ') ifFalse:[
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  2556
            nr := Integer readFrom:line onError:0.
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  2557
            nr >= pc ifTrue:[
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  2558
                ^ lineNr
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  2559
            ]
cf16fc148fb8 added: #originalMethodIfWrapped
Claus Gittinger <cg@exept.de>
parents: 2151
diff changeset
  2560
        ]
31
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
  2561
    ].
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
  2562
    ^ num
141
0baa4706b898 checkin from browser
cg
parents: 135
diff changeset
  2563
2726
6971720de5a4 More support for method's source only.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2725
diff changeset
  2564
    "Modified: / 14-01-1998 / 13:30:54 / cg"
2729
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
  2565
    "Modified: / 13-09-2013 / 02:11:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
31
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
  2566
!
644123641e2c java exceptions (java handlers not yet implemented)
cg
parents: 29
diff changeset
  2567
2087
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2086
diff changeset
  2568
messagesSent
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2086
diff changeset
  2569
    "return a collection of messages sent by this method"
2678
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2570
    ^ self analyzer messagesSent
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2571
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2572
    "Modified: / 31-08-2013 / 10:43:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2087
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2086
diff changeset
  2573
!
2e1a2d10b891 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2086
diff changeset
  2574
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2575
overrides: anotherMethod
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2576
    "Returns true, if the receiver overwrites anotherMethod.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2577
     This method implements algorithm described in JVM spec, sec. 5.4.2.1"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2578
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  2579
    anotherMethod isJavaMethod ifFalse:[
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2580
        "It is questionable what to return here. Best seems to be
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2581
         do following: if anotherMethod belongs to one of my superclasses
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2582
         (either JavaObject or Object in current impl), then return true,
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2583
         false otherwise"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2584
        ^javaClass inheritsFrom: anotherMethod mclass.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2585
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2586
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2587
    "An instance method m1 (self) declared in class C overrides another instance method m2
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2588
     (anotherMethod) declared in class A iff all of the following are true:"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2589
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2590
    " - m2 has the same name and descriptor as m1. "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2591
    selector == anotherMethod selector ifFalse:[ ^ false ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2592
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2593
    " - C is a subclass of A."
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2594
    (javaClass isSubclassOf: anotherMethod javaClass) ifFalse:[ ^ false ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2595
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2596
    "- either:
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2597
      - m2 is marked ACC_PUBLIC; or is marked ACC_PROTECTED; or is marked nei-
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2598
        ther ACC_PUBLIC nor ACC_PROTECTED nor ACC_PRIVATE and belongs to the
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2599
        same runtime package as C, or"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2600
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2601
    (anotherMethod isPublic or:[anotherMethod isProtected]) ifTrue:[ ^ true ].
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  2602
    (anotherMethod isPackagePrivate
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2603
        and:[javaClass package == anotherMethod javaClass package])
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2604
            ifTrue:[ ^ true ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2605
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2606
    ^false.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2607
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2608
    "Created: / 05-07-2012 / 11:04:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2609
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2610
156
fee47d32724d *** empty log message ***
cg
parents: 155
diff changeset
  2611
package
685
1ea755ac6ac6 *** empty log message ***
cg
parents: 678
diff changeset
  2612
    "in java, class extensions are not possible;
1ea755ac6ac6 *** empty log message ***
cg
parents: 678
diff changeset
  2613
     all methods MUST be in their classes package"
156
fee47d32724d *** empty log message ***
cg
parents: 155
diff changeset
  2614
685
1ea755ac6ac6 *** empty log message ***
cg
parents: 678
diff changeset
  2615
    ^ javaClass package
156
fee47d32724d *** empty log message ***
cg
parents: 155
diff changeset
  2616
!
fee47d32724d *** empty log message ***
cg
parents: 155
diff changeset
  2617
625
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2618
referencesGlobal:aGlobalName
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2619
    "return true, if this method refers to a global named aGlobalName"
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2620
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2621
    |walker any|
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2622
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2623
    "/ quick check, if constantPool includes a methodRef for this
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2624
    "/ selector.
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2625
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2626
    any := false.
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2627
    self javaClass constantPool do:[:const |
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  2628
        (const isNumber
625
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2629
        or:[const isString
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2630
        or:[const isNil]]) ifFalse:[
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2631
            const isJavaClass ifTrue:[
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2632
                any := any or:[const fullName = aGlobalName].
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2633
            ] ifFalse:[
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2634
                const isJavaClassRef ifTrue:[
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2635
                    any := any or:[const fullName = aGlobalName].
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2636
                ]
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2637
            ].
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2638
        ].
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2639
    ].
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2640
    any ifFalse:[^ false].
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2641
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2642
    "/ sigh - must extract all accessed literals ...
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2643
    "/ must deparse the byteCode in order to do this.
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2644
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2645
    walker := JavaByteCodeEnumerator new.
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  2646
    walker
625
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2647
        literalAction:
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2648
            [:pc :slotIndex :const |
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2649
                |mSel|
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2650
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  2651
                (const isNumber
625
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2652
                or:[const isString
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2653
                or:[const isNil]]) ifFalse:[
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2654
                    const isJavaClass ifTrue:[
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2655
                        mSel := const fullName.
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2656
                    ] ifFalse:[
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2657
                        const isJavaClassRef ifTrue:[
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2658
                            mSel := const fullName.
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2659
                        ]
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2660
                    ].
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2661
                ].
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2662
                mSel notNil ifTrue:[
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2663
                    "/ Transcript showCR:mSel.
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2664
                    mSel = aGlobalName ifTrue:[
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2665
                        ^ true
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2666
                    ]
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2667
                ].
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2668
            ].
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2669
    walker decompile:self to:nil.
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2670
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2671
    "Created: / 9.11.1999 / 17:15:46 / cg"
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2672
    "Modified: / 9.11.1999 / 17:18:02 / cg"
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2673
!
b0d1764545b5 checkin from browser
cg
parents: 618
diff changeset
  2674
618
1ef28aa96092 added #sends: query
cg
parents: 611
diff changeset
  2675
sends:aSelectorSymbol
1ef28aa96092 added #sends: query
cg
parents: 611
diff changeset
  2676
    "return true, if this method contains a message-send
1ef28aa96092 added #sends: query
cg
parents: 611
diff changeset
  2677
     with aSelectorSymbol as selector."
1ef28aa96092 added #sends: query
cg
parents: 611
diff changeset
  2678
2678
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2679
     ^ self analyzer sends: aSelectorSymbol
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2680
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2681
    "Created: / 09-11-1999 / 15:38:14 / cg"
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2682
    "Modified: / 09-11-1999 / 17:06:03 / cg"
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2683
    "Modified: / 31-08-2013 / 11:37:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
618
1ef28aa96092 added #sends: query
cg
parents: 611
diff changeset
  2684
!
1ef28aa96092 added #sends: query
cg
parents: 611
diff changeset
  2685
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2686
shouldBeSkippedInDebuggersWalkBack
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2687
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2688
    ^false
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2689
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2690
    "Created: / 30-11-2010 / 15:35:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2691
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2692
18
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
  2693
who
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
  2694
    "return the class and selector of where I am defined in."
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
  2695
64
2e4b425dc40c changes for new methodDict
cg
parents: 55
diff changeset
  2696
    |sel|
18
6c07dc4b1118 checkin from browser
cg
parents: 10
diff changeset
  2697
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 238
diff changeset
  2698
    javaClass isNil ifTrue:[^ nil].
378
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
  2699
    sel := selector.
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
  2700
    "/ sel := javaClass methodDictionary keyAtValue:self ifAbsent:nil.
64
2e4b425dc40c changes for new methodDict
cg
parents: 55
diff changeset
  2701
    sel isNil ifTrue:[^ nil].
129
f40775af59a5 checkin from browser
cg
parents: 127
diff changeset
  2702
    ^ Method::MethodWhoInfo class:javaClass selector:sel.
378
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
  2703
a4701f1e93ba splitted - JavaMethodWithHandler used for those with an
cg
parents: 360
diff changeset
  2704
    "Modified: / 16.10.1998 / 13:42:10 / cg"
5
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
  2705
! !
f026f5d20c15 checkin from browser
cg
parents: 2
diff changeset
  2706
2678
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2707
!JavaMethod methodsFor:'queries-statistic'!
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2708
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2709
messagesPossiblySent
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2710
    ^ self analyzer messagesPossiblySent
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2711
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2712
    "Created: / 30-08-2013 / 14:05:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2713
    "Modified: / 30-08-2013 / 17:07:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2714
!
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2715
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2716
messagesSentToSelf
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2717
    ^ self analyzer messagesSentToSelf
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2718
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2719
    "Created: / 31-08-2013 / 09:32:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2720
!
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2721
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2722
messagesSentToSuper
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2723
    ^ self analyzer messagesSentToSuper
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2724
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2725
    "Created: / 30-03-2013 / 09:59:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2726
    "Modified: / 30-08-2013 / 17:07:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2727
!
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2728
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2729
modifiedClassVars
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2730
    ^ #()
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2731
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2732
    "Created: / 30-08-2013 / 13:16:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2733
!
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2734
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2735
modifiedGlobals
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2736
    ^ #()
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2737
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2738
    "Created: / 05-09-2013 / 15:26:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2739
!
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2740
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2741
modifiedInstVars
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2742
    ^ self analyzer modifiedInstVars
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2743
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2744
    "Created: / 30-08-2013 / 13:18:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2745
!
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2746
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2747
modifiedPoolVars
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2748
    ^ #()
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2749
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2750
    "Created: / 05-09-2013 / 15:25:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2751
!
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2752
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2753
readClassVars
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2754
    ^ #()
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2755
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2756
    "Created: / 05-09-2013 / 15:25:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2757
!
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2758
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2759
readGlobals
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2760
    ^ self analyzer readGlobals
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2761
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2762
    "Created: / 05-09-2013 / 15:26:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2763
!
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2764
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2765
readInstVars
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2766
    ^ self analyzer readInstVars
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2767
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2768
    "Created: / 05-09-2013 / 15:24:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2769
!
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2770
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2771
readPoolVars
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2772
    ^ #()
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2773
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2774
    "Created: / 05-09-2013 / 15:25:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2775
!
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2776
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2777
sends:symbol1 or:symbol2
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2778
    ^ self analyzer sends:symbol1 or:symbol2
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2779
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2780
    "Modified: / 30-08-2013 / 17:07:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2781
!
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2782
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2783
sendsAny: selectors
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2784
    ^ self analyzer sendsAny: selectors
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2785
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2786
    "Created: / 02-12-2011 / 23:05:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2787
    "Modified: / 30-08-2013 / 17:08:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2788
!
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2789
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2790
usedClassVars
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2791
    ^ #() "/ No class vars in Java
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2792
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2793
    "Created: / 30-08-2013 / 13:18:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2794
!
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2795
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2796
usedGlobals
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2797
    ^ self analyzer usedGlobals
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2798
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2799
    "Created: / 05-09-2013 / 15:26:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2800
!
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2801
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2802
usedInstVars
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2803
    ^ self analyzer usedInstVars
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2804
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2805
    "Created: / 30-08-2013 / 13:18:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2806
!
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2807
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2808
usedPoolVars
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2809
    ^ #()
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2810
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2811
    "Created: / 05-09-2013 / 15:25:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2812
! !
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2813
154
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  2814
!JavaMethod methodsFor:'signature parsing'!
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  2815
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  2816
XXXspecWithArgsFromSignature:aSignature withName:name in:aPackage
154
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  2817
    "given a signature, return a spec with args"
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  2818
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  2819
    |s argSpec retvalSpec|
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  2820
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  2821
    s := aSignature readStream.
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  2822
    s next ~~ $( ifTrue:[self halt. ^ name].
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  2823
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  2824
    argSpec := self argSpecWithArgsFromStream:s in:aPackage.
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  2825
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  2826
    s next ~~ $) ifTrue:[self halt. ^ name].
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  2827
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  2828
    retvalSpec := self retvalSpecFromStream:s in:aPackage.
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  2829
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  2830
    ^ retvalSpec , ' ' , name , ' (' , argSpec , ')'
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  2831
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  2832
    "
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  2833
     JavaMethod specFromSignature:'(LObject;)V' withName:'foo'
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  2834
     JavaMethod specFromSignature:'(BB)S'       withName:'foo'
154
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  2835
    "
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  2836
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
  2837
    "Created: / 8.1.1998 / 19:17:58 / cg"
154
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  2838
! !
d51e897b4b5f checkin from browser
cg
parents: 149
diff changeset
  2839
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2840
!JavaMethod methodsFor:'testing'!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2841
2678
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2842
isMethodWithBreakpoints
3111
3119ced5d03c [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
  2843
    ^self isBreakpointed
2678
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2844
        or:[(ConfigurableFeatures includesFeature: #VMBreakpointSupport)
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2845
            and:[self breakpointTable notEmptyOrNil]]
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2846
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2847
    "Created: / 11-04-2013 / 14:50:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2848
!
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2849
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2850
isSynthetic
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2851
    ^ (accessFlags bitAnd:A_SYNTHETIC) ~~ 0
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2852
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2853
    "Created: / 18-10-2010 / 19:09:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2854
! !
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2855
129
f40775af59a5 checkin from browser
cg
parents: 127
diff changeset
  2856
!JavaMethod class methodsFor:'documentation'!
2
91843ac44d2f intitial checkin
cg
parents:
diff changeset
  2857
91843ac44d2f intitial checkin
cg
parents:
diff changeset
  2858
version
2678
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2859
    ^ '$Header: /cvs/stx/stx/libjava/JavaMethod.st,v 1.115 2013-09-06 00:41:24 vrany Exp $'
2145
0df96de83547 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
  2860
!
0df96de83547 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
  2861
0df96de83547 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
  2862
version_CVS
2678
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2555
diff changeset
  2863
    ^ '$Header: /cvs/stx/stx/libjava/JavaMethod.st,v 1.115 2013-09-06 00:41:24 vrany Exp $'
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2864
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2865
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2145
diff changeset
  2866
version_SVN
2731
13f5be2bf83b Merged d87e89dd5276 and fe83a843a7bf (branch default - CVS HEAD)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2711 2678
diff changeset
  2867
    ^ 'Id'
2
91843ac44d2f intitial checkin
cg
parents:
diff changeset
  2868
! !
2107
f4509f6767fa category change
Claus Gittinger <cg@exept.de>
parents: 2095
diff changeset
  2869
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2204
diff changeset
  2870
2086
66b8f6529783 comment
Claus Gittinger <cg@exept.de>
parents: 750
diff changeset
  2871
JavaMethod initialize!