JavaMethodAnalyzer.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Tue, 10 Sep 2013 10:25:34 +0100
branchdevelopment
changeset 2723 02802ba0024f
parent 2717 16564a7101b8
child 2719 0d749922f255
permissions -rw-r--r--
Added JavaSourceParser - a base class for JavaSyntaxHighlighter.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2698
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
 COPYRIGHT (c) 1996-2011 by Claus Gittinger
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
 New code and modifications done at SWING Research Group [1]:
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
 COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
                            SWING Research Group, Czech Technical University in Prague
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
 This software is furnished under a license and may be used
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
 only in accordance with the terms of that license and with the
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
 inclusion of the above copyright notice.   This software may not
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
 be provided or otherwise made available to, or used by, any
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
 other person.  No title to or ownership of the software is
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
 hereby transferred.
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
 [1] Code written at SWING Research Group contains a signature
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
     of one of the above copright owners. For exact set of such code,
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
     see the differences between this version and version stx:libjava
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
     as of 1.9.2010
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
"
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
"{ Package: 'stx:libjava' }"
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
JavaByteCodeProcessorAdapter subclass:#JavaMethodAnalyzer
2708
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
    24
	instanceVariableNames:'fieldsAccessed fieldsRead fieldsWritten staticsAccessed
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
    25
		staticsRead staticsWritten methodsInvoked'
2698
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
	classVariableNames:''
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
	poolDictionaries:''
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
	category:'Languages-Java-Support-Decompiling'
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
!
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
!JavaMethodAnalyzer class methodsFor:'documentation'!
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
copyright
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
"
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
 COPYRIGHT (c) 1996-2011 by Claus Gittinger
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
 New code and modifications done at SWING Research Group [1]:
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
 COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
                            SWING Research Group, Czech Technical University in Prague
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
 This software is furnished under a license and may be used
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
 only in accordance with the terms of that license and with the
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
 inclusion of the above copyright notice.   This software may not
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
 be provided or otherwise made available to, or used by, any
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
 other person.  No title to or ownership of the software is
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
 hereby transferred.
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
 [1] Code written at SWING Research Group contains a signature
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
     of one of the above copright owners. For exact set of such code,
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
     see the differences between this version and version stx:libjava
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
     as of 1.9.2010
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
"
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
!
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
documentation
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
"
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
    A helper class to analyze method's bytecode and keep some statistics
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
    like read/written fields, sent messages, referenced classes...
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
    [author:]
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
        Jan Vrany <jan.vrany@fit.cvut.cz>
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
    [instance variables:]
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
    [class variables:]
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
    [see also:]
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
"
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
! !
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
!JavaMethodAnalyzer class methodsFor:'analyzing'!
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
analyze: aJavaMethod
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
    "Analyzes the given method and return the analyzer,
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
     which can be in turn asked for various informstion"
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
     ^ self new
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
        process: aJavaMethod 
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
        receiver: nil
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
        arguments: (Array new: aJavaMethod javaNumArgs);
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
        yourself
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
    "Created: / 30-08-2013 / 13:33:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
! !
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
!JavaMethodAnalyzer methodsFor:'instructions'!
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
getfield
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
    | fieldRef |
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
    fieldRef := constantPool at: self fetchIndex2.     
2708
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
    95
    fieldsRead add: fieldRef.
2698
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
    fieldsAccessed add: fieldRef.
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
    "Created: / 30-08-2013 / 13:25:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2708
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
    99
    "Modified: / 05-09-2013 / 16:19:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   100
!
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   101
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   102
getstatic
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   103
    | fieldRef |
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   104
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   105
    fieldRef := constantPool at: self fetchIndex2.     
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   106
    staticsRead add: fieldRef.
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   107
    staticsAccessed  add: fieldRef.
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   108
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   109
    "Created: / 05-09-2013 / 16:19:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2698
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
!
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
invinterface
2704
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   113
    methodsInvoked add: (constantPool at: self fetchBytes2).
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   114
    self fetchBytes2  "/ count
2698
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   115
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   116
    "Created: / 30-08-2013 / 17:05:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2704
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   117
    "Modified: / 30-08-2013 / 20:28:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2698
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   118
!
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   119
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   120
invnonvirt
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   121
     methodsInvoked add: (constantPool at: self fetchBytes2)
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   122
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   123
    "Created: / 30-08-2013 / 17:05:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   124
!
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   125
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   126
invstatic
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   127
    methodsInvoked add: (constantPool at: self fetchBytes2)
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   128
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   129
    "Created: / 30-08-2013 / 17:05:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   130
!
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   131
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   132
invvirt
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   133
    methodsInvoked add: (constantPool at: self fetchBytes2)
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   134
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   135
    "Created: / 30-08-2013 / 17:05:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   136
!
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   137
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   138
putfield
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   139
    | fieldRef |
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   140
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   141
    fieldRef := constantPool at: self fetchIndex2.     
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   142
    fieldsAccessed add: fieldRef.
2708
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   143
    fieldsWritten add: fieldRef.
2698
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   144
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   145
    "Created: / 30-08-2013 / 13:26:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   146
    "Modified: / 30-08-2013 / 17:02:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2708
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   147
!
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   148
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   149
puystatic
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   150
    | fieldRef |
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   151
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   152
    fieldRef := constantPool at: self fetchIndex2.     
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   153
    staticsWritten add: fieldRef.
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   154
    staticsAccessed  add: fieldRef.
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   155
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   156
    "Created: / 05-09-2013 / 16:19:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2698
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   157
! !
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   158
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   159
!JavaMethodAnalyzer methodsFor:'processing loop'!
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   160
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   161
process: aMethod receiver: aReceiver arguments: args 
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   162
    fieldsAccessed := Set new.
