public class org.jruby.RubyModule$ProfilingCacheEntryFactory extends org.jruby.RubyModule$WrapperCacheEntryFactory
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jruby.RubyModule$ProfilingCacheEntryFactory
  super_class: org.jruby.RubyModule$WrapperCacheEntryFactory
{
  private final org.jruby.runtime.profile.MethodEnhancer enhancer;
    descriptor: Lorg/jruby/runtime/profile/MethodEnhancer;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(org.jruby.Ruby, org.jruby.RubyModule$CacheEntryFactory);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyModule$CacheEntryFactory;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.RubyModule$ProfilingCacheEntryFactory this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jruby.RubyModule$CacheEntryFactory previous
         0: .line 1699
            aload 0 /* this */
            aload 2 /* previous */
            invokespecial org.jruby.RubyModule$WrapperCacheEntryFactory.<init>:(Lorg/jruby/RubyModule$CacheEntryFactory;)V
         1: .line 1700
            aload 0 /* this */
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getProfilingService:()Lorg/jruby/runtime/profile/ProfilingService;
            aload 1 /* runtime */
            invokeinterface org.jruby.runtime.profile.ProfilingService.newMethodEnhancer:(Lorg/jruby/Ruby;)Lorg/jruby/runtime/profile/MethodEnhancer;
            putfield org.jruby.RubyModule$ProfilingCacheEntryFactory.enhancer:Lorg/jruby/runtime/profile/MethodEnhancer;
         2: .line 1701
            return
        end local 2 // org.jruby.RubyModule$CacheEntryFactory previous
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.RubyModule$ProfilingCacheEntryFactory this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/jruby/RubyModule$ProfilingCacheEntryFactory;
            0    3     1   runtime  Lorg/jruby/Ruby;
            0    3     2  previous  Lorg/jruby/RubyModule$CacheEntryFactory;
    MethodParameters:
          Name  Flags
      runtime   
      previous  

  private org.jruby.runtime.profile.MethodEnhancer getMethodEnhancer();
    descriptor: ()Lorg/jruby/runtime/profile/MethodEnhancer;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.RubyModule$ProfilingCacheEntryFactory this
         0: .line 1704
            aload 0 /* this */
            getfield org.jruby.RubyModule$ProfilingCacheEntryFactory.enhancer:Lorg/jruby/runtime/profile/MethodEnhancer;
            areturn
        end local 0 // org.jruby.RubyModule$ProfilingCacheEntryFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/RubyModule$ProfilingCacheEntryFactory;

  public org.jruby.runtime.callsite.CacheEntry newCacheEntry(java.lang.String, org.jruby.internal.runtime.methods.DynamicMethod, org.jruby.RubyModule, int);
    descriptor: (Ljava/lang/String;Lorg/jruby/internal/runtime/methods/DynamicMethod;Lorg/jruby/RubyModule;I)Lorg/jruby/runtime/callsite/CacheEntry;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // org.jruby.RubyModule$ProfilingCacheEntryFactory this
        start local 1 // java.lang.String id
        start local 2 // org.jruby.internal.runtime.methods.DynamicMethod method
        start local 3 // org.jruby.RubyModule sourceModule
        start local 4 // int token
         0: .line 1709
            aload 2 /* method */
            invokevirtual org.jruby.internal.runtime.methods.DynamicMethod.isUndefined:()Z
            ifeq 1
            new org.jruby.runtime.callsite.CacheEntry
            dup
            aload 2 /* method */
            iload 4 /* token */
            invokespecial org.jruby.runtime.callsite.CacheEntry.<init>:(Lorg/jruby/internal/runtime/methods/DynamicMethod;I)V
            areturn
         1: .line 1711
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.RubyModule$ProfilingCacheEntryFactory.previous:Lorg/jruby/RubyModule$CacheEntryFactory;
            aload 1 /* id */
            aload 2 /* method */
            aload 3 /* sourceModule */
            iload 4 /* token */
            invokevirtual org.jruby.RubyModule$CacheEntryFactory.newCacheEntry:(Ljava/lang/String;Lorg/jruby/internal/runtime/methods/DynamicMethod;Lorg/jruby/RubyModule;I)Lorg/jruby/runtime/callsite/CacheEntry;
            astore 5 /* delegated */
        start local 5 // org.jruby.runtime.callsite.CacheEntry delegated
         2: .line 1712
            aload 0 /* this */
            invokevirtual org.jruby.RubyModule$ProfilingCacheEntryFactory.getMethodEnhancer:()Lorg/jruby/runtime/profile/MethodEnhancer;
            aload 1 /* id */
            aload 5 /* delegated */
            getfield org.jruby.runtime.callsite.CacheEntry.method:Lorg/jruby/internal/runtime/methods/DynamicMethod;
            invokeinterface org.jruby.runtime.profile.MethodEnhancer.enhance:(Ljava/lang/String;Lorg/jruby/internal/runtime/methods/DynamicMethod;)Lorg/jruby/internal/runtime/methods/DynamicMethod;
            astore 6 /* enhancedMethod */
        start local 6 // org.jruby.internal.runtime.methods.DynamicMethod enhancedMethod
         3: .line 1714
            new org.jruby.runtime.callsite.CacheEntry
            dup
            aload 6 /* enhancedMethod */
            aload 5 /* delegated */
            getfield org.jruby.runtime.callsite.CacheEntry.sourceModule:Lorg/jruby/RubyModule;
            aload 5 /* delegated */
            getfield org.jruby.runtime.callsite.CacheEntry.token:I
            invokespecial org.jruby.runtime.callsite.CacheEntry.<init>:(Lorg/jruby/internal/runtime/methods/DynamicMethod;Lorg/jruby/RubyModule;I)V
            areturn
        end local 6 // org.jruby.internal.runtime.methods.DynamicMethod enhancedMethod
        end local 5 // org.jruby.runtime.callsite.CacheEntry delegated
        end local 4 // int token
        end local 3 // org.jruby.RubyModule sourceModule
        end local 2 // org.jruby.internal.runtime.methods.DynamicMethod method
        end local 1 // java.lang.String id
        end local 0 // org.jruby.RubyModule$ProfilingCacheEntryFactory this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lorg/jruby/RubyModule$ProfilingCacheEntryFactory;
            0    4     1              id  Ljava/lang/String;
            0    4     2          method  Lorg/jruby/internal/runtime/methods/DynamicMethod;
            0    4     3    sourceModule  Lorg/jruby/RubyModule;
            0    4     4           token  I
            2    4     5       delegated  Lorg/jruby/runtime/callsite/CacheEntry;
            3    4     6  enhancedMethod  Lorg/jruby/internal/runtime/methods/DynamicMethod;
    MethodParameters:
              Name  Flags
      id            
      method        
      sourceModule  
      token         
}
SourceFile: "RubyModule.java"
NestHost: org.jruby.RubyModule
InnerClasses:
  protected abstract CacheEntryFactory = org.jruby.RubyModule$CacheEntryFactory of org.jruby.RubyModule
  protected ProfilingCacheEntryFactory = org.jruby.RubyModule$ProfilingCacheEntryFactory of org.jruby.RubyModule
  protected abstract WrapperCacheEntryFactory = org.jruby.RubyModule$WrapperCacheEntryFactory of org.jruby.RubyModule