JavaByteCodeEnumerator.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 28 Aug 2013 09:16:36 +0100
branchdevelopment
changeset 2674 8b3736c87626
parent 2429 ebece4dcaab9
child 2711 a00302fe5083
permissions -rw-r--r--
Added InetAddressTests to cover different layouts in different OpenJDK 6. There seems to be at least two different clas layouts for Inet4Address and Inet6Address. This testcase should test whether native methods handle both layouts correctly.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
     1
"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
     2
 COPYRIGHT (c) 1996-2011 by Claus Gittinger
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
     3
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2295
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: 2295
diff changeset
     5
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2295
diff changeset
     6
 COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2295
diff changeset
     7
                            SWING Research Group, Czech Technical University in Prague
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2295
diff changeset
     8
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
     9
 This software is furnished under a license and may be used
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
    10
 only in accordance with the terms of that license and with the
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
    11
 inclusion of the above copyright notice.   This software may not
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
    12
 be provided or otherwise made available to, or used by, any
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
    13
 other person.  No title to or ownership of the software is
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
    14
 hereby transferred.
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2295
diff changeset
    15
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2295
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: 2295
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: 2295
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: 2295
diff changeset
    19
     as of 1.9.2010
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
    20
"
713
75e92ac63bf1 category change
cg
parents: 625
diff changeset
    21
"{ Package: 'stx:libjava' }"
75e92ac63bf1 category change
cg
parents: 625
diff changeset
    22
621
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    23
JavaDecompiler subclass:#JavaByteCodeEnumerator
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    24
	instanceVariableNames:'literalAction'
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    25
	classVariableNames:''
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    26
	poolDictionaries:''
713
75e92ac63bf1 category change
cg
parents: 625
diff changeset
    27
	category:'Languages-Java-Support-Decompiling'
621
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    28
!
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    29
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
    30
!JavaByteCodeEnumerator class methodsFor:'documentation'!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
    31
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
    32
copyright
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
    33
"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
    34
 COPYRIGHT (c) 1996-2011 by Claus Gittinger
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
    35
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2295
diff changeset
    36
 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: 2295
diff changeset
    37
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2295
diff changeset
    38
 COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2295
