JavaByteCodeEnumerator.st
author Claus Gittinger <cg@exept.de>
Fri, 22 Nov 2002 21:14:07 +0100
changeset 2108 ca8c4e7db2e8
parent 749 e898eaeff091
child 2151 c0b6570c6f9b
permissions -rw-r--r--
category change

"{ Package: 'stx:libjava' }"

JavaDecompiler subclass:#JavaByteCodeEnumerator
	instanceVariableNames:'literalAction'
	classVariableNames:''
	poolDictionaries:''
	category:'Languages-Java-Support-Decompiling'
!


!JavaByteCodeEnumerator methodsFor:'accessing'!

literalAction
    "return the value of the instance variable 'literalAction' (automatically generated)"

    ^ literalAction

    "Created: / 9.11.1999 / 15:27:37 / cg"
!

literalAction:something
    "set the value of the instance variable 'literalAction' (automatically generated)"

    literalAction := something.

    "Created: / 9.11.1999 / 15:27:37 / cg"
! !

!JavaByteCodeEnumerator methodsFor:'operand decoding'!

constIndexByte
    lastConstIndex := code at:pc.
    pc := pc + 1.

    lastConstant := javaMethod constantPool at:lastConstIndex ifAbsent:nil.
    literalAction notNil ifTrue:[
        literalAction value:pc-2 value:lastConstIndex value:lastConstant
    ].

    "Created: / 9.11.1999 / 15:26:42 / cg"
    "Modified: / 9.11.1999 / 15:29:24 / cg"
!

constIndexShort
    lastConstIndex := code wordAt:pc MSB:true.
    pc := pc + 2.

    lastConstant := javaMethod constantPool at:lastConstIndex ifAbsent:nil.

    literalAction notNil ifTrue:[
        literalAction value:pc-3 value:lastConstIndex value:lastConstant
    ].

    "Created: / 9.11.1999 / 15:27:32 / cg"
    "Modified: / 9.11.1999 / 15:29:31 / cg"
! !

!JavaByteCodeEnumerator methodsFor:'processing'!

instructionHookPC:pc op:op spec:spec
"/    self halt.

    "Created: / 9.11.1999 / 15:35:39 / cg"
    "Modified: / 9.11.1999 / 17:21:18 / cg"
!

remember_invokeinterface
"/    self halt.

    "Created: / 9.11.1999 / 17:20:58 / cg"
    "Modified: / 9.11.1999 / 17:22:04 / cg"
!

remember_invokenonvirtual
"/    self halt.

    "Created: / 9.11.1999 / 17:21:06 / cg"
    "Modified: / 9.11.1999 / 17:21:51 / cg"
!

remember_invokestatic
"/    self halt.

    "Modified: / 9.11.1999 / 17:22:00 / cg"
    "Created: / 9.11.1999 / 17:22:14 / cg"
!

remember_invokevirtual
"/    self halt.

    "Created: / 9.11.1999 / 17:21:08 / cg"
    "Modified: / 9.11.1999 / 17:22:00 / cg"
! !

!JavaByteCodeEnumerator class methodsFor:'documentation'!

version
    ^ '$Header: /cvs/stx/stx/libjava/JavaByteCodeEnumerator.st,v 1.3 2002-11-22 20:13:48 cg Exp $'
! !