Class ExitCheckAdapter.ExitCheckMethodAdapter

java.lang.Object
org.objectweb.asm.MethodVisitor
org.jboss.byteman.agent.adapter.RuleMethodAdapter
org.jboss.byteman.agent.adapter.RuleCheckMethodAdapter
org.jboss.byteman.agent.adapter.ExitCheckAdapter.ExitCheckMethodAdapter
Enclosing class:
ExitCheckAdapter

private class ExitCheckAdapter.ExitCheckMethodAdapter extends RuleCheckMethodAdapter
a method visitor used to add a rule event trigger call to a method
  • Field Details

    • access

      private int access
    • name

      private String name
    • descriptor

      private String descriptor
    • signature

      private String signature
    • exceptions

      private String[] exceptions
    • startLabels

      private Vector<org.objectweb.asm.Label> startLabels
    • endLabels

      private Vector<org.objectweb.asm.Label> endLabels
    • inhibit

      private boolean inhibit
  • Constructor Details

    • ExitCheckMethodAdapter

      ExitCheckMethodAdapter(org.objectweb.asm.MethodVisitor mv, TransformContext transformContext, int access, String name, String descriptor, String signature, String[] exceptions)
  • Method Details

    • visitTryCatchBlock

      public void visitTryCatchBlock(org.objectweb.asm.Label start, org.objectweb.asm.Label end, org.objectweb.asm.Label handler, String type)
      Visits a try catch block and records the label of the handler start if the exception type EarlyReturnException so we can later avoid inserting a rule trigger.
      Overrides:
      visitTryCatchBlock in class org.objectweb.asm.MethodVisitor
      Parameters:
      start - beginning of the exception handler's scope (inclusive).
      end - end of the exception handler's scope (exclusive).
      handler - beginning of the exception handler's code.
      type - internal name of the type of exceptions handled by the handler, or null to catch any exceptions (for "finally" blocks).
      Throws:
      IllegalArgumentException - if one of the labels has already been visited by this visitor (by the visitLabel method).
    • visitLabel

      public void visitLabel(org.objectweb.asm.Label label)
      each time we visit a label we set or clear flag inhibit depending upon whether the label identifies an EarlyReturnException block or not in order to avoid inserting triggers for returns added by our own exception handling code
      Overrides:
      visitLabel in class org.objectweb.asm.MethodVisitor
      Parameters:
      label -
    • visitInsn

      public void visitInsn(int opcode)
      we need to identify return instructions which are inserted because of other rules
      Overrides:
      visitInsn in class org.objectweb.asm.MethodVisitor
      Parameters:
      opcode -