org.eclipse.jdt.internal.compiler.codegen
Class StackMapFrameCodeStream

java.lang.Object
  extended by org.eclipse.jdt.internal.compiler.codegen.CodeStream
      extended by org.eclipse.jdt.internal.compiler.codegen.StackMapFrameCodeStream

public class StackMapFrameCodeStream
extends CodeStream


Nested Class Summary
static class StackMapFrameCodeStream.ExceptionMarker
           
static class StackMapFrameCodeStream.StackDepthMarker
           
static class StackMapFrameCodeStream.StackMarker
           
 
Field Summary
 java.util.Set exceptionMarkers
           
 java.util.ArrayList stackDepthMarkers
           
 java.util.ArrayList stackMarkers
           
 int[] stateIndexes
           
 int stateIndexesCounter
           
 
Fields inherited from class org.eclipse.jdt.internal.compiler.codegen.CodeStream
allLocalsCounter, bCodeStream, classFile, classFileOffset, constantPool, countLabels, DEBUG, exceptionLabels, exceptionLabelsCounter, generateAttributes, ImplicitThis, labels, LABELS_INCREMENT, lastAbruptCompletion, lastEntryPC, lineNumberEnd, lineNumberStart, lineSeparatorPositions, locals, LOCALS_INCREMENT, maxFieldCount, maxLocals, methodDeclaration, pcToSourceMap, pcToSourceMapSize, position, preserveUnusedLocals, RESTART_IN_WIDE_MODE, stackDepth, stackMax, startingClassFileOffset, visibleLocals, wideMode
 
Constructor Summary
StackMapFrameCodeStream(ClassFile givenClassFile)
           
 
Method Summary
 void addDefinitelyAssignedVariables(Scope scope, int initStateIndex)
           
 void addExceptionMarker(int pc, TypeBinding typeBinding)
           
 void addFramePosition(int pc)
           
 void addVariable(LocalVariableBinding localBinding)
           
 void areturn()
           
 void athrow()
           
 void decrStackSize(int offset)
           
 void dreturn()
           
 void freturn()
           
 void generateClassLiteralAccessForType(TypeBinding accessedType, FieldBinding syntheticFieldBinding)
          Macro for building a class descriptor object
 StackMapFrameCodeStream.ExceptionMarker[] getExceptionMarkers()
           
 int[] getFramePositions()
           
 StackMapFrameCodeStream.StackDepthMarker[] getStackDepthMarkers()
           
 StackMapFrameCodeStream.StackMarker[] getStackMarkers()
           
 void goto_(BranchLabel label)
          We didn't call it goto, because there is a conflit with the goto keyword
 void goto_w(BranchLabel label)
           
 boolean hasFramePositions()
           
 void init(ClassFile targetClassFile)
           
 void initializeMaxLocals(MethodBinding methodBinding)
           
 void ireturn()
           
 void lreturn()
           
 void optimizeBranch(int oldPosition, BranchLabel lbl)
           
 void popStateIndex()
           
 void pushExceptionOnStack(TypeBinding binding)
           
 void pushOnStack(TypeBinding binding)
           
 void pushStateIndex(int naturalExitMergeInitStateIndex)
           
 void recordExpressionType(TypeBinding typeBinding)
           
 void removeFramePosition(int pc)
           
 void removeNotDefinitelyAssignedVariables(Scope scope, int initStateIndex)
           
 void reset(ClassFile givenClassFile)
           
 void return_()
           
 