2708
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   163
    fieldsRead := Set new.
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   164
    fieldsWritten := Set new.
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   165
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   166
    staticsAccessed := Set new.
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   167
    staticsRead  := Set new.
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   168
    staticsWritten  := Set new.
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   169
2698
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   170
    methodsInvoked := Set new.
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   171
2705
e693added0af Changed registration of Java classes into system dictionary.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2704
diff changeset
   172
    "/ Abstract, native or other funny method
e693added0af Changed registration of Java classes into system dictionary.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2704
diff changeset
   173
    aMethod byteCode isNil ifTrue:[ ^ self ].
e693added0af Changed registration of Java classes into system dictionary.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2704
diff changeset
   174
2698
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   175
    ^ super process: aMethod receiver: aReceiver arguments: args.
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   176
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   177
    "Created: / 30-08-2013 / 13:23:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2708
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   178
    "Modified: / 05-09-2013 / 16:18:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2698
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   179
! !
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   180
2704
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   181
!JavaMethodAnalyzer methodsFor:'queries'!
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   182
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   183
sends: selector
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   184
    ^ self sendsAny: (Array with: selector)
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   185
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   186
    "Created: / 31-08-2013 / 11:38:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   187
!
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   188
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   189
sends:selector1 or:selector2
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   190
    ^ self sendsAny: (Array with: selector1 with: selector2)
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   191
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   192
    "Modified: / 31-08-2013 / 11:39:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   193
!
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   194
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   195
sendsAny: selectors
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   196
    selectors do:[:pair|
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   197
        methodsInvoked do:[:methodRef |
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   198
            methodRef selector = pair first ifTrue:[
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   199
                ^ true
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   200
            ]
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   201
        ]
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   202
    ].
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   203
    ^ false
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   204
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   205
    "Created: / 02-12-2011 / 23:05:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   206
    "Modified: / 31-08-2013 / 21:33:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   207
! !
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   208
2698
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   209
!JavaMethodAnalyzer methodsFor:'queries-statistic'!
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   210
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   211
messagesPossiblySent
2704
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   212
    ^ #()
2698
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   213
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   214
    "Created: / 30-08-2013 / 14:05:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2704
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   215
    "Modified: / 31-08-2013 / 10:44:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   216
!
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   217
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   218
messagesSent
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   219
    ^ methodsInvoked collect:[:methodRef |methodRef selector ]
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   220
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   221
    "Created: / 31-08-2013 / 10:44:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   222
    "Modified: / 31-08-2013 / 21:32:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   223
!
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   224
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   225
messagesSentToSelf
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   226
    ^#()
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   227
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   228
    "Created: / 31-08-2013 / 09:31:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2698
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   229
!
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   230
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   231
messagesSentToSuper
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   232
    ^#()
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   233
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   234
    "Created: / 30-03-2013 / 09:59:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   235
!
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   236
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   237
modifiedClassVars
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   238
    ^#() "/ No class vars in Java
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   239
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   240
    "Created: / 30-08-2013 / 13:16:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   241
!
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   242
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   243
modifiedInstVars
2708
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   244
    ^ method isStatic ifTrue:[
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   245
        staticsWritten collect:[:ref | ref name ]
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   246
    ] ifFalse:[
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   247
        fieldsWritten collect:[:ref | ref name ]
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   248
    ]
2698
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   249
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   250
    "Created: / 30-08-2013 / 13:18:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2708
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   251
    "Modified: / 05-09-2013 / 16:23:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   252
!
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   253
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   254
readGlobals
2717
16564a7101b8 Initial support for displaying only selected method's source in browser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2708
diff changeset
   255
    ^#()
2708
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   256
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   257
    "Created: / 05-09-2013 / 15:27:42 / 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: 2708
diff changeset
   258
    "Modified: / 08-09-2013 / 23:00:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2708
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   259
!
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   260
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   261
readInstVars
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   262
    ^ method isStatic ifTrue:[
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   263
        staticsRead collect:[:ref | ref name ]
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   264
    ] ifFalse:[
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   265
        fieldsRead collect:[:ref | ref name ]
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   266
    ]
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   267
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   268
    "Created: / 05-09-2013 / 15:27:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2698
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   269
!
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   270
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   271
usedClassVars
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   272
    ^ #() "/ No class vars in Java
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   273
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   274
    "Created: / 30-08-2013 / 13:18:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   275
!
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   276
2708
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   277
usedGlobals
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   278
    ^ self readGlobals
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   279
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   280
    "Created: / 05-09-2013 / 15:27:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   281
!
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   282
2698
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   283
usedInstVars
2708
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   284
    ^ method isStatic ifTrue:[
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   285
        staticsAccessed  collect:[:ref | ref name ]
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   286
    ] ifFalse:[
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   287
        fieldsAccessed  collect:[:ref | ref name ]
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   288
    ]
2698
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   289
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   290
    "Created: / 30-08-2013 / 13:18:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2708
648286432b9a More support fro browser (senders/implementors, field references)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2705
diff changeset
   291
    "Modified: / 05-09-2013 / 16:22:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2698
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   292
! !
c243b2455f71 Added JavaMethodAnalyzer to gather statistics about Java method.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   293
2704
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   294
!JavaMethodAnalyzer methodsFor:'queries-statistic-Java'!
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   295
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   296
methodsInvoked
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   297
    "Return a set of method invoked by the analyzed
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   298
     method. 
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   299
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   300
     Unlike #messagesSent, which return only
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   301
     selectors, this method returns a list of method refs,
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   302
     so the receivers' declared class is also accessible
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   303
     (through ref classRef)"
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   304
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   305
    ^ methodsInvoked
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   306
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   307
    "Created: / 31-08-2013 / 23:22:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   308
! !
0f7f5f5c67c7 Various fixes:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2698
diff changeset
   309