Class BasicBranchUnit

java.lang.Object
proguard.evaluation.BasicBranchUnit
All Implemented Interfaces:
BranchUnit

public class BasicBranchUnit extends Object implements BranchUnit
This BranchUnit remembers the branch unit commands that are invoked on it. It doesn't consider conditions when branching.
  • Field Details

    • traceBranchTargets

      protected InstructionOffsetValue traceBranchTargets
    • wasCalled

      protected boolean wasCalled
  • Constructor Details

    • BasicBranchUnit

      public BasicBranchUnit()
  • Method Details

    • reset

      public void reset()
      Resets the accumulated branch targets and the flag that tells whether any of the branch unit methods was called.
    • wasCalled

      public boolean wasCalled()
      Returns whether any of the branch unit methods was called.
    • getTraceBranchTargets

      public InstructionOffsetValue getTraceBranchTargets()
      Returns the accumulated branch targets that were passed to the branch unit methods.
    • branch

      public void branch(Clazz clazz, CodeAttribute codeAttribute, int offset, int branchTarget)
      Description copied from interface: BranchUnit
      Sets the new instruction offset.
      Specified by:
      branch in interface BranchUnit
    • branchConditionally

      public void branchConditionally(Clazz clazz, CodeAttribute codeAttribute, int offset, int branchTarget, int conditional)
      Description copied from interface: BranchUnit
      Sets the new instruction offset, depending on the certainty of the conditional branch.
      Specified by:
      branchConditionally in interface BranchUnit
    • returnFromMethod

      public void returnFromMethod()
      Description copied from interface: BranchUnit
      Returns from the method with the given value.
      Specified by:
      returnFromMethod in interface BranchUnit
    • throwException

      public void throwException()
      Description copied from interface: BranchUnit
      Handles the throwing of an exception.
      Specified by:
      throwException in interface BranchUnit