final class jdk.jfr.internal.instrument.JIInliner extends jdk.internal.org.objectweb.asm.ClassVisitor
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: jdk.jfr.internal.instrument.JIInliner
  super_class: jdk.internal.org.objectweb.asm.ClassVisitor
{
  private final java.lang.String targetClassName;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String instrumentationClassName;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.internal.org.objectweb.asm.tree.ClassNode targetClassNode;
    descriptor: Ljdk/internal/org/objectweb/asm/tree/ClassNode;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.List<java.lang.reflect.Method> instrumentationMethods;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Ljava/lang/reflect/Method;>;

  void <init>(int, jdk.internal.org.objectweb.asm.ClassVisitor, java.lang.String, java.lang.String, jdk.internal.org.objectweb.asm.ClassReader, java.util.List<java.lang.reflect.Method>);
    descriptor: (ILjdk/internal/org/objectweb/asm/ClassVisitor;Ljava/lang/String;Ljava/lang/String;Ljdk/internal/org/objectweb/asm/ClassReader;Ljava/util/List;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=8, args_size=7
        start local 0 // jdk.jfr.internal.instrument.JIInliner this
        start local 1 // int api
        start local 2 // jdk.internal.org.objectweb.asm.ClassVisitor cv
        start local 3 // java.lang.String targetClassName
        start local 4 // java.lang.String instrumentationClassName
        start local 5 // jdk.internal.org.objectweb.asm.ClassReader targetClassReader
        start local 6 // java.util.List instrumentationMethods
         0: .line 58
            aload 0 /* this */
            iload 1 /* api */
            aload 2 /* cv */
            invokespecial jdk.internal.org.objectweb.asm.ClassVisitor.<init>:(ILjdk/internal/org/objectweb/asm/ClassVisitor;)V
         1: .line 59
            aload 0 /* this */
            aload 3 /* targetClassName */
            putfield jdk.jfr.internal.instrument.JIInliner.targetClassName:Ljava/lang/String;
         2: .line 60
            aload 0 /* this */
            aload 4 /* instrumentationClassName */
            putfield jdk.jfr.internal.instrument.JIInliner.instrumentationClassName:Ljava/lang/String;
         3: .line 61
            aload 0 /* this */
            aload 6 /* instrumentationMethods */
            putfield jdk.jfr.internal.instrument.JIInliner.instrumentationMethods:Ljava/util/List;
         4: .line 63
            new jdk.internal.org.objectweb.asm.tree.ClassNode
            dup
            ldc 327680
            invokespecial jdk.internal.org.objectweb.asm.tree.ClassNode.<init>:(I)V
            astore 7 /* cn */
        start local 7 // jdk.internal.org.objectweb.asm.tree.ClassNode cn
         5: .line 64
            aload 5 /* targetClassReader */
            aload 7 /* cn */
            bipush 8
            invokevirtual jdk.internal.org.objectweb.asm.ClassReader.accept:(Ljdk/internal/org/objectweb/asm/ClassVisitor;I)V
         6: .line 65
            aload 0 /* this */
            aload 7 /* cn */
            putfield jdk.jfr.internal.instrument.JIInliner.targetClassNode:Ljdk/internal/org/objectweb/asm/tree/ClassNode;
         7: .line 66
            return
        end local 7 // jdk.internal.org.objectweb.asm.tree.ClassNode cn
        end local 6 // java.util.List instrumentationMethods
        end local 5 // jdk.internal.org.objectweb.asm.ClassReader targetClassReader
        end local 4 // java.lang.String instrumentationClassName
        end local 3 // java.lang.String targetClassName
        end local 2 // jdk.internal.org.objectweb.asm.ClassVisitor cv
        end local 1 // int api
        end local 0 // jdk.jfr.internal.instrument.JIInliner this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    8     0                      this  Ljdk/jfr/internal/instrument/JIInliner;
            0    8     1                       api  I
            0    8     2                        cv  Ljdk/internal/org/objectweb/asm/ClassVisitor;
            0    8     3           targetClassName  Ljava/lang/String;
            0    8     4  instrumentationClassName  Ljava/lang/String;
            0    8     5         targetClassReader  Ljdk/internal/org/objectweb/asm/ClassReader;
            0    8     6    instrumentationMethods  Ljava/util/List<Ljava/lang/reflect/Method;>;
            5    8     7                        cn  Ljdk/internal/org/objectweb/asm/tree/ClassNode;
    Signature: (ILjdk/internal/org/objectweb/asm/ClassVisitor;Ljava/lang/String;Ljava/lang/String;Ljdk/internal/org/objectweb/asm/ClassReader;Ljava/util/List<Ljava/lang/reflect/Method;>;)V
    MethodParameters:
                          Name  Flags
      api                       
      cv                        
      targetClassName           
      instrumentationClassName  
      targetClassReader         
      instrumentationMethods    

  public jdk.internal.org.objectweb.asm.MethodVisitor visitMethod(int, java.lang.String, java.lang.String, java.lang.String, java.lang.String[]);
    descriptor: (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljdk/internal/org/objectweb/asm/MethodVisitor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=9, args_size=6
        start local 0 // jdk.jfr.internal.instrument.JIInliner this
        start local 1 // int access
        start local 2 // java.lang.String name
        start local 3 // java.lang.String desc
        start local 4 // java.lang.String signature
        start local 5 // java.lang.String[] exceptions
         0: .line 70
            aload 0 /* this */
            iload 1 /* access */
            aload 2 /* name */
            aload 3 /* desc */
            aload 4 /* signature */
            aload 5 /* exceptions */
            invokespecial jdk.internal.org.objectweb.asm.ClassVisitor.visitMethod:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljdk/internal/org/objectweb/asm/MethodVisitor;
            astore 6 /* mv */
        start local 6 // jdk.internal.org.objectweb.asm.MethodVisitor mv
         1: .line 72
            aload 0 /* this */
            aload 2 /* name */
            aload 3 /* desc */
            invokevirtual jdk.jfr.internal.instrument.JIInliner.isInstrumentationMethod:(Ljava/lang/String;Ljava/lang/String;)Z
            ifeq 16
         2: .line 73
            aload 0 /* this */
            aload 2 /* name */
            aload 3 /* desc */
            invokevirtual jdk.jfr.internal.instrument.JIInliner.findTargetMethodNode:(Ljava/lang/String;Ljava/lang/String;)Ljdk/internal/org/objectweb/asm/tree/MethodNode;
            astore 7 /* methodToInline */
        start local 7 // jdk.internal.org.objectweb.asm.tree.MethodNode methodToInline
         3: .line 74
            aload 7 /* methodToInline */
            ifnonnull 5
         4: .line 75
            new java.lang.IllegalArgumentException
            dup
            ldc "Could not find the method to instrument in the target class"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 77
      StackMap locals: jdk.internal.org.objectweb.asm.MethodVisitor jdk.internal.org.objectweb.asm.tree.MethodNode
      StackMap stack:
            aload 7 /* methodToInline */
            getfield jdk.internal.org.objectweb.asm.tree.MethodNode.access:I
            invokestatic java.lang.reflect.Modifier.isNative:(I)Z
            ifeq 7
         6: .line 78
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Cannot instrument native methods: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield jdk.jfr.internal.instrument.JIInliner.targetClassNode:Ljdk/internal/org/objectweb/asm/tree/ClassNode;
            getfield jdk.internal.org.objectweb.asm.tree.ClassNode.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* methodToInline */
            getfield jdk.internal.org.objectweb.asm.tree.MethodNode.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* methodToInline */
            getfield jdk.internal.org.objectweb.asm.tree.MethodNode.desc:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 81
      StackMap locals:
      StackMap stack:
            getstatic jdk.jfr.internal.LogTag.JFR_SYSTEM_BYTECODE:Ljdk/jfr/internal/LogTag;
            getstatic jdk.jfr.internal.LogLevel.DEBUG:Ljdk/jfr/internal/LogLevel;
            new java.lang.StringBuilder
            dup
            ldc "Inliner processing method "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* desc */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic jdk.jfr.internal.Logger.log:(Ljdk/jfr/internal/LogTag;Ljdk/jfr/internal/LogLevel;Ljava/lang/String;)V
         8: .line 83
            new jdk.jfr.internal.instrument.JIMethodCallInliner
            dup
            iload 1 /* access */
         9: .line 84
            aload 3 /* desc */
        10: .line 85
            aload 6 /* mv */
        11: .line 86
            aload 7 /* methodToInline */
        12: .line 87
            aload 0 /* this */
            getfield jdk.jfr.internal.instrument.JIInliner.targetClassName:Ljava/lang/String;
        13: .line 88
            aload 0 /* this */
            getfield jdk.jfr.internal.instrument.JIInliner.instrumentationClassName:Ljava/lang/String;
        14: .line 83
            invokespecial jdk.jfr.internal.instrument.JIMethodCallInliner.<init>:(ILjava/lang/String;Ljdk/internal/org/objectweb/asm/MethodVisitor;Ljdk/internal/org/objectweb/asm/tree/MethodNode;Ljava/lang/String;Ljava/lang/String;)V
            astore 8 /* mci */
        start local 8 // jdk.jfr.internal.instrument.JIMethodCallInliner mci
        15: .line 89
            aload 8 /* mci */
            areturn
        end local 8 // jdk.jfr.internal.instrument.JIMethodCallInliner mci
        end local 7 // jdk.internal.org.objectweb.asm.tree.MethodNode methodToInline
        16: .line 92
      StackMap locals:
      StackMap stack:
            aload 6 /* mv */
            areturn
        end local 6 // jdk.internal.org.objectweb.asm.MethodVisitor mv
        end local 5 // java.lang.String[] exceptions
        end local 4 // java.lang.String signature
        end local 3 // java.lang.String desc
        end local 2 // java.lang.String name
        end local 1 // int access
        end local 0 // jdk.jfr.internal.instrument.JIInliner this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   17     0            this  Ljdk/jfr/internal/instrument/JIInliner;
            0   17     1          access  I
            0   17     2            name  Ljava/lang/String;
            0   17     3            desc  Ljava/lang/String;
            0   17     4       signature  Ljava/lang/String;
            0   17     5      exceptions  [Ljava/lang/String;
            1   17     6              mv  Ljdk/internal/org/objectweb/asm/MethodVisitor;
            3   16     7  methodToInline  Ljdk/internal/org/objectweb/asm/tree/MethodNode;
           15   16     8             mci  Ljdk/jfr/internal/instrument/JIMethodCallInliner;
    MethodParameters:
            Name  Flags
      access      
      name        
      desc        
      signature   
      exceptions  

  private boolean isInstrumentationMethod(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // jdk.jfr.internal.instrument.JIInliner this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String desc
         0: .line 96
            aload 0 /* this */
            getfield jdk.jfr.internal.instrument.JIInliner.instrumentationMethods:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: jdk.jfr.internal.instrument.JIInliner java.lang.String java.lang.String top java.util.Iterator
      StackMap stack:
         1: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.reflect.Method
            astore 3 /* m */
        start local 3 // java.lang.reflect.Method m
         2: .line 97
            aload 3 /* m */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            aload 1 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
            aload 3 /* m */
            invokestatic jdk.internal.org.objectweb.asm.Type.getMethodDescriptor:(Ljava/lang/reflect/Method;)Ljava/lang/String;
            aload 2 /* desc */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 98
            iconst_1
            ireturn
        end local 3 // java.lang.reflect.Method m
         4: .line 96
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 101
            iconst_0
            ireturn
        end local 2 // java.lang.String desc
        end local 1 // java.lang.String name
        end local 0 // jdk.jfr.internal.instrument.JIInliner this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljdk/jfr/internal/instrument/JIInliner;
            0    6     1  name  Ljava/lang/String;
            0    6     2  desc  Ljava/lang/String;
            2    4     3     m  Ljava/lang/reflect/Method;
    MethodParameters:
      Name  Flags
      name  
      desc  

  private jdk.internal.org.objectweb.asm.tree.MethodNode findTargetMethodNode(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljdk/internal/org/objectweb/asm/tree/MethodNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // jdk.jfr.internal.instrument.JIInliner this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String desc
         0: .line 105
            aload 0 /* this */
            getfield jdk.jfr.internal.instrument.JIInliner.targetClassNode:Ljdk/internal/org/objectweb/asm/tree/ClassNode;
            getfield jdk.internal.org.objectweb.asm.tree.ClassNode.methods:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: jdk.jfr.internal.instrument.JIInliner java.lang.String java.lang.String top java.util.Iterator
      StackMap stack:
         1: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.internal.org.objectweb.asm.tree.MethodNode
            astore 3 /* mn */
        start local 3 // jdk.internal.org.objectweb.asm.tree.MethodNode mn
         2: .line 106
            aload 3 /* mn */
            getfield jdk.internal.org.objectweb.asm.tree.MethodNode.desc:Ljava/lang/String;
            aload 2 /* desc */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
            aload 3 /* mn */
            getfield jdk.internal.org.objectweb.asm.tree.MethodNode.name:Ljava/lang/String;
            aload 1 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 107
            aload 3 /* mn */
            areturn
        end local 3 // jdk.internal.org.objectweb.asm.tree.MethodNode mn
         4: .line 105
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 110
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "could not find MethodNode for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         6: .line 111
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* desc */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 110
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String desc
        end local 1 // java.lang.String name
        end local 0 // jdk.jfr.internal.instrument.JIInliner this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Ljdk/jfr/internal/instrument/JIInliner;
            0    8     1  name  Ljava/lang/String;
            0    8     2  desc  Ljava/lang/String;
            2    4     3    mn  Ljdk/internal/org/objectweb/asm/tree/MethodNode;
    MethodParameters:
      Name  Flags
      name  
      desc  
}
SourceFile: "JIInliner.java"
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()