JavaByteCodeEnumerator.st
author cg
Fri, 22 Nov 2002 20:14:07 +0000
changeset 713 75e92ac63bf1
parent 625 b0d1764545b5
child 748 da0840b7798c
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: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaByteCodeEnumerator.st,v 1.3 2002/11/22 20:13:48 cg Exp $'
! !