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