<s> package org . eclipse . jdt . internal . core . util ; import org . eclipse . jdt . core . Signature ; import org . eclipse . jdt . core . compiler . CharOperation ; import org . eclipse . jdt . core . util . ClassFileBytesDisassembler ; import org . eclipse . jdt . core . util . IBytecodeVisitor ; import org . eclipse . jdt . core . util . ICodeAttribute ; import org . eclipse . jdt . core . util . IConstantPoolConstant ; import org . eclipse . jdt . core . util . IConstantPoolEntry ; import org . eclipse . jdt . core . util . ILocalVariableAttribute ; import org . eclipse . jdt . core . util . ILocalVariableTableEntry ; import org . eclipse . jdt . core . util . OpcodeStringValues ; import org . eclipse . jdt . core . util . IOpcodeMnemonics ; public class DefaultBytecodeVisitor implements IBytecodeVisitor { private static final String EMPTY_CLASS_NAME = "\"\"" ; private static final String EMPTY_LOCAL_NAME = "" ; private static final int T_BOOLEAN = 4 ; private static final int T_CHAR = 5 ; private static final int T_FLOAT = 6 ; private static final int T_DOUBLE = 7 ; private static final int T_BYTE = 8 ; private static final int T_SHORT = 9 ; private static final int T_INT = 10 ; private static final int T_LONG = 11 ; private StringBuffer buffer ; private String lineSeparator ; private int tabNumber ; private int digitNumberForPC ; private ILocalVariableTableEntry [ ] localVariableTableEntries ; private int localVariableAttributeLength ; private int mode ; private char [ ] [ ] parameterNames ; private boolean isStatic ; private int [ ] argumentSizes ; public DefaultBytecodeVisitor ( ICodeAttribute codeAttribute , char [ ] [ ] parameterNames , char [ ] methodDescriptor , boolean isStatic , StringBuffer buffer , String lineSeparator , int tabNumber , int mode ) { ILocalVariableAttribute localVariableAttribute = codeAttribute . getLocalVariableAttribute ( ) ; this . localVariableAttributeLength = localVariableAttribute == null ? 0 : localVariableAttribute . getLocalVariableTableLength ( ) ; if ( this . localVariableAttributeLength != 0 ) { this . localVariableTableEntries = localVariableAttribute . getLocalVariableTable ( ) ; } else { this . localVariableTableEntries = null ; } this . buffer = buffer ; this . lineSeparator = lineSeparator ; this . tabNumber = tabNumber + 1 ; long codeLength = codeAttribute . getCodeLength ( ) ; this . digitNumberForPC = Long . toString ( codeLength ) . length ( ) ; this . mode = mode ; this . parameterNames = parameterNames ; this . isStatic = isStatic ; if ( parameterNames != null ) { char [ ] [ ] parameterTypes = Signature . getParameterTypes ( methodDescriptor ) ; int length = parameterTypes . length ; this . argumentSizes = new int [ length ] ; for ( int i = 0 ; i < length ; i ++ ) { char [ ] parameterType = parameterTypes [ i ] ; this . argumentSizes [ i ] = parameterType . length == 1 && ( parameterType [ 0 ] == 'D' || parameterType [ 0 ] == 'J' ) ? 2 : 1 ; } } } public void _aaload ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . AALOAD ] ) ; writeNewLine ( ) ; } private void dumpPcNumber ( int pc ) { writeTabs ( ) ; int digitForPC = 1 ; if ( pc != 0 ) { digitForPC = Integer . toString ( pc ) . length ( ) ; } for ( int i = 0 , max = this . digitNumberForPC - digitForPC ; i < max ; i ++ ) { this . buffer . append ( ' ' ) ; } this . buffer . append ( pc ) ; this . buffer . append ( Messages . disassembler_indentation ) ; } public void _aastore ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . AASTORE ] ) ; writeNewLine ( ) ; } public void _aconst_null ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . ACONST_NULL ] ) ; writeNewLine ( ) ; } public void _aload_0 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_load , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . ALOAD_0 ] , getLocalVariableName ( pc , 0 ) } ) ) ; writeNewLine ( ) ; } public void _aload_1 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_load , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . ALOAD_1 ] , getLocalVariableName ( pc , 1 ) } ) ) ; writeNewLine ( ) ; } public void _aload_2 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_load , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . ALOAD_2 ] , getLocalVariableName ( pc , 2 ) } ) ) ; writeNewLine ( ) ; } public void _aload_3 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_load , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . ALOAD_3 ] , getLocalVariableName ( pc , 3 ) } ) ) ; writeNewLine ( ) ; } public void _aload ( int pc , int index ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_load , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . ALOAD ] , getLocalVariableName ( pc , index , true ) } ) ) ; writeNewLine ( ) ; } public void _anewarray ( int pc , int index , IConstantPoolEntry constantClass ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_anewarray , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . ANEWARRAY ] , Integer . toString ( index ) , returnConstantClassName ( constantClass ) } ) ) ; writeNewLine ( ) ; } public void _areturn ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . ARETURN ] ) ; writeNewLine ( ) ; } public void _arraylength ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . ARRAYLENGTH ] ) ; writeNewLine ( ) ; } public void _astore_0 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_store , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . ASTORE_0 ] , getLocalVariableName ( pc , 0 ) } ) ) ; writeNewLine ( ) ; } public void _astore_1 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_store , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . ASTORE_1 ] , getLocalVariableName ( pc , 1 ) } ) ) ; writeNewLine ( ) ; } private String getLocalVariableName ( int pc , int index ) { return getLocalVariableName ( pc , index , false ) ; } private String getLocalVariableName ( int pc , int index , boolean showIndex ) { int nextPC = pc + 1 ; switch ( index ) { case 0 : case 1 : case 2 : case 3 : break ; default : nextPC = index <= 255 ? pc + 2 : pc + 3 ; } for ( int i = 0 , max = this . localVariableAttributeLength ; i < max ; i ++ ) { final ILocalVariableTableEntry entry = this . localVariableTableEntries [ i ] ; final int startPC = entry . getStartPC ( ) ; if ( entry . getIndex ( ) == index && ( startPC <= nextPC ) && ( ( startPC + entry . getLength ( ) ) > nextPC ) ) { final StringBuffer stringBuffer = new StringBuffer ( ) ; if ( showIndex ) { stringBuffer . append ( ' ' ) . append ( index ) ; } stringBuffer . append ( ' ' ) . append ( '[' ) . append ( entry . getName ( ) ) . append ( ']' ) ; return String . valueOf ( stringBuffer ) ; } } if ( this . parameterNames != null ) { if ( index == 0 ) { if ( ! this . isStatic ) { final StringBuffer stringBuffer = new StringBuffer ( ) ; stringBuffer . append ( ' ' ) . append ( '[' ) . append ( "this" ) . append ( ']' ) ; return String . valueOf ( stringBuffer ) ; } } int indexInParameterNames = index ; if ( index != 0 ) { int resolvedPosition = 0 ; if ( ! this . isStatic ) { resolvedPosition = 1 ; } int i = 0 ; loop : for ( int max = this . argumentSizes . length ; i < max ; i ++ ) { if ( index == resolvedPosition ) { break loop ; } resolvedPosition += this . argumentSizes [ i ] ; } indexInParameterNames = i ; } if ( indexInParameterNames < this . parameterNames . length && this . parameterNames [ indexInParameterNames ] != null ) { final StringBuffer stringBuffer = new StringBuffer ( ) ; if ( showIndex ) { stringBuffer . append ( ' ' ) . append ( index ) ; } stringBuffer . append ( ' ' ) . append ( '[' ) . append ( this . parameterNames [ indexInParameterNames ] ) . append ( ']' ) ; return String . valueOf ( stringBuffer ) ; } } if ( showIndex ) { final StringBuffer stringBuffer = new StringBuffer ( ) ; stringBuffer . append ( ' ' ) . append ( index ) ; return String . valueOf ( stringBuffer ) ; } return EMPTY_LOCAL_NAME ; } public void _astore_2 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_store , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . ASTORE_2 ] , getLocalVariableName ( pc , 2 ) } ) ) ; writeNewLine ( ) ; } public void _astore_3 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_store , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . ASTORE_3 ] , getLocalVariableName ( pc , 3 ) } ) ) ; writeNewLine ( ) ; } public void _astore ( int pc , int index ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_store , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . ASTORE ] , getLocalVariableName ( pc , index , true ) } ) ) ; writeNewLine ( ) ; } public void _athrow ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . ATHROW ] ) ; writeNewLine ( ) ; } public void _baload ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . BALOAD ] ) ; writeNewLine ( ) ; } public void _bastore ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . BASTORE ] ) ; writeNewLine ( ) ; } public void _bipush ( int pc , byte _byte ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . BIPUSH ] ) . append ( Messages . disassembler_space ) . append ( _byte ) ; writeNewLine ( ) ; } public void _caload ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . CALOAD ] ) ; writeNewLine ( ) ; } public void _castore ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . CASTORE ] ) ; writeNewLine ( ) ; } public void _checkcast ( int pc , int index , IConstantPoolEntry constantClass ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_checkcast , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . CHECKCAST ] , Integer . toString ( index ) , returnConstantClassName ( constantClass ) } ) ) ; writeNewLine ( ) ; } public void _d2f ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . D2F ] ) ; writeNewLine ( ) ; } public void _d2i ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . D2I ] ) ; writeNewLine ( ) ; } public void _d2l ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . D2L ] ) ; writeNewLine ( ) ; } public void _dadd ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . DADD ] ) ; writeNewLine ( ) ; } public void _daload ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . DALOAD ] ) ; writeNewLine ( ) ; } public void _dastore ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . DASTORE ] ) ; writeNewLine ( ) ; } public void _dcmpg ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . DCMPG ] ) ; writeNewLine ( ) ; } public void _dcmpl ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . DCMPL ] ) ; writeNewLine ( ) ; } public void _dconst_0 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . DCONST_0 ] ) ; writeNewLine ( ) ; } public void _dconst_1 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . DCONST_1 ] ) ; writeNewLine ( ) ; } public void _ddiv ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . DDIV ] ) ; writeNewLine ( ) ; } public void _dload_0 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_load , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . DLOAD_0 ] , getLocalVariableName ( pc , 0 ) } ) ) ; writeNewLine ( ) ; } public void _dload_1 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_load , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . DLOAD_1 ] , getLocalVariableName ( pc , 1 ) } ) ) ; writeNewLine ( ) ; } public void _dload_2 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_load , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . DLOAD_2 ] , getLocalVariableName ( pc , 2 ) } ) ) ; writeNewLine ( ) ; } public void _dload_3 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_load , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . DLOAD_3 ] , getLocalVariableName ( pc , 3 ) } ) ) ; writeNewLine ( ) ; } public void _dload ( int pc , int index ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_load , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . DLOAD ] , getLocalVariableName ( pc , index , true ) } ) ) ; writeNewLine ( ) ; } public void _dmul ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . DMUL ] ) ; writeNewLine ( ) ; } public void _dneg ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . DNEG ] ) ; writeNewLine ( ) ; } public void _drem ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . DREM ] ) ; writeNewLine ( ) ; } public void _dreturn ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . DRETURN ] ) ; writeNewLine ( ) ; } public void _dstore_0 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_store , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . DSTORE_0 ] , getLocalVariableName ( pc , 0 ) } ) ) ; writeNewLine ( ) ; } public void _dstore_1 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_store , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . DSTORE_1 ] , getLocalVariableName ( pc , 1 ) } ) ) ; writeNewLine ( ) ; } public void _dstore_2 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_store , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . DSTORE_2 ] , getLocalVariableName ( pc , 2 ) } ) ) ; writeNewLine ( ) ; } public void _dstore_3 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_store , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . DSTORE_3 ] , getLocalVariableName ( pc , 3 ) } ) ) ; writeNewLine ( ) ; } public void _dstore ( int pc , int index ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_store , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . DSTORE ] , getLocalVariableName ( pc , index , true ) } ) ) ; writeNewLine ( ) ; } public void _dsub ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . DSUB ] ) ; writeNewLine ( ) ; } public void _dup_x1 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . DUP_X1 ] ) ; writeNewLine ( ) ; } public void _dup_x2 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . DUP_X2 ] ) ; writeNewLine ( ) ; } public void _dup ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . DUP ] ) ; writeNewLine ( ) ; } public void _dup2_x1 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . DUP2_X1 ] ) ; writeNewLine ( ) ; } public void _dup2_x2 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . DUP2_X2 ] ) ; writeNewLine ( ) ; } public void _dup2 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . DUP2 ] ) ; writeNewLine ( ) ; } public void _f2d ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . F2D ] ) ; writeNewLine ( ) ; } public void _f2i ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . F2I ] ) ; writeNewLine ( ) ; } public void _f2l ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . F2L ] ) ; writeNewLine ( ) ; } public void _fadd ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . FADD ] ) ; writeNewLine ( ) ; } public void _faload ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . FALOAD ] ) ; writeNewLine ( ) ; } public void _fastore ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . FASTORE ] ) ; writeNewLine ( ) ; } public void _fcmpg ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . FCMPG ] ) ; writeNewLine ( ) ; } public void _fcmpl ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . FCMPL ] ) ; writeNewLine ( ) ; } public void _fconst_0 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . FCONST_0 ] ) ; writeNewLine ( ) ; } public void _fconst_1 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . FCONST_1 ] ) ; writeNewLine ( ) ; } public void _fconst_2 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . FCONST_2 ] ) ; writeNewLine ( ) ; } public void _fdiv ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . FDIV ] ) ; writeNewLine ( ) ; } public void _fload_0 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_load , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . FLOAD_0 ] , getLocalVariableName ( pc , 0 ) } ) ) ; writeNewLine ( ) ; } public void _fload_1 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_load , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . FLOAD_1 ] , getLocalVariableName ( pc , 1 ) } ) ) ; writeNewLine ( ) ; } public void _fload_2 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_load , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . FLOAD_2 ] , getLocalVariableName ( pc , 2 ) } ) ) ; writeNewLine ( ) ; } public void _fload_3 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_load , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . FLOAD_3 ] , getLocalVariableName ( pc , 3 ) } ) ) ; writeNewLine ( ) ; } public void _fload ( int pc , int index ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_load , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . FLOAD ] , getLocalVariableName ( pc , index , true ) } ) ) ; writeNewLine ( ) ; } public void _fmul ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . FMUL ] ) ; writeNewLine ( ) ; } public void _fneg ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . FNEG ] ) ; writeNewLine ( ) ; } public void _frem ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . FREM ] ) ; writeNewLine ( ) ; } public void _freturn ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . FRETURN ] ) ; writeNewLine ( ) ; } public void _fstore_0 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_store , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . FSTORE_0 ] , getLocalVariableName ( pc , 0 ) } ) ) ; writeNewLine ( ) ; } public void _fstore_1 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_store , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . FSTORE_1 ] , getLocalVariableName ( pc , 1 ) } ) ) ; writeNewLine ( ) ; } public void _fstore_2 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_store , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . FSTORE_2 ] , getLocalVariableName ( pc , 2 ) } ) ) ; writeNewLine ( ) ; } public void _fstore_3 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_store , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . FSTORE_3 ] , getLocalVariableName ( pc , 3 ) } ) ) ; writeNewLine ( ) ; } public void _fstore ( int pc , int index ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_store , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . FSTORE ] , getLocalVariableName ( pc , index , true ) } ) ) ; writeNewLine ( ) ; } public void _fsub ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . FSUB ] ) ; writeNewLine ( ) ; } public void _getfield ( int pc , int index , IConstantPoolEntry constantFieldref ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_getfield , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . GETFIELD ] , Integer . toString ( index ) , returnDeclaringClassName ( constantFieldref ) , new String ( constantFieldref . getFieldName ( ) ) , returnClassName ( Signature . toCharArray ( constantFieldref . getFieldDescriptor ( ) ) ) } ) ) ; writeNewLine ( ) ; } public void _getstatic ( int pc , int index , IConstantPoolEntry constantFieldref ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_getstatic , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . GETSTATIC ] , Integer . toString ( index ) , returnDeclaringClassName ( constantFieldref ) , new String ( constantFieldref . getFieldName ( ) ) , returnClassName ( Signature . toCharArray ( constantFieldref . getFieldDescriptor ( ) ) ) } ) ) ; writeNewLine ( ) ; } public void _goto_w ( int pc , int branchOffset ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . GOTO_W ] ) . append ( Messages . disassembler_space ) . append ( branchOffset + pc ) ; writeNewLine ( ) ; } public void _goto ( int pc , int branchOffset ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . GOTO ] ) . append ( Messages . disassembler_space ) . append ( branchOffset + pc ) ; writeNewLine ( ) ; } public void _i2b ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . I2B ] ) ; writeNewLine ( ) ; } public void _i2c ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . I2C ] ) ; writeNewLine ( ) ; } public void _i2d ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . I2D ] ) ; writeNewLine ( ) ; } public void _i2f ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . I2F ] ) ; writeNewLine ( ) ; } public void _i2l ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . I2L ] ) ; writeNewLine ( ) ; } public void _i2s ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . I2S ] ) ; writeNewLine ( ) ; } public void _iadd ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . IADD ] ) ; writeNewLine ( ) ; } public void _iaload ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . IALOAD ] ) ; writeNewLine ( ) ; } public void _iand ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . IAND ] ) ; writeNewLine ( ) ; } public void _iastore ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . IASTORE ] ) ; writeNewLine ( ) ; } public void _if_acmpeq ( int pc , int branchOffset ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . IF_ACMPEQ ] ) . append ( Messages . disassembler_space ) . append ( branchOffset + pc ) ; writeNewLine ( ) ; } public void _if_acmpne ( int pc , int branchOffset ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . IF_ACMPNE ] ) . append ( Messages . disassembler_space ) . append ( branchOffset + pc ) ; writeNewLine ( ) ; } public void _if_icmpeq ( int pc , int branchOffset ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . IF_ICMPEQ ] ) . append ( Messages . disassembler_space ) . append ( branchOffset + pc ) ; writeNewLine ( ) ; } public void _if_icmpge ( int pc , int branchOffset ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . IF_ICMPGE ] ) . append ( Messages . disassembler_space ) . append ( branchOffset + pc ) ; writeNewLine ( ) ; } public void _if_icmpgt ( int pc , int branchOffset ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . IF_ICMPGT ] ) . append ( Messages . disassembler_space ) . append ( branchOffset + pc ) ; writeNewLine ( ) ; } public void _if_icmple ( int pc , int branchOffset ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . IF_ICMPLE ] ) . append ( Messages . disassembler_space ) . append ( branchOffset + pc ) ; writeNewLine ( ) ; } public void _if_icmplt ( int pc , int branchOffset ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . IF_ICMPLT ] ) . append ( Messages . disassembler_space ) . append ( branchOffset + pc ) ; writeNewLine ( ) ; } public void _if_icmpne ( int pc , int branchOffset ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . IF_ICMPNE ] ) . append ( Messages . disassembler_space ) . append ( branchOffset + pc ) ; writeNewLine ( ) ; } public void _iconst_0 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . ICONST_0 ] ) ; writeNewLine ( ) ; } public void _iconst_1 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . ICONST_1 ] ) ; writeNewLine ( ) ; } public void _iconst_2 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . ICONST_2 ] ) ; writeNewLine ( ) ; } public void _iconst_3 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . ICONST_3 ] ) ; writeNewLine ( ) ; } public void _iconst_4 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . ICONST_4 ] ) ; writeNewLine ( ) ; } public void _iconst_5 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . ICONST_5 ] ) ; writeNewLine ( ) ; } public void _iconst_m1 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . ICONST_M1 ] ) ; writeNewLine ( ) ; } public void _idiv ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . IDIV ] ) ; writeNewLine ( ) ; } public void _ifeq ( int pc , int branchOffset ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . IFEQ ] ) . append ( Messages . disassembler_space ) . append ( branchOffset + pc ) ; writeNewLine ( ) ; } public void _ifge ( int pc , int branchOffset ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . IFGE ] ) . append ( Messages . disassembler_space ) . append ( branchOffset + pc ) ; writeNewLine ( ) ; } public void _ifgt ( int pc , int branchOffset ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . IFGT ] ) . append ( Messages . disassembler_space ) . append ( branchOffset + pc ) ; writeNewLine ( ) ; } public void _ifle ( int pc , int branchOffset ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . IFLE ] ) . append ( Messages . disassembler_space ) . append ( branchOffset + pc ) ; writeNewLine ( ) ; } public void _iflt ( int pc , int branchOffset ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . IFLT ] ) . append ( Messages . disassembler_space ) . append ( branchOffset + pc ) ; writeNewLine ( ) ; } public void _ifne ( int pc , int branchOffset ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . IFNE ] ) . append ( Messages . disassembler_space ) . append ( branchOffset + pc ) ; writeNewLine ( ) ; } public void _ifnonnull ( int pc , int branchOffset ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . IFNONNULL ] ) . append ( Messages . disassembler_space ) . append ( branchOffset + pc ) ; writeNewLine ( ) ; } public void _ifnull ( int pc , int branchOffset ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . IFNULL ] ) . append ( Messages . disassembler_space ) . append ( branchOffset + pc ) ; writeNewLine ( ) ; } public void _iinc ( int pc , int index , int _const ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_iinc , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . IINC ] , Integer . toString ( index ) , Integer . toString ( _const ) , getLocalVariableName ( pc , index , false ) } ) ) ; writeNewLine ( ) ; } public void _iload_0 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_load , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . ILOAD_0 ] , getLocalVariableName ( pc , 0 ) } ) ) ; writeNewLine ( ) ; } public void _iload_1 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_load , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . ILOAD_1 ] , getLocalVariableName ( pc , 1 ) } ) ) ; writeNewLine ( ) ; } public void _iload_2 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_load , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . ILOAD_2 ] , getLocalVariableName ( pc , 2 ) } ) ) ; writeNewLine ( ) ; } public void _iload_3 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_load , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . ILOAD_3 ] , getLocalVariableName ( pc , 3 ) } ) ) ; writeNewLine ( ) ; } public void _iload ( int pc , int index ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_load , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . ILOAD ] , getLocalVariableName ( pc , index , true ) } ) ) ; writeNewLine ( ) ; } public void _imul ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . IMUL ] ) ; writeNewLine ( ) ; } public void _ineg ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . INEG ] ) ; writeNewLine ( ) ; } public void _instanceof ( int pc , int index , IConstantPoolEntry constantClass ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_instanceof , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . INSTANCEOF ] , Integer . toString ( index ) , returnConstantClassName ( constantClass ) } ) ) ; writeNewLine ( ) ; } public void _invokedynamic ( int pc , int index , IConstantPoolEntry nameEntry , IConstantPoolEntry descriptorEntry ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_invokedynamic , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . INVOKEDYNAMIC ] , Integer . toString ( index ) , Util . toString ( null , nameEntry . getUtf8Value ( ) , descriptorEntry . getUtf8Value ( ) , true , isCompact ( ) ) } ) ) ; writeNewLine ( ) ; } public void _invokeinterface ( int pc , int index , byte nargs , IConstantPoolEntry constantInterfaceMethodref ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_invokeinterface , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . INVOKEINTERFACE ] , Integer . toString ( index ) , Integer . toString ( nargs ) , Util . toString ( constantInterfaceMethodref . getClassName ( ) , constantInterfaceMethodref . getMethodName ( ) , constantInterfaceMethodref . getMethodDescriptor ( ) , true , isCompact ( ) ) } ) ) ; writeNewLine ( ) ; } public void _invokespecial ( int pc , int index , IConstantPoolEntry constantMethodref ) { dumpPcNumber ( pc ) ; final String signature = returnMethodSignature ( constantMethodref ) ; this . buffer . append ( Messages . bind ( Messages . classformat_invokespecial , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . INVOKESPECIAL ] , Integer . toString ( index ) , signature } ) ) ; writeNewLine ( ) ; } public void _invokestatic ( int pc , int index , IConstantPoolEntry constantMethodref ) { dumpPcNumber ( pc ) ; final String signature = returnMethodSignature ( constantMethodref ) ; this . buffer . append ( Messages . bind ( Messages . classformat_invokestatic , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . INVOKESTATIC ] , Integer . toString ( index ) , signature } ) ) ; writeNewLine ( ) ; } public void _invokevirtual ( int pc , int index , IConstantPoolEntry constantMethodref ) { dumpPcNumber ( pc ) ; final String signature = returnMethodSignature ( constantMethodref ) ; this . buffer . append ( Messages . bind ( Messages . classformat_invokevirtual , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . INVOKEVIRTUAL ] , Integer . toString ( index ) , signature } ) ) ; writeNewLine ( ) ; } public void _ior ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . IOR ] ) ; writeNewLine ( ) ; } public void _irem ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . IREM ] ) ; writeNewLine ( ) ; } public void _ireturn ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . IRETURN ] ) ; writeNewLine ( ) ; } public void _ishl ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . ISHL ] ) ; writeNewLine ( ) ; } public void _ishr ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . ISHR ] ) ; writeNewLine ( ) ; } public void _istore_0 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_store , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . ISTORE_0 ] , getLocalVariableName ( pc , 0 ) } ) ) ; writeNewLine ( ) ; } public void _istore_1 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_store , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . ISTORE_1 ] , getLocalVariableName ( pc , 1 ) } ) ) ; writeNewLine ( ) ; } public void _istore_2 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_store , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . ISTORE_2 ] , getLocalVariableName ( pc , 2 ) } ) ) ; writeNewLine ( ) ; } public void _istore_3 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_store , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . ISTORE_3 ] , getLocalVariableName ( pc , 3 ) } ) ) ; writeNewLine ( ) ; } public void _istore ( int pc , int index ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_store , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . ISTORE ] , getLocalVariableName ( pc , index , true ) } ) ) ; writeNewLine ( ) ; } public void _isub ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . ISUB ] ) ; writeNewLine ( ) ; } public void _iushr ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . IUSHR ] ) ; writeNewLine ( ) ; } public void _ixor ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . IXOR ] ) ; writeNewLine ( ) ; } public void _jsr_w ( int pc , int branchOffset ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . JSR_W ] ) . append ( Messages . disassembler_space ) . append ( branchOffset + pc ) ; writeNewLine ( ) ; } public void _jsr ( int pc , int branchOffset ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . JSR ] ) . append ( Messages . disassembler_space ) . append ( branchOffset + pc ) ; writeNewLine ( ) ; } public void _l2d ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . L2D ] ) ; writeNewLine ( ) ; } public void _l2f ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . L2F ] ) ; writeNewLine ( ) ; } public void _l2i ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . L2I ] ) ; writeNewLine ( ) ; } public void _ladd ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . LADD ] ) ; writeNewLine ( ) ; } public void _laload ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . LALOAD ] ) ; writeNewLine ( ) ; } public void _land ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . LAND ] ) ; writeNewLine ( ) ; } public void _lastore ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . LASTORE ] ) ; writeNewLine ( ) ; } public void _lcmp ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . LCMP ] ) ; writeNewLine ( ) ; } public void _lconst_0 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . LCONST_0 ] ) ; writeNewLine ( ) ; } public void _lconst_1 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . LCONST_1 ] ) ; writeNewLine ( ) ; } public void _ldc_w ( int pc , int index , IConstantPoolEntry constantPoolEntry ) { dumpPcNumber ( pc ) ; switch ( constantPoolEntry . getKind ( ) ) { case IConstantPoolConstant . CONSTANT_Float : this . buffer . append ( Messages . bind ( Messages . classformat_ldc_w_float , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . LDC_W ] , Integer . toString ( index ) , Float . toString ( constantPoolEntry . getFloatValue ( ) ) } ) ) ; break ; case IConstantPoolConstant . CONSTANT_Integer : this . buffer . append ( Messages . bind ( Messages . classformat_ldc_w_integer , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . LDC_W ] , Integer . toString ( index ) , Integer . toString ( constantPoolEntry . getIntegerValue ( ) ) } ) ) ; break ; case IConstantPoolConstant . CONSTANT_String : this . buffer . append ( Messages . bind ( Messages . classformat_ldc_w_string , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . LDC_W ] , Integer . toString ( index ) , Disassembler . escapeString ( constantPoolEntry . getStringValue ( ) ) } ) ) ; break ; case IConstantPoolConstant . CONSTANT_Class : this . buffer . append ( Messages . bind ( Messages . classformat_ldc_w_class , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . LDC_W ] , Integer . toString ( index ) , returnConstantClassName ( constantPoolEntry ) } ) ) ; } writeNewLine ( ) ; } public void _ldc ( int pc , int index , IConstantPoolEntry constantPoolEntry ) { dumpPcNumber ( pc ) ; switch ( constantPoolEntry . getKind ( ) ) { case IConstantPoolConstant . CONSTANT_Float : this . buffer . append ( Messages . bind ( Messages . classformat_ldc_w_float , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . LDC ] , Integer . toString ( index ) , Float . toString ( constantPoolEntry . getFloatValue ( ) ) } ) ) ; break ; case IConstantPoolConstant . CONSTANT_Integer : this . buffer . append ( Messages . bind ( Messages . classformat_ldc_w_integer , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . LDC ] , Integer . toString ( index ) , Integer . toString ( constantPoolEntry . getIntegerValue ( ) ) } ) ) ; break ; case IConstantPoolConstant . CONSTANT_String : this . buffer . append ( Messages . bind ( Messages . classformat_ldc_w_string , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . LDC ] , Integer . toString ( index ) , Disassembler . escapeString ( constantPoolEntry . getStringValue ( ) ) } ) ) ; break ; case IConstantPoolConstant . CONSTANT_Class : this . buffer . append ( Messages . bind ( Messages . classformat_ldc_w_class , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . LDC ] , Integer . toString ( index ) , returnConstantClassName ( constantPoolEntry ) } ) ) ; } writeNewLine ( ) ; } public void _ldc2_w ( int pc , int index , IConstantPoolEntry constantPoolEntry ) { dumpPcNumber ( pc ) ; switch ( constantPoolEntry . getKind ( ) ) { case IConstantPoolConstant . CONSTANT_Long : this . buffer . append ( Messages . bind ( Messages . classformat_ldc2_w_long , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . LDC2_W ] , Integer . toString ( index ) , Long . toString ( constantPoolEntry . getLongValue ( ) ) } ) ) ; break ; case IConstantPoolConstant . CONSTANT_Double : this . buffer . append ( Messages . bind ( Messages . classformat_ldc2_w_double , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . LDC2_W ] , Integer . toString ( index ) , Double . toString ( constantPoolEntry . getDoubleValue ( ) ) } ) ) ; } writeNewLine ( ) ; } public void _ldiv ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . LDIV ] ) ; writeNewLine ( ) ; } public void _lload_0 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_load , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . LLOAD_0 ] , getLocalVariableName ( pc , 0 ) } ) ) ; writeNewLine ( ) ; } public void _lload_1 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_load , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . LLOAD_1 ] , getLocalVariableName ( pc , 1 ) } ) ) ; writeNewLine ( ) ; } public void _lload_2 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_load , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . LLOAD_2 ] , getLocalVariableName ( pc , 2 ) } ) ) ; writeNewLine ( ) ; } public void _lload_3 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_load , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . LLOAD_3 ] , getLocalVariableName ( pc , 3 ) } ) ) ; writeNewLine ( ) ; } public void _lload ( int pc , int index ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_load , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . LLOAD ] , getLocalVariableName ( pc , index , true ) } ) ) ; writeNewLine ( ) ; } public void _lmul ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . LMUL ] ) ; writeNewLine ( ) ; } public void _lneg ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . LNEG ] ) ; writeNewLine ( ) ; } public void _lookupswitch ( int pc , int defaultoffset , int npairs , int [ ] [ ] offset_pairs ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . LOOKUPSWITCH ] ) . append ( " default: " ) . append ( defaultoffset + pc ) ; writeNewLine ( ) ; for ( int i = 0 ; i < npairs ; i ++ ) { writeExtraTabs ( 3 ) ; this . buffer . append ( "case " ) . append ( offset_pairs [ i ] [ 0 ] ) . append ( ": " ) . append ( offset_pairs [ i ] [ 1 ] + pc ) ; writeNewLine ( ) ; } } public void _lor ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . LOR ] ) ; writeNewLine ( ) ; } public void _lrem ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . LREM ] ) ; writeNewLine ( ) ; } public void _lreturn ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . LRETURN ] ) ; writeNewLine ( ) ; } public void _lshl ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . LSHL ] ) ; writeNewLine ( ) ; } public void _lshr ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . LSHR ] ) ; writeNewLine ( ) ; } public void _lstore_0 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_store , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . LSTORE_0 ] , getLocalVariableName ( pc , 0 ) } ) ) ; writeNewLine ( ) ; } public void _lstore_1 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_store , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . LSTORE_1 ] , getLocalVariableName ( pc , 1 ) } ) ) ; writeNewLine ( ) ; } public void _lstore_2 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_store , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . LSTORE_2 ] , getLocalVariableName ( pc , 2 ) } ) ) ; writeNewLine ( ) ; } public void _lstore_3 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_store , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . LSTORE_3 ] , getLocalVariableName ( pc , 3 ) } ) ) ; writeNewLine ( ) ; } public void _lstore ( int pc , int index ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_store , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . LSTORE ] , getLocalVariableName ( pc , index , true ) } ) ) ; writeNewLine ( ) ; } public void _lsub ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . LSUB ] ) ; writeNewLine ( ) ; } public void _lushr ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . LUSHR ] ) ; writeNewLine ( ) ; } public void _lxor ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . LXOR ] ) ; writeNewLine ( ) ; } public void _monitorenter ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . MONITORENTER ] ) ; writeNewLine ( ) ; } public void _monitorexit ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . MONITOREXIT ] ) ; writeNewLine ( ) ; } public void _multianewarray ( int pc , int index , int dimensions , IConstantPoolEntry constantClass ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_multianewarray , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . MULTIANEWARRAY ] , Integer . toString ( index ) , returnConstantClassName ( constantClass ) } ) ) ; writeNewLine ( ) ; } public void _new ( int pc , int index , IConstantPoolEntry constantClass ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_new , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . NEW ] , Integer . toString ( index ) , returnConstantClassName ( constantClass ) } ) ) ; writeNewLine ( ) ; } public void _newarray ( int pc , int atype ) { dumpPcNumber ( pc ) ; switch ( atype ) { case T_BOOLEAN : this . buffer . append ( Messages . bind ( Messages . classformat_newarray_boolean , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . NEWARRAY ] , Integer . toString ( atype ) } ) ) ; break ; case T_CHAR : this . buffer . append ( Messages . bind ( Messages . classformat_newarray_char , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . NEWARRAY ] , Integer . toString ( atype ) } ) ) ; break ; case T_FLOAT : this . buffer . append ( Messages . bind ( Messages . classformat_newarray_float , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . NEWARRAY ] , Integer . toString ( atype ) } ) ) ; break ; case T_DOUBLE : this . buffer . append ( Messages . bind ( Messages . classformat_newarray_double , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . NEWARRAY ] , Integer . toString ( atype ) } ) ) ; break ; case T_BYTE : this . buffer . append ( Messages . bind ( Messages . classformat_newarray_byte , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . NEWARRAY ] , Integer . toString ( atype ) } ) ) ; break ; case T_SHORT : this . buffer . append ( Messages . bind ( Messages . classformat_newarray_short , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . NEWARRAY ] , Integer . toString ( atype ) } ) ) ; break ; case T_INT : this . buffer . append ( Messages . bind ( Messages . classformat_newarray_int , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . NEWARRAY ] , Integer . toString ( atype ) } ) ) ; break ; case T_LONG : this . buffer . append ( Messages . bind ( Messages . classformat_newarray_long , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . NEWARRAY ] , Integer . toString ( atype ) } ) ) ; } writeNewLine ( ) ; } public void _nop ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . NOP ] ) ; writeNewLine ( ) ; } public void _pop ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . POP ] ) ; writeNewLine ( ) ; } public void _pop2 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . POP2 ] ) ; writeNewLine ( ) ; } public void _putfield ( int pc , int index , IConstantPoolEntry constantFieldref ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_putfield , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . PUTFIELD ] , Integer . toString ( index ) , returnDeclaringClassName ( constantFieldref ) , new String ( constantFieldref . getFieldName ( ) ) , returnClassName ( Signature . toCharArray ( constantFieldref . getFieldDescriptor ( ) ) ) } ) ) ; writeNewLine ( ) ; } public void _putstatic ( int pc , int index , IConstantPoolEntry constantFieldref ) { dumpPcNumber ( pc ) ; this . buffer . append ( Messages . bind ( Messages . classformat_putstatic , new String [ ] { OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . PUTSTATIC ] , Integer . toString ( index ) , returnDeclaringClassName ( constantFieldref ) , new String ( constantFieldref . getFieldName ( ) ) , returnClassName ( Signature . toCharArray ( constantFieldref . getFieldDescriptor ( ) ) ) } ) ) ; writeNewLine ( ) ; } public void _ret ( int pc , int index ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . RET ] ) . append ( Messages . disassembler_space ) . append ( index ) ; writeNewLine ( ) ; } public void _return ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . RETURN ] ) ; writeNewLine ( ) ; } public void _saload ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . SALOAD ] ) ; writeNewLine ( ) ; } public void _sastore ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . SASTORE ] ) ; writeNewLine ( ) ; } public void _sipush ( int pc , short value ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . SIPUSH ] ) . append ( Messages . disassembler_space ) . append ( value ) ; writeNewLine ( ) ; } public void _swap ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . SWAP ] ) ; writeNewLine ( ) ; } public void _tableswitch ( int pc , int defaultoffset , int low , int high , int [ ] jump_offsets ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . TABLESWITCH ] ) . append ( " default: " ) . append ( defaultoffset + pc ) ; writeNewLine ( ) ; for ( int i = low ; i < high + 1 ; i ++ ) { writeExtraTabs ( 3 ) ; this . buffer . append ( "case " ) . append ( i ) . append ( ": " ) . append ( jump_offsets [ i - low ] + pc ) ; writeNewLine ( ) ; } } public void _wide ( int pc , int iincopcode , int index , int _const ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . WIDE ] ) ; writeNewLine ( ) ; _iinc ( pc + 1 , index , _const ) ; } public void _wide ( int pc , int opcode , int index ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . WIDE ] ) ; writeNewLine ( ) ; switch ( opcode ) { case IOpcodeMnemonics . ILOAD : _iload ( pc + 1 , index ) ; break ; case IOpcodeMnemonics . FLOAD : _fload ( pc + 1 , index ) ; break ; case IOpcodeMnemonics . ALOAD : _aload ( pc + 1 , index ) ; break ; case IOpcodeMnemonics . LLOAD : _lload ( pc + 1 , index ) ; break ; case IOpcodeMnemonics . DLOAD : _dload ( pc + 1 , index ) ; break ; case IOpcodeMnemonics . ISTORE : _istore ( pc + 1 , index ) ; break ; case IOpcodeMnemonics . FSTORE : _fstore ( pc + 1 , index ) ; break ; case IOpcodeMnemonics . ASTORE : _astore ( pc + 1 , index ) ; break ; case IOpcodeMnemonics . LSTORE : _lstore ( pc + 1 , index ) ; break ; case IOpcodeMnemonics . DSTORE : _dstore ( pc + 1 , index ) ; break ; case IOpcodeMnemonics . RET : _ret ( pc + 1 , index ) ; } } public void _breakpoint ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . BREAKPOINT ] ) ; writeNewLine ( ) ; } public void _impdep1 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . IMPDEP1 ] ) ; writeNewLine ( ) ; } public void _impdep2 ( int pc ) { dumpPcNumber ( pc ) ; this . buffer . append ( OpcodeStringValues . BYTECODE_NAMES [ IOpcodeMnemonics . IMPDEP2 ] ) ; writeNewLine ( ) ; } private boolean isCompact ( ) { return ( this . mode & ClassFileBytesDisassembler . COMPACT ) != 0 ; } private String returnConstantClassName ( IConstantPoolEntry constantClass ) { char [ ] className = constantClass . getClassInfoName ( ) ; if ( className . length == 0 ) { return EMPTY_CLASS_NAME ; } switch ( className [ 0 ] ) { case '[' : StringBuffer classNameBuffer = new StringBuffer ( ) ; Util . appendTypeSignature ( className , 0 , classNameBuffer , isCompact ( ) ) ; return classNameBuffer . toString ( ) ; default : return returnClassName ( className ) ; } } private String returnClassName ( char [ ] classInfoName ) { if ( classInfoName . length == 0 ) { return EMPTY_CLASS_NAME ; } else if ( isCompact ( ) ) { int lastIndexOfSlash = CharOperation . lastIndexOf ( '/' , classInfoName ) ; if ( lastIndexOfSlash != - 1 ) { return new String ( classInfoName , lastIndexOfSlash + 1 , classInfoName . length - lastIndexOfSlash - 1 ) ; } } CharOperation . replace ( classInfoName , '/' , '.' ) ; return new String ( classInfoName ) ; } private String returnDeclaringClassName ( IConstantPoolEntry constantRef ) { final char [ ] className = constantRef . getClassName ( ) ; return returnClassName ( className ) ; } private String returnMethodSignature ( IConstantPoolEntry constantMethodref ) { final char [ ] methodDescriptor = constantMethodref . getMethodDescriptor ( ) ; CharOperation . replace ( methodDescriptor , '$' , '#' ) ; final char [ ] signature = Util . toString ( constantMethodref . getClassName ( ) , constantMethodref . getMethodName ( ) , methodDescriptor , true , isCompact ( ) ) . toCharArray ( ) ; CharOperation . replace ( signature , '#' , '$' ) ; return String . valueOf ( signature ) ; } private void writeNewLine ( ) { this . buffer . append ( this . lineSeparator ) ; } private void writeTabs ( ) { for ( int i = 0 , max = this . tabNumber ; i < max ; i ++ ) { this . buffer . append ( Messages . disassembler_indentation ) ; } } private void writeExtraTabs ( int extraTabs ) { for ( int i = 0 , max = this . tabNumber + extraTabs ; i < max ; i ++ ) { this . buffer . append ( Messages . disassembler_indentation ) ; } } } </s>