- java.lang.Object
-
- kala.compress.harmony.pack200.BandSet
-
- kala.compress.harmony.pack200.BcBands
-
public class BcBands extends BandSet
Bytecode bands (corresponds to thebc_bandsset of bands in the pack200 specification)
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class kala.compress.harmony.pack200.BandSet
BandSet.BandAnalysisResults, BandSet.BandData
-
-
Field Summary
Fields Modifier and Type Field Description private static intALOAD_0private IntListbcByteprivate IntListbcCaseCountprivate IntListbcCaseValueprivate java.util.List<CPClass>bcClassRefprivate IntListbcCodesprivate java.util.List<CPDouble>bcDoubleRefprivate java.util.List<CPMethodOrField>bcFieldRefprivate java.util.List<CPFloat>bcFloatRefprivate java.util.List<CPMethodOrField>bcIMethodRefprivate java.util.ListbcInitRefprivate java.util.List<CPInt>bcIntrefprivate IntListbciRenumberingprivate java.util.ListbcLabelprivate IntListbcLabelRelativeOffsetsprivate IntListbcLocalprivate java.util.List<CPLong>bcLongRefprivate java.util.List<CPMethodOrField>bcMethodRefprivate IntListbcShortprivate java.util.List<CPString>bcStringRefprivate java.util.ListbcSuperFieldprivate java.util.ListbcSuperMethodprivate java.util.ListbcThisFieldprivate java.util.ListbcThisMethodprivate intbyteCodeOffsetprivate CpBandscpBandsprivate java.lang.StringcurrentClassprivate java.lang.StringcurrentNewClassprivate static intendMarkerprivate static intIINCprivate static intINVOKEINTERFACEprivate java.util.Map<org.objectweb.asm.Label,java.lang.Integer>labelsToOffsetsprivate static intLOOKUPSWITCHprivate static intMULTIANEWARRAYprivate intrenumberedOffsetprivate Segmentsegmentprivate java.lang.StringsuperClassprivate static intTABLESWITCHprivate static intWIDE-
Fields inherited from class kala.compress.harmony.pack200.BandSet
effort, segmentHeader
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidfinaliseBands()All input classes for the segment have now been read in, so this method is called so that this class can calculate/complete anything it could not do while classes were being read.private java.util.List<java.lang.Integer>getIndexInClass(java.util.List<CPMethodOrField> cPMethodOrFieldList)private java.util.List<java.lang.Integer>getIndexInClassForConstructor(java.util.List<CPMethodOrField> cPMethodList)voidpack(java.io.OutputStream out)Write the packed set of bands to the given output streamvoidsetCurrentClass(java.lang.String name, java.lang.String superName)private voidupdateRenumbering()voidvisitEnd()voidvisitFieldInsn(int opcode, java.lang.String owner, java.lang.String name, java.lang.String desc)voidvisitIincInsn(int var, int increment)voidvisitInsn(int opcode)voidvisitIntInsn(int opcode, int operand)voidvisitJumpInsn(int opcode, org.objectweb.asm.Label label)voidvisitLabel(org.objectweb.asm.Label label)voidvisitLdcInsn(java.lang.Object cst)voidvisitLookupSwitchInsn(org.objectweb.asm.Label dflt, int[] keys, org.objectweb.asm.Label[] labels)voidvisitMethodInsn(int opcode, java.lang.String owner, java.lang.String name, java.lang.String desc)voidvisitMultiANewArrayInsn(java.lang.String desc, int dimensions)voidvisitTableSwitchInsn(int min, int max, org.objectweb.asm.Label dflt, org.objectweb.asm.Label... labels)voidvisitTypeInsn(int opcode, java.lang.String type)voidvisitVarInsn(int opcode, int var)-
Methods inherited from class kala.compress.harmony.pack200.BandSet
cpEntryListToArray, cpEntryOrNullListToArray, encodeBandInt, encodeFlags, encodeFlags, encodeScalar, encodeScalar, integerListToArray, longListToArray
-
-
-
-
Field Detail
-
MULTIANEWARRAY
private static final int MULTIANEWARRAY
- See Also:
- Constant Field Values
-
ALOAD_0
private static final int ALOAD_0
- See Also:
- Constant Field Values
-
WIDE
private static final int WIDE
- See Also:
- Constant Field Values
-
INVOKEINTERFACE
private static final int INVOKEINTERFACE
- See Also:
- Constant Field Values
-
TABLESWITCH
private static final int TABLESWITCH
- See Also:
- Constant Field Values
-
IINC
private static final int IINC
- See Also:
- Constant Field Values
-
LOOKUPSWITCH
private static final int LOOKUPSWITCH
- See Also:
- Constant Field Values
-
endMarker
private static final int endMarker
- See Also:
- Constant Field Values
-
cpBands
private final CpBands cpBands
-
segment
private final Segment segment
-
bcCodes
private final IntList bcCodes
-
bcCaseCount
private final IntList bcCaseCount
-
bcCaseValue
private final IntList bcCaseValue
-
bcByte
private final IntList bcByte
-
bcShort
private final IntList bcShort
-
bcLocal
private final IntList bcLocal
-
bcLabel
private final java.util.List bcLabel
-
bcIntref
private final java.util.List<CPInt> bcIntref
-
bcFloatRef
private final java.util.List<CPFloat> bcFloatRef
-
bcLongRef
private final java.util.List<CPLong> bcLongRef
-
bcDoubleRef
private final java.util.List<CPDouble> bcDoubleRef
-
bcStringRef
private final java.util.List<CPString> bcStringRef
-
bcClassRef
private final java.util.List<CPClass> bcClassRef
-
bcFieldRef
private final java.util.List<CPMethodOrField> bcFieldRef
-
bcMethodRef
private final java.util.List<CPMethodOrField> bcMethodRef
-
bcIMethodRef
private final java.util.List<CPMethodOrField> bcIMethodRef
-
bcThisField
private java.util.List bcThisField
-
bcSuperField
private final java.util.List bcSuperField
-
bcThisMethod
private java.util.List bcThisMethod
-
bcSuperMethod
private java.util.List bcSuperMethod
-
bcInitRef
private java.util.List bcInitRef
-
currentClass
private java.lang.String currentClass
-
superClass
private java.lang.String superClass
-
currentNewClass
private java.lang.String currentNewClass
-
bciRenumbering
private final IntList bciRenumbering
-
labelsToOffsets
private final java.util.Map<org.objectweb.asm.Label,java.lang.Integer> labelsToOffsets
-
byteCodeOffset
private int byteCodeOffset
-
renumberedOffset
private int renumberedOffset
-
bcLabelRelativeOffsets
private final IntList bcLabelRelativeOffsets
-
-
Method Detail
-
finaliseBands
public void finaliseBands()
All input classes for the segment have now been read in, so this method is called so that this class can calculate/complete anything it could not do while classes were being read.
-
getIndexInClass
private java.util.List<java.lang.Integer> getIndexInClass(java.util.List<CPMethodOrField> cPMethodOrFieldList)
-
getIndexInClassForConstructor
private java.util.List<java.lang.Integer> getIndexInClassForConstructor(java.util.List<CPMethodOrField> cPMethodList)
-
pack
public void pack(java.io.OutputStream out) throws java.io.IOException, Pack200ExceptionDescription copied from class:BandSetWrite the packed set of bands to the given output stream- Specified by:
packin classBandSet- Parameters:
out- TODO- Throws:
java.io.IOException- If an I/O error occurs.Pack200Exception- TODO
-
setCurrentClass
public void setCurrentClass(java.lang.String name, java.lang.String superName)
-
updateRenumbering
private void updateRenumbering()
-
visitEnd
public void visitEnd()
-
visitFieldInsn
public void visitFieldInsn(int opcode, java.lang.String owner, java.lang.String name, java.lang.String desc)
-
visitIincInsn
public void visitIincInsn(int var, int increment)
-
visitInsn
public void visitInsn(int opcode)
-
visitIntInsn
public void visitIntInsn(int opcode, int operand)
-
visitJumpInsn
public void visitJumpInsn(int opcode, org.objectweb.asm.Label label)
-
visitLabel
public void visitLabel(org.objectweb.asm.Label label)
-
visitLdcInsn
public void visitLdcInsn(java.lang.Object cst)
-
visitLookupSwitchInsn
public void visitLookupSwitchInsn(org.objectweb.asm.Label dflt, int[] keys, org.objectweb.asm.Label[] labels)
-
visitMethodInsn
public void visitMethodInsn(int opcode, java.lang.String owner, java.lang.String name, java.lang.String desc)
-
visitMultiANewArrayInsn
public void visitMultiANewArrayInsn(java.lang.String desc, int dimensions)
-
visitTableSwitchInsn
public void visitTableSwitchInsn(int min, int max, org.objectweb.asm.Label dflt, org.objectweb.asm.Label... labels)
-
visitTypeInsn
public void visitTypeInsn(int opcode, java.lang.String type)
-
visitVarInsn
public void visitVarInsn(int opcode, int var)
-
-