JavaByteCodeEnumerator.st
author jv
Thu, 23 Sep 2010 13:52:13 +0000
changeset 748 da0840b7798c
parent 713 75e92ac63bf1
child 749 e898eaeff091
permissions -rw-r--r--
Manufactured by SVN::ImportFromCVSTask to fix repository layout
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
713
75e92ac63bf1 category change
cg
parents: 625
diff changeset
     1
"{ Package: 'stx:libjava' }"
75e92ac63bf1 category change
cg
parents: 625
diff changeset
     2
621
6d134ca834c5 initial checkin
cg
parents:
diff changeset
     3
JavaDecompiler subclass:#JavaByteCodeEnumerator
6d134ca834c5 initial checkin
cg
parents:
diff changeset
     4
	instanceVariableNames:'literalAction'
6d134ca834c5 initial checkin
cg
parents:
diff changeset
     5
	classVariableNames:''
6d134ca834c5 initial checkin
cg
parents:
diff changeset
     6
	poolDictionaries:''
713
75e92ac63bf1 category change
cg
parents: 625
diff changeset
     7
	category:'Languages-Java-Support-Decompiling'
621
6d134ca834c5 initial checkin
cg
parents:
diff changeset
     8
!
6d134ca834c5 initial checkin
cg
parents:
diff changeset
     9
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    10
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    11
!JavaByteCodeEnumerator methodsFor:'accessing'!
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    12
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    13
literalAction
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    14
    "return the value of the instance variable 'literalAction' (automatically generated)"
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    15
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    16
    ^ literalAction
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    17
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    18
    "Created: / 9.11.1999 / 15:27:37 / cg"
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    19
!
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    20
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    21
literalAction:something
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    22
    "set the value of the instance variable 'literalAction' (automatically generated)"
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    23
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    24
    literalAction := something.
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    25
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    26
    "Created: / 9.11.1999 / 15:27:37 / cg"
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    27
! !
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    28
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    29
!JavaByteCodeEnumerator methodsFor:'operand decoding'!
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    30
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    31
constIndexByte
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    32
    lastConstIndex := code at:pc.
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    33
    pc := pc + 1.
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    34
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    35
    lastConstant := javaMethod constantPool at:lastConstIndex ifAbsent:nil.
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    36
    literalAction notNil ifTrue:[
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    37
        literalAction value:pc-2 value:lastConstIndex value:lastConstant
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    38
    ].
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    39
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    40
    "Created: / 9.11.1999 / 15:26:42 / cg"
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    41
    "Modified: / 9.11.1999 / 15:29:24 / cg"
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    42
!
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    43
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    44
constIndexShort
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    45
    lastConstIndex := code wordAt:pc MSB:true.
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    46
    pc := pc + 2.
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    47
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    48
    lastConstant := javaMethod constantPool at:lastConstIndex ifAbsent:nil.
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    49
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    50
    literalAction notNil ifTrue:[
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    51
        literalAction value:pc-3 value:lastConstIndex value:lastConstant
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    52
    ].
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    53
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    54
    "Created: / 9.11.1999 / 15:27:32 / cg"
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    55
    "Modified: / 9.11.1999 / 15:29:31 / cg"
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    56
! !
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    57
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    58
!JavaByteCodeEnumerator methodsFor:'processing'!
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    59
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    60
instructionHookPC:pc op:op spec:spec
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    61
"/    self halt.
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    62
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    63
    "Created: / 9.11.1999 / 15:35:39 / cg"
625
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    64
    "Modified: / 9.11.1999 / 17:21:18 / cg"
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    65
!
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    66
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    67
remember_invokeinterface
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    68
"/    self halt.
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    69
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    70
    "Created: / 9.11.1999 / 17:20:58 / cg"
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    71
    "Modified: / 9.11.1999 / 17:22:04 / cg"
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    72
!
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    73
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    74
remember_invokenonvirtual
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    75
"/    self halt.
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    76
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    77
    "Created: / 9.11.1999 / 17:21:06 / cg"
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    78
    "Modified: / 9.11.1999 / 17:21:51 / cg"
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    79
!
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    80
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    81
remember_invokestatic
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    82
"/    self halt.
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    83
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    84
    "Modified: / 9.11.1999 / 17:22:00 / cg"
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    85
    "Created: / 9.11.1999 / 17:22:14 / cg"
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    86
!
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    87
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    88
remember_invokevirtual
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    89
"/    self halt.
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    90
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    91
    "Created: / 9.11.1999 / 17:21:08 / cg"
b0d1764545b5 checkin from browser
cg
parents: 621
diff changeset
    92
    "Modified: / 9.11.1999 / 17:22:00 / cg"
621
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    93
! !
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    94
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    95
!JavaByteCodeEnumerator class methodsFor:'documentation'!
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    96
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    97
version
748
da0840b7798c Manufactured by SVN::ImportFromCVSTask to fix repository layout
jv
parents: 713
diff changeset
    98
    ^ '$Id$'
621
6d134ca834c5 initial checkin
cg
parents:
diff changeset
    99
! !