Class JvmInstructionCfaEdge

java.lang.Object
proguard.analysis.cpa.jvm.cfa.edges.JvmCfaEdge
proguard.analysis.cpa.jvm.cfa.edges.JvmInstructionCfaEdge
All Implemented Interfaces:
CfaEdge<JvmCfaNode>
Direct Known Subclasses:
JvmAssumeCaseCfaEdge, JvmAssumeCfaEdge, JvmAssumeDefaultCfaEdge

public class JvmInstructionCfaEdge extends JvmCfaEdge
A JvmCfaEdge the operation of which is defined by an instruction.

An instruction is identified by a code attribute and an offset and generated on the fly.

  • Constructor Details

    • JvmInstructionCfaEdge

      public JvmInstructionCfaEdge(CodeAttribute methodCode, int offset)
      Create a disconnected JVM CFA instruction edge.
      Parameters:
      methodCode - the code attribute of the method the edge belongs to
      offset - the offset of the instruction represented by the edge
    • JvmInstructionCfaEdge

      public JvmInstructionCfaEdge(JvmCfaNode source, JvmCfaNode target, CodeAttribute methodCode, int offset)
      Create a JVM CFA instruction edge. Also sets it as the entering and leaving edge of the source and target nodes.
      Parameters:
      source - the source node of the edge
      target - the target node of the edge
      methodCode - the code attribute of the method the edge belongs to
      offset - the offset of the instruction represented by the edge
  • Method Details

    • getInstruction

      public Instruction getInstruction()
      Generates and returns the JVM instruction represented by the edge.
    • getMethodCode

      public CodeAttribute getMethodCode()
      Returns the code attribute of the method the node belongs to.