public class org.jruby.compiler.JITCompiler implements org.jruby.compiler.JITCompilerMBean
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.jruby.compiler.JITCompiler
super_class: java.lang.Object
{
private static final org.jruby.util.log.Logger LOG;
descriptor: Lorg/jruby/util/log/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
public static final java.lang.String RUBY_JIT_PREFIX;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "rubyjit"
final org.jruby.compiler.JITCounts counts;
descriptor: Lorg/jruby/compiler/JITCounts;
flags: (0x0010) ACC_FINAL
private final java.util.concurrent.ExecutorService executor;
descriptor: Ljava/util/concurrent/ExecutorService;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final org.jruby.Ruby runtime;
descriptor: Lorg/jruby/Ruby;
flags: (0x0010) ACC_FINAL
final org.jruby.RubyInstanceConfig config;
descriptor: Lorg/jruby/RubyInstanceConfig;
flags: (0x0010) ACC_FINAL
final java.util.Map<java.lang.String, org.jruby.util.ClassDefiningClassLoader> loaderMap;
descriptor: Ljava/util/Map;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Lorg/jruby/util/ClassDefiningClassLoader;>;
static final java.lang.invoke.MethodHandles$Lookup PUBLIC_LOOKUP;
descriptor: Ljava/lang/invoke/MethodHandles$Lookup;
flags: (0x0018) ACC_STATIC, ACC_FINAL
private static volatile int[] $SWITCH_TABLE$org$jruby$compiler$ClassLoaderMode;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Lorg/jruby/compiler/JITCompiler;
invokestatic org.jruby.util.log.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/jruby/util/log/Logger;
putstatic org.jruby.compiler.JITCompiler.LOG:Lorg/jruby/util/log/Logger;
1: invokestatic java.lang.invoke.MethodHandles.publicLookup:()Ljava/lang/invoke/MethodHandles$Lookup;
ldc Lorg/jruby/Ruby;
invokevirtual java.lang.invoke.MethodHandles$Lookup.in:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandles$Lookup;
putstatic org.jruby.compiler.JITCompiler.PUBLIC_LOOKUP:Ljava/lang/invoke/MethodHandles$Lookup;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.jruby.Ruby);
descriptor: (Lorg/jruby/Ruby;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=14, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new org.jruby.compiler.JITCounts
dup
invokespecial org.jruby.compiler.JITCounts.<init>:()V
putfield org.jruby.compiler.JITCompiler.counts:Lorg/jruby/compiler/JITCounts;
2: aload 0
aload 1
putfield org.jruby.compiler.JITCompiler.runtime:Lorg/jruby/Ruby;
3: aload 0
aload 1
invokevirtual org.jruby.Ruby.getInstanceConfig:()Lorg/jruby/RubyInstanceConfig;
putfield org.jruby.compiler.JITCompiler.config:Lorg/jruby/RubyInstanceConfig;
4: aload 0
new java.util.concurrent.ThreadPoolExecutor
dup
5: iconst_0
6: iconst_2
7: ldc 60
8: getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
9: new java.util.concurrent.LinkedBlockingQueue
dup
invokespecial java.util.concurrent.LinkedBlockingQueue.<init>:()V
10: new org.jruby.threading.DaemonThreadFactory
dup
new java.lang.StringBuilder
dup
ldc "Ruby-"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual org.jruby.Ruby.getRuntimeNumber:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "-JIT"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_1
invokespecial org.jruby.threading.DaemonThreadFactory.<init>:(Ljava/lang/String;I)V
invokespecial java.util.concurrent.ThreadPoolExecutor.<init>:(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;)V
11: putfield org.jruby.compiler.JITCompiler.executor:Ljava/util/concurrent/ExecutorService;
12: invokestatic org.jruby.compiler.JITCompiler.$SWITCH_TABLE$org$jruby$compiler$ClassLoaderMode:()[I
getstatic org.jruby.util.cli.Options.JIT_LOADER_MODE:Lcom/headius/options/Option;
invokevirtual com.headius.options.Option.load:()Ljava/lang/Object;
checkcast org.jruby.compiler.ClassLoaderMode
invokevirtual org.jruby.compiler.ClassLoaderMode.ordinal:()I
iaload
tableswitch { // 1 - 3
1: 17
2: 13
3: 15
default: 17
}
13: StackMap locals: org.jruby.compiler.JITCompiler org.jruby.Ruby
StackMap stack:
aload 0
new org.jruby.compiler.JITCompiler$SharedClassLoaderMap
dup
new org.jruby.util.ClassDefiningJRubyClassLoader
dup
aload 1
invokevirtual org.jruby.Ruby.getJRubyClassLoader:()Lorg/jruby/util/JRubyClassLoader;
invokespecial org.jruby.util.ClassDefiningJRubyClassLoader.<init>:(Ljava/lang/ClassLoader;)V
invokespecial org.jruby.compiler.JITCompiler$SharedClassLoaderMap.<init>:(Lorg/jruby/util/ClassDefiningClassLoader;)V
putfield org.jruby.compiler.JITCompiler.loaderMap:Ljava/util/Map;
14: goto 18
15: StackMap locals:
StackMap stack:
aload 0
new org.jruby.util.collections.WeakValuedMap
dup
invokespecial org.jruby.util.collections.WeakValuedMap.<init>:()V
putfield org.jruby.compiler.JITCompiler.loaderMap:Ljava/util/Map;
16: goto 18
17: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield org.jruby.compiler.JITCompiler.loaderMap:Ljava/util/Map;
18: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/jruby/compiler/JITCompiler;
0 19 1 runtime Lorg/jruby/Ruby;
MethodParameters:
Name Flags
runtime
public long getSuccessCount();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.compiler.JITCompiler.counts:Lorg/jruby/compiler/JITCounts;
getfield org.jruby.compiler.JITCounts.successCount:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/compiler/JITCompiler;
public long getCompileCount();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.compiler.JITCompiler.counts:Lorg/jruby/compiler/JITCounts;
getfield org.jruby.compiler.JITCounts.compiledCount:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/compiler/JITCompiler;
public long getFailCount();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.compiler.JITCompiler.counts:Lorg/jruby/compiler/JITCounts;
getfield org.jruby.compiler.JITCounts.failCount:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/compiler/JITCompiler;
public long getCompileTime();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.compiler.JITCompiler.counts:Lorg/jruby/compiler/JITCounts;
getfield org.jruby.compiler.JITCounts.compileTime:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
ldc 1000
ldiv
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/compiler/JITCompiler;
public long getAbandonCount();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.compiler.JITCompiler.counts:Lorg/jruby/compiler/JITCounts;
getfield org.jruby.compiler.JITCounts.abandonCount:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/compiler/JITCompiler;
public long getCodeSize();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.compiler.JITCompiler.counts:Lorg/jruby/compiler/JITCounts;
getfield org.jruby.compiler.JITCounts.codeSize:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/compiler/JITCompiler;
public long getCodeAverageSize();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.compiler.JITCompiler.counts:Lorg/jruby/compiler/JITCounts;
getfield org.jruby.compiler.JITCounts.codeAverageSize:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/compiler/JITCompiler;
public long getCompileTimeAverage();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.compiler.JITCompiler.counts:Lorg/jruby/compiler/JITCounts;
getfield org.jruby.compiler.JITCounts.compileTimeAverage:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
ldc 1000
ldiv
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/compiler/JITCompiler;
public long getCodeLargestSize();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.compiler.JITCompiler.counts:Lorg/jruby/compiler/JITCounts;
getfield org.jruby.compiler.JITCounts.codeLargestSize:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/compiler/JITCompiler;
public long getIRSize();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.compiler.JITCompiler.counts:Lorg/jruby/compiler/JITCounts;
getfield org.jruby.compiler.JITCounts.irSize:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/compiler/JITCompiler;
public long getIRAverageSize();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.compiler.JITCompiler.counts:Lorg/jruby/compiler/JITCounts;
getfield org.jruby.compiler.JITCounts.irAverageSize:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/compiler/JITCompiler;
public long getIRLargestSize();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.compiler.JITCompiler.counts:Lorg/jruby/compiler/JITCounts;
getfield org.jruby.compiler.JITCounts.irLargestSize:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/compiler/JITCompiler;
public java.lang.String[] getFrameAwareMethods();
descriptor: ()[Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: getstatic org.jruby.runtime.MethodIndex.FRAME_AWARE_METHODS:Ljava/util/Set;
iconst_0
anewarray java.lang.String
invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.String[]
astore 1
start local 1 1: aload 1
invokestatic java.util.Arrays.sort:([Ljava/lang/Object;)V
2: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/compiler/JITCompiler;
1 3 1 frameAwareMethods [Ljava/lang/String;
public java.lang.String[] getScopeAwareMethods();
descriptor: ()[Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: getstatic org.jruby.runtime.MethodIndex.SCOPE_AWARE_METHODS:Ljava/util/Set;
iconst_0
anewarray java.lang.String
invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.String[]
astore 1
start local 1 1: aload 1
invokestatic java.util.Arrays.sort:([Ljava/lang/Object;)V
2: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/compiler/JITCompiler;
1 3 1 scopeAwareMethods [Ljava/lang/String;
public void tearDown();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.compiler.JITCompiler.shutdown:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/compiler/JITCompiler;
public void shutdown();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.compiler.JITCompiler.executor:Ljava/util/concurrent/ExecutorService;
invokeinterface java.util.concurrent.ExecutorService.shutdown:()V
1: goto 3
StackMap locals:
StackMap stack: java.lang.SecurityException
2: pop
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jruby/compiler/JITCompiler;
Exception table:
from to target type
0 1 2 Class java.lang.SecurityException
public boolean isShutdown();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.compiler.JITCompiler.executor:Ljava/util/concurrent/ExecutorService;
invokeinterface java.util.concurrent.ExecutorService.isShutdown:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/compiler/JITCompiler;
public java.lang.Runnable getTaskFor(org.jruby.runtime.ThreadContext, org.jruby.compiler.Compilable);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/compiler/Compilable;)Ljava/lang/Runnable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
instanceof org.jruby.internal.runtime.methods.MixedModeIRMethod
ifeq 2
1: new org.jruby.compiler.MethodJITTask
dup
aload 0
aload 2
checkcast org.jruby.internal.runtime.methods.MixedModeIRMethod
aload 2
invokeinterface org.jruby.compiler.Compilable.getOwnerName:()Ljava/lang/String;
invokespecial org.jruby.compiler.MethodJITTask.<init>:(Lorg/jruby/compiler/JITCompiler;Lorg/jruby/internal/runtime/methods/MixedModeIRMethod;Ljava/lang/String;)V
areturn
2: StackMap locals:
StackMap stack:
aload 2
instanceof org.jruby.runtime.MixedModeIRBlockBody
ifeq 4
3: new org.jruby.compiler.BlockJITTask
dup
aload 0
aload 2
checkcast org.jruby.runtime.MixedModeIRBlockBody
aload 2
invokeinterface org.jruby.compiler.Compilable.getOwnerName:()Ljava/lang/String;
invokespecial org.jruby.compiler.BlockJITTask.<init>:(Lorg/jruby/compiler/JITCompiler;Lorg/jruby/runtime/MixedModeIRBlockBody;Ljava/lang/String;)V
areturn
4: StackMap locals:
StackMap stack:
aload 2
instanceof org.jruby.internal.runtime.methods.CompiledIRMethod
ifeq 6
5: new org.jruby.compiler.MethodCompiledJITTask
dup
aload 0
aload 2
checkcast org.jruby.internal.runtime.methods.CompiledIRMethod
aload 2
invokeinterface org.jruby.compiler.Compilable.getOwnerName:()Ljava/lang/String;
invokespecial org.jruby.compiler.MethodCompiledJITTask.<init>:(Lorg/jruby/compiler/JITCompiler;Lorg/jruby/internal/runtime/methods/CompiledIRMethod;Ljava/lang/String;)V
areturn
6: StackMap locals:
StackMap stack:
new org.jruby.compiler.FullBuildTask
dup
aload 0
aload 2
invokespecial org.jruby.compiler.FullBuildTask.<init>:(Lorg/jruby/compiler/JITCompiler;Lorg/jruby/compiler/Compilable;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/jruby/compiler/JITCompiler;
0 7 1 context Lorg/jruby/runtime/ThreadContext;
0 7 2 method Lorg/jruby/compiler/Compilable;
MethodParameters:
Name Flags
context
method
public void buildThresholdReached(org.jruby.runtime.ThreadContext, org.jruby.compiler.Compilable);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/compiler/Compilable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getInstanceConfig:()Lorg/jruby/RubyInstanceConfig;
astore 3
start local 3 1: aload 0
aload 1
aload 2
invokevirtual org.jruby.compiler.JITCompiler.getTaskFor:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/compiler/Compilable;)Ljava/lang/Runnable;
astore 4
start local 4 2: aload 4
instanceof org.jruby.compiler.JITCompiler$Task
ifeq 6
aload 3
invokevirtual org.jruby.RubyInstanceConfig.getJitMax:()I
iflt 6
aload 3
invokevirtual org.jruby.RubyInstanceConfig.getJitMax:()I
i2l
aload 0
invokevirtual org.jruby.compiler.JITCompiler.getSuccessCount:()J
lcmp
ifge 6
3: aload 3
invokevirtual org.jruby.RubyInstanceConfig.isJitLogging:()Z
ifeq 5
4: aload 2
aload 2
invokeinterface org.jruby.compiler.Compilable.getName:()Ljava/lang/String;
ldc "skipping: jit.max threshold reached"
iconst_0
anewarray java.lang.Object
invokestatic org.jruby.compiler.JITCompiler.log:(Lorg/jruby/compiler/Compilable;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
5: StackMap locals: org.jruby.RubyInstanceConfig java.lang.Runnable
StackMap stack:
return
6: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.jruby.RubyInstanceConfig.getJitBackground:()Z
ifeq 12
aload 3
invokevirtual org.jruby.RubyInstanceConfig.getJitThreshold:()I
ifle 12
7: aload 0
getfield org.jruby.compiler.JITCompiler.executor:Ljava/util/concurrent/ExecutorService;
aload 4
invokeinterface java.util.concurrent.ExecutorService.submit:(Ljava/lang/Runnable;)Ljava/util/concurrent/Future;
pop
8: goto 17
StackMap locals:
StackMap stack: java.util.concurrent.RejectedExecutionException
9: pop
10: aload 4
invokeinterface java.lang.Runnable.run:()V
11: goto 17
12: StackMap locals:
StackMap stack:
aload 2
invokeinterface org.jruby.compiler.Compilable.ensureInstrsReady:()Lorg/jruby/ir/interpreter/InterpreterContext;
pop
13: aload 4
invokeinterface java.lang.Runnable.run:()V
14: goto 17
StackMap locals:
StackMap stack: java.lang.Exception
15: astore 5
start local 5 16: new org.jruby.compiler.NotCompilableException
dup
aload 5
invokespecial org.jruby.compiler.NotCompilableException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 5 17: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/jruby/compiler/JITCompiler;
0 18 1 context Lorg/jruby/runtime/ThreadContext;
0 18 2 method Lorg/jruby/compiler/Compilable;
1 18 3 config Lorg/jruby/RubyInstanceConfig;
2 18 4 task Ljava/lang/Runnable;
16 17 5 e Ljava/lang/Exception;
Exception table:
from to target type
7 8 9 Class java.util.concurrent.RejectedExecutionException
6 14 15 Class java.lang.Exception
MethodParameters:
Name Flags
context
method final
public static java.lang.String getHashForString(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic org.jruby.RubyEncoding.encodeUTF8:(Ljava/lang/String;)[B
invokestatic org.jruby.compiler.JITCompiler.getHashForBytes:([B)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 str Ljava/lang/String;
MethodParameters:
Name Flags
str
public static java.lang.String getHashForBytes(byte[]);
descriptor: ([B)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=7, args_size=1
start local 0 0: ldc "SHA1"
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
astore 1
start local 1 1: aload 1
aload 0
invokevirtual java.security.MessageDigest.update:([B)V
2: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 2
start local 2 3: aload 1
invokevirtual java.security.MessageDigest.digest:()[B
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 7
StackMap locals: byte[] java.security.MessageDigest java.lang.StringBuilder top int int byte[]
StackMap stack:
4: aload 6
iload 4
baload
istore 3
start local 3 5: aload 2
iload 3
sipush 255
iand
sipush 256
iadd
bipush 16
invokestatic java.lang.Integer.toString:(II)Ljava/lang/String;
iconst_1
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 3 6: iinc 4 1
StackMap locals:
StackMap stack:
7: iload 4
iload 5
if_icmplt 4
8: aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
9: areturn
end local 2 end local 1 10: StackMap locals: byte[]
StackMap stack: java.security.NoSuchAlgorithmException
astore 1
start local 1 11: new java.lang.RuntimeException
dup
aload 1
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 bytes [B
1 10 1 sha1 Ljava/security/MessageDigest;
3 10 2 builder Ljava/lang/StringBuilder;
5 6 3 aByte B
11 12 1 nsae Ljava/security/NoSuchAlgorithmException;
Exception table:
from to target type
0 9 10 Class java.security.NoSuchAlgorithmException
MethodParameters:
Name Flags
bytes
org.jruby.util.ClassDefiningClassLoader getLoaderFor(java.lang.String);
descriptor: (Ljava/lang/String;)Lorg/jruby/util/ClassDefiningClassLoader;
flags: (0x0000)
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 1
ifnull 12
aload 0
getfield org.jruby.compiler.JITCompiler.loaderMap:Ljava/util/Map;
ifnull 12
1: aload 0
getfield org.jruby.compiler.JITCompiler.loaderMap:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.jruby.util.ClassDefiningClassLoader
astore 2
start local 2 2: aload 2
ifnonnull 11
3: aload 0
getfield org.jruby.compiler.JITCompiler.loaderMap:Ljava/util/Map;
dup
astore 3
monitorenter
4: aload 0
getfield org.jruby.compiler.JITCompiler.loaderMap:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.jruby.util.ClassDefiningClassLoader
astore 2
5: aload 2
ifnonnull 7
6: aload 0
getfield org.jruby.compiler.JITCompiler.loaderMap:Ljava/util/Map;
aload 1
new org.jruby.util.ClassDefiningJRubyClassLoader
dup
aload 0
getfield org.jruby.compiler.JITCompiler.runtime:Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getJRubyClassLoader:()Lorg/jruby/util/JRubyClassLoader;
invokespecial org.jruby.util.ClassDefiningJRubyClassLoader.<init>:(Ljava/lang/ClassLoader;)V
dup
astore 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
7: StackMap locals: org.jruby.util.ClassDefiningClassLoader java.util.Map
StackMap stack:
aload 3
monitorexit
8: goto 11
StackMap locals:
StackMap stack: java.lang.Throwable
9: aload 3
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 12: StackMap locals:
StackMap stack:
new org.jruby.util.OneShotClassLoader
dup
aload 0
getfield org.jruby.compiler.JITCompiler.runtime:Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getJRubyClassLoader:()Lorg/jruby/util/JRubyClassLoader;
invokespecial org.jruby.util.OneShotClassLoader.<init>:(Lorg/jruby/util/JRubyClassLoader;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/jruby/compiler/JITCompiler;
0 13 1 source Ljava/lang/String;
2 12 2 loader Lorg/jruby/util/ClassDefiningClassLoader;
Exception table:
from to target type
4 8 9 any
9 10 9 any
MethodParameters:
Name Flags
source final
static void log(org.jruby.compiler.Compilable<?>, java.lang.String, java.lang.String, []);
descriptor: (Lorg/jruby/compiler/Compilable;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
flags: (0x0088) ACC_STATIC, ACC_VARARGS
Code:
stack=3, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokeinterface org.jruby.compiler.Compilable.getImplementationClass:()Lorg/jruby/RubyModule;
invokevirtual org.jruby.RubyModule.getName:()Ljava/lang/String;
astore 4
start local 4 1: new java.lang.StringBuilder
dup
bipush 32
invokespecial java.lang.StringBuilder.<init>:(I)V
astore 5
start local 5 2: aload 5
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
3: aload 1
ifnull 4
aload 5
bipush 32
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
4: StackMap locals: java.lang.String java.lang.StringBuilder
StackMap stack:
aload 5
ldc " at "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokeinterface org.jruby.compiler.Compilable.getFile:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
bipush 58
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
aload 0
invokeinterface org.jruby.compiler.Compilable.getLine:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
pop
5: aload 3
arraylength
ifle 13
6: aload 5
ldc " because of: \""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
7: aload 3
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 11
StackMap locals: org.jruby.compiler.Compilable java.lang.String java.lang.String java.lang.Object[] java.lang.String java.lang.StringBuilder top int int java.lang.Object[]
StackMap stack:
8: aload 9
iload 7
aaload
astore 6
start local 6 9: aload 5
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
pop
end local 6 10: iinc 7 1
StackMap locals:
StackMap stack:
11: iload 7
iload 8
if_icmplt 8
12: aload 5
bipush 34
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
13: StackMap locals: org.jruby.compiler.Compilable java.lang.String java.lang.String java.lang.Object[] java.lang.String java.lang.StringBuilder
StackMap stack:
getstatic org.jruby.compiler.JITCompiler.LOG:Lorg/jruby/util/log/Logger;
aload 5
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
invokeinterface org.jruby.util.log.Logger.info:(Ljava/lang/String;[Ljava/lang/Object;)V
14: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 target Lorg/jruby/compiler/Compilable<*>;
0 15 1 name Ljava/lang/String;
0 15 2 message Ljava/lang/String;
0 15 3 reason [Ljava/lang/Object;
1 15 4 className Ljava/lang/String;
2 15 5 builder Ljava/lang/StringBuilder;
9 10 6 aReason Ljava/lang/Object;
Signature: (Lorg/jruby/compiler/Compilable<*>;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
MethodParameters:
Name Flags
target
name
message
reason
static int[] $SWITCH_TABLE$org$jruby$compiler$ClassLoaderMode();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic org.jruby.compiler.JITCompiler.$SWITCH_TABLE$org$jruby$compiler$ClassLoaderMode:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic org.jruby.compiler.ClassLoaderMode.values:()[Lorg/jruby/compiler/ClassLoaderMode;
arraylength
newarray 10
astore 0
2: aload 0
getstatic org.jruby.compiler.ClassLoaderMode.SHARED:Lorg/jruby/compiler/ClassLoaderMode;
invokevirtual org.jruby.compiler.ClassLoaderMode.ordinal:()I
iconst_2
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic org.jruby.compiler.ClassLoaderMode.SHARED_SOURCE:Lorg/jruby/compiler/ClassLoaderMode;
invokevirtual org.jruby.compiler.ClassLoaderMode.ordinal:()I
iconst_3
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic org.jruby.compiler.ClassLoaderMode.UNIQUE:Lorg/jruby/compiler/ClassLoaderMode;
invokevirtual org.jruby.compiler.ClassLoaderMode.ordinal:()I
iconst_1
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
dup
putstatic org.jruby.compiler.JITCompiler.$SWITCH_TABLE$org$jruby$compiler$ClassLoaderMode:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
}
SourceFile: "JITCompiler.java"
NestMembers:
org.jruby.compiler.JITCompiler$SharedClassLoaderMap org.jruby.compiler.JITCompiler$Task
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
private SharedClassLoaderMap = org.jruby.compiler.JITCompiler$SharedClassLoaderMap of org.jruby.compiler.JITCompiler
abstract Task = org.jruby.compiler.JITCompiler$Task of org.jruby.compiler.JITCompiler