java.lang.Object
kala.compress.harmony.pack200.BandSet
kala.compress.harmony.pack200.BcBands

public class BcBands extends BandSet
Bytecode bands (corresponds to the bc_bands set of bands in the pack200 specification)
  • Field Details

    • MULTIANEWARRAY

      private static final int MULTIANEWARRAY
      See Also:
    • ALOAD_0

      private static final int ALOAD_0
      See Also:
    • WIDE

      private static final int WIDE
      See Also:
    • INVOKEINTERFACE

      private static final int INVOKEINTERFACE
      See Also:
    • TABLESWITCH

      private static final int TABLESWITCH
      See Also:
    • IINC

      private static final int IINC
      See Also:
    • LOOKUPSWITCH

      private static final int LOOKUPSWITCH
      See Also:
    • endMarker

      private static final int endMarker
      See Also:
    • 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 List bcLabel
    • bcIntref

      private final List<CPInt> bcIntref
    • bcFloatRef

      private final List<CPFloat> bcFloatRef
    • bcLongRef

      private final List<CPLong> bcLongRef
    • bcDoubleRef

      private final List<CPDouble> bcDoubleRef
    • bcStringRef

      private final List<CPString> bcStringRef
    • bcClassRef

      private final List<CPClass> bcClassRef
    • bcFieldRef

      private final List<CPMethodOrField> bcFieldRef
    • bcMethodRef

      private final List<CPMethodOrField> bcMethodRef
    • bcIMethodRef

      private final List<CPMethodOrField> bcIMethodRef
    • bcThisField

      private List bcThisField
    • bcSuperField

      private final List bcSuperField
    • bcThisMethod

      private List bcThisMethod
    • bcSuperMethod

      private List bcSuperMethod
    • bcInitRef

      private List bcInitRef
    • currentClass

      private String currentClass
    • superClass

      private String superClass
    • currentNewClass

      private String currentNewClass
    • bciRenumbering

      private final IntList bciRenumbering
    • labelsToOffsets

      private final Map<org.objectweb.asm.Label,Integer> labelsToOffsets
    • byteCodeOffset

      private int byteCodeOffset
    • renumberedOffset

      private int renumberedOffset
    • bcLabelRelativeOffsets

      private final IntList bcLabelRelativeOffsets
  • Constructor Details

    • BcBands

      public BcBands(CpBands cpBands, Segment segment, int effort)
  • Method Details

    • 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 List<Integer> getIndexInClass(List<CPMethodOrField> cPMethodOrFieldList)
    • getIndexInClassForConstructor

      private List<Integer> getIndexInClassForConstructor(List<CPMethodOrField> cPMethodList)
    • pack

      public void pack(OutputStream out) throws IOException, Pack200Exception
      Description copied from class: BandSet
      Write the packed set of bands to the given output stream
      Specified by:
      pack in class BandSet
      Parameters:
      out - TODO
      Throws:
      IOException - If an I/O error occurs.
      Pack200Exception - TODO
    • setCurrentClass

      public void setCurrentClass(String name, String superName)
    • updateRenumbering

      private void updateRenumbering()
    • visitEnd

      public void visitEnd()
    • visitFieldInsn

      public void visitFieldInsn(int opcode, String owner, String name, 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(Object cst)
    • visitLookupSwitchInsn

      public void visitLookupSwitchInsn(org.objectweb.asm.Label dflt, int[] keys, org.objectweb.asm.Label[] labels)
    • visitMethodInsn

      public void visitMethodInsn(int opcode, String owner, String name, String desc)
    • visitMultiANewArrayInsn

      public void visitMultiANewArrayInsn(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, String type)
    • visitVarInsn

      public void visitVarInsn(int opcode, int var)