Methods inherited from class org.eclipse.jdt.internal.compiler.codegen.CodeStream
aaload, aastore, aconst_null, addLabel, addVisibleLocalVariable, aload_0, aload_1, aload_2, aload_3, aload, anewarray, arrayAt, arrayAtPut, arraylength, astore_0, astore_1, astore_2, astore_3, astore, baload, bastore, bipush, caload, castore, checkcast, checkcast, d2f, d2i, d2l, dadd, daload, dastore, dcmpg, dcmpl, dconst_0, dconst_1, ddiv, dload_0, dload_1, dload_2, dload_3, dload, dmul, dneg, drem, dstore_0, dstore_1, dstore_2, dstore_3, dstore, dsub, dup_x1, dup_x2, dup, dup2_x1, dup2_x2, dup2, exitUserScope, exitUserScope, f2d, f2i, f2l, fadd, faload, fastore, fcmpg, fcmpl, fconst_0, fconst_1, fconst_2, fdiv, fload_0, fload_1, fload_2, fload_3, fload, fmul, fneg, frem, fstore_0, fstore_1, fstore_2, fstore_3, fstore, fsub, generateBoxingConversion, generateCodeAttributeForProblemMethod, generateConstant, generateEmulatedReadAccessForField, generateEmulatedWriteAccessForField, generateEmulationForConstructor, generateEmulationForField, generateEmulationForMethod, generateImplicitConversion, generateInlinedValue, generateInlinedValue, generateInlinedValue, generateInlinedValue, generateInlinedValue, generateInlinedValue, generateInlinedValue, generateInlinedValue, generateOuterAccess, generateReturnBytecode, generateStringConcatenationAppend, generateSyntheticBodyForConstructorAccess, generateSyntheticBodyForEnumValueOf, generateSyntheticBodyForEnumValues, generateSyntheticBodyForFieldReadAccess, generateSyntheticBodyForFieldWriteAccess, generateSyntheticBodyForMethodAccess, generateSyntheticBodyForSwitchTable, generateSyntheticEnclosingInstanceValues, generateSyntheticOuterArgumentValues, generateUnboxingConversion, generateWideRevertedConditionalBranch, getBaseTypeValue, getContents, getfield, getstatic, getSystemDotOut, getTYPE, i2b, i2c, i2d, i2f, i2l, i2s, iadd, iaload, iand, iastore, iconst_0, iconst_1, iconst_2, iconst_3, iconst_4, iconst_5, iconst_m1, idiv, if_acmpeq, if_acmpne, if_icmpeq, if_icmpge, if_icmpgt, if_icmple, if_icmplt, if_icmpne, ifeq, ifge, ifgt, ifle, iflt, ifne, ifnonnull, ifnull, iinc, iload_0, iload_1, iload_2, iload_3, iload, imul, indexOfSameLineEntrySincePC, ineg, inlineForwardReferencesFromLabelsTargeting, insertionIndex, instance_of, invokeClassForName, invokeEnumOrdinal, invokeinterface, invokeJavaLangAssertionErrorConstructor, invokeJavaLangAssertionErrorDefaultConstructor, invokeJavaLangClassDesiredAssertionStatus, invokeJavaLangEnumvalueOf, invokeJavaLangEnumValues, invokeJavaLangErrorConstructor, invokeJavaLangReflectConstructorNewInstance, invokeJavaLangReflectMethodInvoke, invokeJavaUtilIteratorHasNext, invokeJavaUtilIteratorNext, invokeNoClassDefFoundErrorStringConstructor, invokeObjectGetClass, invokespecial, invokestatic, invokeStringBufferAppend, invokeStringBufferAppendString, invokeStringConcatenationAppendForType, invokeStringConcatenationDefaultConstructor, invokeStringConcatenationStringConstructor, invokeStringConcatenationToString, invokeStringIntern, invokeStringValueOf, invokeSystemArraycopy, invokeSystemOutPrintln, invokeThrowableGetMessage, invokevirtual, ior, irem, isDefinitelyAssigned, ishl, ishr, istore_0, istore_1, istore_2, istore_3, istore, isub, iushr, ixor, jsr_w, jsr, l2d, l2f, l2i, ladd, laload, land, lastore, lcmp, lconst_0, lconst_1, ldc, ldc, ldc, ldc, ldc2_w, ldc2_w, ldcForIndex, ldiv, lload_0, lload_1, lload_2, lload_3, lload, lmul, lneg, load, load, lookupswitch, lor, lrem, lshl, lshr, lstore_0, lstore_1, lstore_2, lstore_3, lstore, lsub, lushr, lxor, monitorenter, monitorexit, multianewarray, new_, newArray, newarray, newClassFromName, newClassFromName, newJavaLangAssertionError, newJavaLangError, newNoClassDefFoundError, newStringContatenation, newWrapperFor, nop, pop, pop2, putfield, putstatic, record, recordPositionsFrom, recordPositionsFrom, registerExceptionHandler, removeUnusedPcToSourceMapEntries, removeVariable, reset, resetForProblemClinit, ret, saload, sastore, sendOperator, sipush, sort, store, swap, tableswitch, throwAnyException, toString, updateLastRecordedEndPC
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