diff changeset
    39
                            SWING Research Group, Czech Technical University in Prague
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2295
diff changeset
    40
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
    41
 This software is furnished under a license and may be used
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
    42
 only in accordance with the terms of that license and with the
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
    43
 inclusion of the above copyright notice.   This software may not
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
    44
 be provided or otherwise made available to, or used by, any
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
    45
 other person.  No title to or ownership of the software is
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
    46
 hereby transferred.
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2295
diff changeset
    47
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2295
diff changeset
    48
 [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: 2295
diff changeset
    49
     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: 2295
diff changeset
    50
     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: 2295
diff changeset
    51
     as of 1.9.2010
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2295
diff changeset
    52
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
    53
"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
    54
! !
621
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    55
2396
fadc6d7a2f5b Updated to rev 009a0df3afce
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2353
diff changeset
    56
621
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    57
!JavaByteCodeEnumerator methodsFor:'accessing'!
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    58
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    59
literalAction
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    60
    "return the value of the instance variable 'literalAction' (automatically generated)"
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    61
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    62
    ^ literalAction
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    63
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    64
    "Created: / 9.11.1999 / 15:27:37 / cg"
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    65
!
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    66
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    67
literalAction:something
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    68
    "set the value of the instance variable 'literalAction' (automatically generated)"
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    69
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    70
    literalAction := something.
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    71
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    72
    "Created: / 9.11.1999 / 15:27:37 / cg"
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    73
! !
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    74
2396
fadc6d7a2f5b Updated to rev 009a0df3afce
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2353
diff changeset
    75
621
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    76
!JavaByteCodeEnumerator methodsFor:'operand decoding'!
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    77
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    78
constIndexByte
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    79
    lastConstIndex := code at:pc.
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    80
    pc := pc + 1.
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    81
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    82
    lastConstant := javaMethod constantPool at:lastConstIndex ifAbsent:nil.
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    83
    literalAction notNil ifTrue:[
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    84
        literalAction value:pc-2 value:lastConstIndex value:lastConstant
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    85
    ].
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    86
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    87
    "Created: / 9.11.1999 / 15:26:42 / cg"
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    88
    "Modified: / 9.11.1999 / 15:29:24 / cg"
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    89
!
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    90
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    91
constIndexShort
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    92
    lastConstIndex := code wordAt:pc MSB:true.
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    93
    pc := pc + 2.
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    94
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    95
    lastConstant := javaMethod constantPool at:lastConstIndex ifAbsent:nil.
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    96
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    97
    literalAction notNil ifTrue:[
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    98
        literalAction value:pc-3 value:lastConstIndex value:lastConstant
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    99
    ].
6d134ca834c5 initial checkin
cg
parents:
diff changeset
   100
6d134ca834c5 initial checkin
cg
parents:
diff changeset
   101
    "Created: / 9.11.1999 / 15:27:32 / cg"
6d134ca834c5 initial checkin
cg
parents:
diff changeset
   102
    "Modified: / 9.11.1999 / 15:29:31 / cg"
6d134ca834c5 initial checkin
cg
parents:
diff changeset
   103
! !
6d134ca834c5 initial checkin
cg
parents:
diff changeset
   104
2396
fadc6d7a2f5b Updated to rev 009a0df3afce
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2353
diff changeset
   105
621
6d134ca834c5 initial checkin
cg
parents:
diff changeset
   106
!JavaByteCodeEnumerator methodsFor:'processing'!
6d134ca834c5 initial checkin
cg
parents:
diff changeset
   107
6d134ca834c5 initial checkin
cg
parents:
diff changeset
   108
instructionHookPC:pc op:op spec:spec
6d134ca834c5 initial checkin
cg
parents:
diff changeset
   109
"/    self halt.
6d134ca834c5 initial checkin
cg
parents:
diff changeset
   110
6d134ca834c5 initial checkin
cg
parents:
diff changeset
   111
    "Created: / 9.11.1999 / 15:35:39 / cg"
625
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
   112
    "Modified: / 9.11.1999 / 17:21:18 / cg"
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
   113
!
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
   114
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
   115
remember_invokeinterface
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
   116
"/    self halt.
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
   117
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
   118
    "Created: / 9.11.1999 / 17:20:58 / cg"
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
   119
    "Modified: / 9.11.1999 / 17:22:04 / cg"
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
   120
!
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
   121
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
   122
remember_invokenonvirtual
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
   123
"/    self halt.
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
   124
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
   125
    "Created: / 9.11.1999 / 17:21:06 / cg"
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
   126
    "Modified: / 9.11.1999 / 17:21:51 / cg"
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
   127
!
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
   128
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
   129
remember_invokestatic
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
   130
"/    self halt.
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
   131
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
   132
    "Modified: / 9.11.1999 / 17:22:00 / cg"
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
   133
    "Created: / 9.11.1999 / 17:22:14 / cg"
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
   134
!
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
   135
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
   136
remember_invokevirtual
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
   137
"/    self halt.
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
   138
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
   139
    "Created: / 9.11.1999 / 17:21:08 / cg"
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
   140
    "Modified: / 9.11.1999 / 17:22:00 / cg"
621
6d134ca834c5 initial checkin
cg
parents:
diff changeset
   141
! !
6d134ca834c5 initial checkin
cg
parents:
diff changeset
   142
2396
fadc6d7a2f5b Updated to rev 009a0df3afce
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2353
diff changeset
   143
621
6d134ca834c5 initial checkin
cg
parents:
diff changeset
   144
!JavaByteCodeEnumerator class methodsFor:'documentation'!
6d134ca834c5 initial checkin
cg
parents:
diff changeset
   145
6d134ca834c5 initial checkin
cg
parents:
diff changeset
   146
version
2396
fadc6d7a2f5b Updated to rev 009a0df3afce
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2353
diff changeset
   147
    ^ '$Header: /cvs/stx/stx/libjava/JavaByteCodeEnumerator.st,v 1.8 2013-02-25 11:15:31 vrany Exp $'
2295
e7ee060d44b9 fixed: #version_SVN ($ to §)
Claus Gittinger <cg@exept.de>
parents: 2167
diff changeset
   148
!
e7ee060d44b9 fixed: #version_SVN ($ to §)
Claus Gittinger <cg@exept.de>
parents: 2167
diff changeset
   149
e7ee060d44b9 fixed: #version_SVN ($ to §)
Claus Gittinger <cg@exept.de>
parents: 2167
diff changeset
   150
version_CVS
2396
fadc6d7a2f5b Updated to rev 009a0df3afce
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2353
diff changeset
   151
    ^ '$Header: /cvs/stx/stx/libjava/JavaByteCodeEnumerator.st,v 1.8 2013-02-25 11:15:31 vrany Exp $'
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2295
diff changeset
   152
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2295
diff changeset
   153
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2295
diff changeset
   154
version_HG
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2295
diff changeset
   155
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2295
diff changeset
   156
    ^ '$Changeset: <not expanded> $'
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   157
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   158
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2108
diff changeset
   159
version_SVN
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2295
diff changeset
   160
    ^ '§Id§'
2108
ca8c4e7db2e8 category change
Claus Gittinger <cg@exept.de>
parents: 749
diff changeset
   161
! !
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2295
diff changeset
   162