stateIndexes

public int[] stateIndexes

stateIndexesCounter

public int stateIndexesCounter

exceptionMarkers

public java.util.Set exceptionMarkers

stackDepthMarkers

public java.util.ArrayList stackDepthMarkers

stackMarkers

public java.util.ArrayList stackMarkers
Constructor Detail

StackMapFrameCodeStream

public StackMapFrameCodeStream(ClassFile givenClassFile)
Method Detail

addDefinitelyAssignedVariables

public void addDefinitelyAssignedVariables(Scope scope,
                                           int initStateIndex)
Overrides:
addDefinitelyAssignedVariables in class CodeStream

addExceptionMarker

public void addExceptionMarker(int pc,
                               TypeBinding typeBinding)

addFramePosition

public void addFramePosition(int pc)

optimizeBranch

public void optimizeBranch(int oldPosition,
                           BranchLabel lbl)
Overrides:
optimizeBranch in class CodeStream

removeFramePosition

public void removeFramePosition(int pc)

addVariable

public void addVariable(LocalVariableBinding localBinding)
Overrides:
addVariable in class CodeStream

decrStackSize

public void decrStackSize(int offset)
Overrides:
decrStackSize in class CodeStream

recordExpressionType

public void recordExpressionType(TypeBinding typeBinding)
Overrides:
recordExpressionType in class CodeStream

generateClassLiteralAccessForType

public void generateClassLiteralAccessForType(TypeBinding accessedType,
                                              FieldBinding syntheticFieldBinding)
Macro for building a class descriptor object

Overrides:
generateClassLiteralAccessForType in class CodeStream

getExceptionMarkers

public StackMapFrameCodeStream.ExceptionMarker[] getExceptionMarkers()

getFramePositions

public int[] getFramePositions()

getStackDepthMarkers

public StackMapFrameCodeStream.StackDepthMarker[] getStackDepthMarkers()

getStackMarkers

public StackMapFrameCodeStream.StackMarker[] getStackMarkers()

hasFramePositions

public boolean hasFramePositions()

init

public void init(ClassFile targetClassFile)
Overrides:
init in class CodeStream

initializeMaxLocals

public void initializeMaxLocals(MethodBinding methodBinding)
Overrides:
initializeMaxLocals in class CodeStream
Parameters:
methodBinding - the given method binding to initialize the max locals

popStateIndex

public void popStateIndex()

pushStateIndex

public void pushStateIndex(int naturalExitMergeInitStateIndex)

removeNotDefinitelyAssignedVariables

public void removeNotDefinitelyAssignedVariables(Scope scope,
                                                 int initStateIndex)
Overrides:
removeNotDefinitelyAssignedVariables in class CodeStream

reset

public void reset(ClassFile givenClassFile)
Overrides:
reset in class CodeStream

areturn

public void areturn()
Overrides:
areturn in class CodeStream

ireturn

public void ireturn()
Overrides:
ireturn in class CodeStream

lreturn

public void lreturn()
Overrides:
lreturn in class CodeStream

freturn

public void freturn()
Overrides:
freturn in class CodeStream

dreturn

public void dreturn()
Overrides:
dreturn in class CodeStream

return_

public void return_()
Overrides:
return_ in class CodeStream

athrow

public void athrow()
Overrides:
athrow in class CodeStream

pushOnStack

public void pushOnStack(TypeBinding binding)
Overrides:
pushOnStack in class CodeStream

pushExceptionOnStack

public void pushExceptionOnStack(TypeBinding binding)
Overrides:
pushExceptionOnStack in class CodeStream

goto_

public void goto_(BranchLabel label)
Description copied from class: CodeStream
We didn't call it goto, because there is a conflit with the goto keyword

Overrides:
goto_ in class CodeStream

goto_w

public void goto_w(BranchLabel label)
Overrides:
goto_w in class CodeStream