final class org.fusesource.hawtdispatch.DispatchQueueProxy$Generator extends java.lang.Object implements org.objectweb.asm.Opcodes
{
private static final java.lang.String RUNNABLE;
private static final java.lang.String OBJECT_CLASS;
private static final java.lang.String DISPATCH_QUEUE;
private final java.lang.ClassLoader loader;
private java.lang.reflect.Method defineClassMethod;
private final java.lang.Class interfaceClass;
private java.lang.String proxyName;
private java.lang.String interfaceName;
private void <init>(java.lang.ClassLoader, java.lang.Class) throws java.lang.RuntimeException
{
java.lang.Throwable v;
org.fusesource.hawtdispatch.DispatchQueueProxy$Generator v;
java.lang.String v, v, v, v, v, v;
java.lang.reflect.Method v, v;
java.lang.Class[] v;
java.lang.RuntimeException v;
java.lang.Class v, v, v, v;
java.lang.ClassLoader v;
v := @this: org.fusesource.hawtdispatch.DispatchQueueProxy$Generator;
v := @parameter: java.lang.ClassLoader;
v := @parameter: java.lang.Class;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.ClassLoader loader> = v;
v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.Class interfaceClass> = v;
v = staticinvoke <org.fusesource.hawtdispatch.DispatchQueueProxy: java.lang.String proxyName(java.lang.Class)>(v);
v = virtualinvoke v.<java.lang.String: java.lang.String replace(char,char)>(46, 47);
v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String proxyName> = v;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: java.lang.String replace(char,char)>(46, 47);
v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String interfaceName> = v;
label:
v = class "Ljava/lang/ClassLoader;";
v = newarray (java.lang.Class)[4];
v[0] = class "Ljava/lang/String;";
v[1] = class "[B";
v = <java.lang.Integer: java.lang.Class TYPE>;
v[2] = v;
v = <java.lang.Integer: java.lang.Class TYPE>;
v[3] = v;
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method getDeclaredMethod(java.lang.String,java.lang.Class[])>("defineClass", v);
v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.reflect.Method defineClassMethod> = v;
v = v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.reflect.Method defineClassMethod>;
virtualinvoke v.<java.lang.reflect.Method: void setAccessible(boolean)>(1);
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
v = virtualinvoke v.<java.lang.Throwable: java.lang.String getMessage()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Could not access the \'java.lang.ClassLoader.defineClass\' method due to: \u0001");
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
private java.lang.Class generate() throws java.lang.IllegalArgumentException
{
byte[] v, v;
java.lang.reflect.Method[] v;
org.fusesource.hawtdispatch.DispatchQueueProxy$Generator v;
int v, v;
java.lang.Class v, v;
java.lang.String v, v, v, v;
java.lang.reflect.Method v, v;
v := @this: org.fusesource.hawtdispatch.DispatchQueueProxy$Generator;
v = v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.Class interfaceClass>;
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method[] getMethods()>();
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
v = specialinvoke v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String runnable(int,java.lang.reflect.Method)>(v, v);
v = virtualinvoke v.<java.lang.String: java.lang.String replace(char,char)>(47, 46);
v = v[v];
v = virtualinvoke v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: byte[] dumpRunnable(int,java.lang.reflect.Method)>(v, v);
specialinvoke v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.Class defineClass(java.lang.String,byte[])>(v, v);
v = v + 1;
goto label;
label:
v = v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String proxyName>;
v = virtualinvoke v.<java.lang.String: java.lang.String replace(char,char)>(47, 46);
v = virtualinvoke v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: byte[] dumpProxy(java.lang.reflect.Method[])>(v);
v = specialinvoke v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.Class defineClass(java.lang.String,byte[])>(v, v);
return v;
}
private java.lang.Class defineClass(java.lang.String, byte[]) throws java.lang.RuntimeException
{
byte[] v;
java.lang.Object[] v;
java.lang.Integer v, v;
org.fusesource.hawtdispatch.DispatchQueueProxy$Generator v;
int v;
java.lang.String v, v, v, v, v;
java.lang.reflect.Method v;
java.lang.IllegalAccessException v;
java.lang.RuntimeException v, v;
java.lang.reflect.InvocationTargetException v;
java.lang.Object v;
java.lang.ClassLoader v;
v := @this: org.fusesource.hawtdispatch.DispatchQueueProxy$Generator;
v := @parameter: java.lang.String;
v := @parameter: byte[];
label:
v = v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.reflect.Method defineClassMethod>;
v = v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.ClassLoader loader>;
v = newarray (java.lang.Object)[4];
v[0] = v;
v[1] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(0);
v[2] = v;
v = lengthof v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[3] = v;
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Object invoke(java.lang.Object,java.lang.Object[])>(v, v);
label:
return v;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
v = virtualinvoke v.<java.lang.IllegalAccessException: java.lang.String getMessage()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Could not define the generated class due to: \u0001");
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
v = virtualinvoke v.<java.lang.reflect.InvocationTargetException: java.lang.String getMessage()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Could not define the generated class due to: \u0001");
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
catch java.lang.IllegalAccessException from label to label with label;
catch java.lang.reflect.InvocationTargetException from label to label with label;
}
public byte[] dumpProxy(java.lang.reflect.Method[])
{
byte[] v;
java.lang.Integer v;
org.fusesource.hawtdispatch.DispatchQueueProxy$Generator v;
org.objectweb.asm.ClassWriter v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.Class[] v;
org.objectweb.asm.MethodVisitor v, v;
org.objectweb.asm.Type v, v;
java.lang.reflect.Method[] v;
org.objectweb.asm.Type[] v;
java.lang.reflect.Method v, v, v;
org.objectweb.asm.FieldVisitor v, v;
org.objectweb.asm.Label v, v, v, v;
java.lang.String[] v;
int v, v, v, v, v, v, v, v, v, v, v;
java.lang.Class v, v;
v := @this: org.fusesource.hawtdispatch.DispatchQueueProxy$Generator;
v := @parameter: java.lang.reflect.Method[];
v = new org.objectweb.asm.ClassWriter;
specialinvoke v.<org.objectweb.asm.ClassWriter: void <init>(int)>(2);
v = v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String proxyName>;
v = newarray (java.lang.String)[1];
v = v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String interfaceName>;
v[0] = v;
virtualinvoke v.<org.objectweb.asm.ClassWriter: void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[])>(48, 33, v, null, "java/lang/Object", v);
v = <org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String DISPATCH_QUEUE>;
v = specialinvoke v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String sig(java.lang.String)>(v);
v = virtualinvoke v.<org.objectweb.asm.ClassWriter: org.objectweb.asm.FieldVisitor visitField(int,java.lang.String,java.lang.String,java.lang.String,java.lang.Object)>(18, "queue", v, null, null);
interfaceinvoke v.<org.objectweb.asm.FieldVisitor: void visitEnd()>();
v = v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String interfaceName>;
v = specialinvoke v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String sig(java.lang.String)>(v);
v = virtualinvoke v.<org.objectweb.asm.ClassWriter: org.objectweb.asm.FieldVisitor visitField(int,java.lang.String,java.lang.String,java.lang.String,java.lang.Object)>(18, "target", v, null, null);
interfaceinvoke v.<org.objectweb.asm.FieldVisitor: void visitEnd()>();
v = v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String interfaceName>;
v = specialinvoke v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String sig(java.lang.String)>(v);
v = <org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String DISPATCH_QUEUE>;
v = specialinvoke v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String sig(java.lang.String)>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("(\u0001\u)V");
v = virtualinvoke v.<org.objectweb.asm.ClassWriter: org.objectweb.asm.MethodVisitor visitMethod(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[])>(1, "<init>", v, null, null);
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitCode()>();
v = new org.objectweb.asm.Label;
specialinvoke v.<org.objectweb.asm.Label: void <init>()>();
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitLabel(org.objectweb.asm.Label)>(v);
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitVarInsn(int,int)>(25, 0);
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String)>(183, "java/lang/Object", "<init>", "()V");
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitVarInsn(int,int)>(25, 0);
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitVarInsn(int,int)>(25, 2);
v = v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String proxyName>;
v = <org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String DISPATCH_QUEUE>;
v = specialinvoke v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String sig(java.lang.String)>(v);
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String)>(181, v, "queue", v);
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitVarInsn(int,int)>(25, 0);
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitVarInsn(int,int)>(25, 1);
v = v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String proxyName>;
v = v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String interfaceName>;
v = specialinvoke v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String sig(java.lang.String)>(v);
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String)>(181, v, "target", v);
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitInsn(int)>(177);
v = new org.objectweb.asm.Label;
specialinvoke v.<org.objectweb.asm.Label: void <init>()>();
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitLabel(org.objectweb.asm.Label)>(v);
v = v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String proxyName>;
v = specialinvoke v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String sig(java.lang.String)>(v);
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitLocalVariable(java.lang.String,java.lang.String,java.lang.String,org.objectweb.asm.Label,org.objectweb.asm.Label,int)>("this", v, null, v, v, 0);
v = v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String interfaceName>;
v = specialinvoke v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String sig(java.lang.String)>(v);
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitLocalVariable(java.lang.String,java.lang.String,java.lang.String,org.objectweb.asm.Label,org.objectweb.asm.Label,int)>("target", v, null, v, v, 1);
v = <org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String DISPATCH_QUEUE>;
v = specialinvoke v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String sig(java.lang.String)>(v);
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitLocalVariable(java.lang.String,java.lang.String,java.lang.String,org.objectweb.asm.Label,org.objectweb.asm.Label,int)>("queue", v, null, v, v, 2);
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitMaxs(int,int)>(2, 3);
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitEnd()>();
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Class[] getParameterTypes()>();
v = staticinvoke <org.objectweb.asm.Type: org.objectweb.asm.Type[] getArgumentTypes(java.lang.reflect.Method)>(v);
v = staticinvoke <org.objectweb.asm.Type: java.lang.String getMethodDescriptor(java.lang.reflect.Method)>(v);
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.String getName()>();
v = virtualinvoke v.<org.objectweb.asm.ClassWriter: org.objectweb.asm.MethodVisitor visitMethod(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[])>(1, v, v, null, null);
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitCode()>();
v = new org.objectweb.asm.Label;
specialinvoke v.<org.objectweb.asm.Label: void <init>()>();
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitLabel(org.objectweb.asm.Label)>(v);
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitVarInsn(int,int)>(25, 0);
v = v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String proxyName>;
v = <org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String DISPATCH_QUEUE>;
v = specialinvoke v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String sig(java.lang.String)>(v);
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String)>(180, v, "queue", v);
v = v[v];
v = specialinvoke v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String runnable(int,java.lang.reflect.Method)>(v, v);
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitTypeInsn(int,java.lang.String)>(187, v);
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitInsn(int)>(89);
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitVarInsn(int,int)>(25, 0);
v = v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String proxyName>;
v = v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String interfaceName>;
v = specialinvoke v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String sig(java.lang.String)>(v);
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String)>(180, v, "target", v);
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<org.objectweb.asm.Type: int getOpcode(int)>(21);
v = 1 + v;
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitVarInsn(int,int)>(v, v);
v = v + 1;
goto label;
label:
v = v[v];
v = specialinvoke v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String runnable(int,java.lang.reflect.Method)>(v, v);
v = v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String interfaceName>;
v = specialinvoke v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String sig(java.lang.String)>(v);
v = specialinvoke v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String sig(java.lang.Class[])>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("(\u0001\u)V");
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String)>(183, v, "<init>", v);
v = <org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String DISPATCH_QUEUE>;
v = specialinvoke v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String sig(java.lang.String)>("java/lang/Runnable");
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("(\u)V");
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String)>(185, v, "execute", v);
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Class getReturnType()>();
v = staticinvoke <org.objectweb.asm.Type: org.objectweb.asm.Type getType(java.lang.Class)>(v);
v = specialinvoke v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.Integer defaultConstant(org.objectweb.asm.Type)>(v);
if v == null goto label;
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitInsn(int)>(v);
label:
v = virtualinvoke v.<org.objectweb.asm.Type: int getOpcode(int)>(172);
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitInsn(int)>(v);
v = new org.objectweb.asm.Label;
specialinvoke v.<org.objectweb.asm.Label: void <init>()>();
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitLabel(org.objectweb.asm.Label)>(v);
v = v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String proxyName>;
v = specialinvoke v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String sig(java.lang.String)>(v);
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitLocalVariable(java.lang.String,java.lang.String,java.lang.String,org.objectweb.asm.Label,org.objectweb.asm.Label,int)>("this", v, null, v, v, 0);
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("param\u0001");
v = v[v];
v = specialinvoke v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String sig(java.lang.Class)>(v);
v = 1 + v;
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitLocalVariable(java.lang.String,java.lang.String,java.lang.String,org.objectweb.asm.Label,org.objectweb.asm.Label,int)>(v, v, null, v, v, v);
v = v + 1;
goto label;
label:
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitMaxs(int,int)>(0, 0);
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitEnd()>();
v = v + 1;
goto label;
label:
virtualinvoke v.<org.objectweb.asm.ClassWriter: void visitEnd()>();
v = virtualinvoke v.<org.objectweb.asm.ClassWriter: byte[] toByteArray()>();
return v;
}
private java.lang.Integer defaultConstant(org.objectweb.asm.Type)
{
int v;
java.lang.Integer v;
org.objectweb.asm.Type v;
org.fusesource.hawtdispatch.DispatchQueueProxy$Generator v;
v := @this: org.fusesource.hawtdispatch.DispatchQueueProxy$Generator;
v := @parameter: org.objectweb.asm.Type;
v = null;
v = virtualinvoke v.<org.objectweb.asm.Type: int getSort()>();
tableswitch(v)
{
case 1: goto label;
case 2: goto label;
case 3: goto label;
case 4: goto label;
case 5: goto label;
case 6: goto label;
case 7: goto label;
case 8: goto label;
case 9: goto label;
case 10: goto label;
default: goto label;
};
label:
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(3);
goto label;
label:
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(9);
goto label;
label:
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(11);
goto label;
label:
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(14);
goto label;
label:
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(1);
label:
return v;
}
public byte[] dumpRunnable(int, java.lang.reflect.Method)
{
byte[] v;
org.objectweb.asm.MethodVisitor v, v;
org.objectweb.asm.Type v, v, v;
org.fusesource.hawtdispatch.DispatchQueueProxy$Generator v;
org.objectweb.asm.Type[] v;
java.lang.reflect.Method v;
org.objectweb.asm.ClassWriter v;
org.objectweb.asm.FieldVisitor v, v;
org.objectweb.asm.Label v, v, v, v;
java.lang.String[] v;
int v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.Class[] v;
java.lang.Class v, v, v, v, v;
v := @this: org.fusesource.hawtdispatch.DispatchQueueProxy$Generator;
v := @parameter: int;
v := @parameter: java.lang.reflect.Method;
v = new org.objectweb.asm.ClassWriter;
specialinvoke v.<org.objectweb.asm.ClassWriter: void <init>(int)>(2);
v = specialinvoke v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String runnable(int,java.lang.reflect.Method)>(v, v);
v = newarray (java.lang.String)[1];
v[0] = "java/lang/Runnable";
virtualinvoke v.<org.objectweb.asm.ClassWriter: void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[])>(48, 48, v, null, "java/lang/Object", v);
v = v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String interfaceName>;
v = specialinvoke v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String sig(java.lang.String)>(v);
v = virtualinvoke v.<org.objectweb.asm.ClassWriter: org.objectweb.asm.FieldVisitor visitField(int,java.lang.String,java.lang.String,java.lang.String,java.lang.Object)>(18, "target", v, null, null);
interfaceinvoke v.<org.objectweb.asm.FieldVisitor: void visitEnd()>();
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Class[] getParameterTypes()>();
v = staticinvoke <org.objectweb.asm.Type: org.objectweb.asm.Type[] getArgumentTypes(java.lang.reflect.Method)>(v);
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("param\u0001");
v = v[v];
v = specialinvoke v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String sig(java.lang.Class)>(v);
v = virtualinvoke v.<org.objectweb.asm.ClassWriter: org.objectweb.asm.FieldVisitor visitField(int,java.lang.String,java.lang.String,java.lang.String,java.lang.Object)>(18, v, v, null, null);
interfaceinvoke v.<org.objectweb.asm.FieldVisitor: void visitEnd()>();
v = v + 1;
goto label;
label:
v = v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String interfaceName>;
v = specialinvoke v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String sig(java.lang.String)>(v);
v = specialinvoke v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String sig(java.lang.Class[])>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("(\u0001\u)V");
v = virtualinvoke v.<org.objectweb.asm.ClassWriter: org.objectweb.asm.MethodVisitor visitMethod(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[])>(1, "<init>", v, null, null);
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitCode()>();
v = new org.objectweb.asm.Label;
specialinvoke v.<org.objectweb.asm.Label: void <init>()>();
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitLabel(org.objectweb.asm.Label)>(v);
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitVarInsn(int,int)>(25, 0);
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String)>(183, "java/lang/Object", "<init>", "()V");
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitVarInsn(int,int)>(25, 0);
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitVarInsn(int,int)>(25, 1);
v = v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String interfaceName>;
v = specialinvoke v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String sig(java.lang.String)>(v);
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String)>(181, v, "target", v);
v = 0;
label:
v = lengthof v;
if v >= v goto label;
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitVarInsn(int,int)>(25, 0);
v = v[v];
v = virtualinvoke v.<org.objectweb.asm.Type: int getOpcode(int)>(21);
v = 2 + v;
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitVarInsn(int,int)>(v, v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("param\u0001");
v = v[v];
v = specialinvoke v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String sig(java.lang.Class)>(v);
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String)>(181, v, v, v);
v = v + 1;
goto label;
label:
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitInsn(int)>(177);
v = new org.objectweb.asm.Label;
specialinvoke v.<org.objectweb.asm.Label: void <init>()>();
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitLabel(org.objectweb.asm.Label)>(v);
v = specialinvoke v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String sig(java.lang.String)>(v);
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitLocalVariable(java.lang.String,java.lang.String,java.lang.String,org.objectweb.asm.Label,org.objectweb.asm.Label,int)>("this", v, null, v, v, 0);
v = v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String interfaceName>;
v = specialinvoke v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String sig(java.lang.String)>(v);
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitLocalVariable(java.lang.String,java.lang.String,java.lang.String,org.objectweb.asm.Label,org.objectweb.asm.Label,int)>("target", v, null, v, v, 1);
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("param\u0001");
v = v[v];
v = specialinvoke v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String sig(java.lang.Class)>(v);
v = 2 + v;
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitLocalVariable(java.lang.String,java.lang.String,java.lang.String,org.objectweb.asm.Label,org.objectweb.asm.Label,int)>(v, v, null, v, v, v);
v = v + 1;
goto label;
label:
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitMaxs(int,int)>(0, 0);
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitEnd()>();
v = virtualinvoke v.<org.objectweb.asm.ClassWriter: org.objectweb.asm.MethodVisitor visitMethod(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[])>(1, "run", "()V", null, null);
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitCode()>();
v = new org.objectweb.asm.Label;
specialinvoke v.<org.objectweb.asm.Label: void <init>()>();
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitLabel(org.objectweb.asm.Label)>(v);
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitVarInsn(int,int)>(25, 0);
v = v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String interfaceName>;
v = specialinvoke v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String sig(java.lang.String)>(v);
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String)>(180, v, "target", v);
v = 0;
label:
v = lengthof v;
if v >= v goto label;
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitVarInsn(int,int)>(25, 0);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("param\u0001");
v = v[v];
v = specialinvoke v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String sig(java.lang.Class)>(v);
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String)>(180, v, v, v);
v = v + 1;
goto label;
label:
v = staticinvoke <org.objectweb.asm.Type: java.lang.String getMethodDescriptor(java.lang.reflect.Method)>(v);
v = v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String interfaceName>;
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.String getName()>();
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String)>(185, v, v, v);
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Class getReturnType()>();
v = staticinvoke <org.objectweb.asm.Type: org.objectweb.asm.Type getType(java.lang.Class)>(v);
v = <org.objectweb.asm.Type: org.objectweb.asm.Type VOID_TYPE>;
if v == v goto label;
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitInsn(int)>(87);
label:
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitInsn(int)>(177);
v = new org.objectweb.asm.Label;
specialinvoke v.<org.objectweb.asm.Label: void <init>()>();
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitLabel(org.objectweb.asm.Label)>(v);
v = specialinvoke v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String sig(java.lang.String)>(v);
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitLocalVariable(java.lang.String,java.lang.String,java.lang.String,org.objectweb.asm.Label,org.objectweb.asm.Label,int)>("this", v, null, v, v, 0);
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitMaxs(int,int)>(0, 0);
interfaceinvoke v.<org.objectweb.asm.MethodVisitor: void visitEnd()>();
virtualinvoke v.<org.objectweb.asm.ClassWriter: void visitEnd()>();
v = virtualinvoke v.<org.objectweb.asm.ClassWriter: byte[] toByteArray()>();
return v;
}
private java.lang.String sig(java.lang.Class[])
{
java.lang.Class[] v;
org.fusesource.hawtdispatch.DispatchQueueProxy$Generator v;
int v, v;
java.lang.Class v;
java.lang.StringBuilder v;
java.lang.String v, v;
v := @this: org.fusesource.hawtdispatch.DispatchQueueProxy$Generator;
v := @parameter: java.lang.Class[];
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
v = specialinvoke v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String sig(java.lang.Class)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = v + 1;
goto label;
label:
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
return v;
}
private java.lang.String sig(java.lang.Class)
{
java.lang.Class v;
java.lang.String v;
org.fusesource.hawtdispatch.DispatchQueueProxy$Generator v;
v := @this: org.fusesource.hawtdispatch.DispatchQueueProxy$Generator;
v := @parameter: java.lang.Class;
v = staticinvoke <org.objectweb.asm.Type: java.lang.String getDescriptor(java.lang.Class)>(v);
return v;
}
private java.lang.String runnable(int, java.lang.reflect.Method)
{
int v;
java.lang.String v, v, v;
java.lang.reflect.Method v;
org.fusesource.hawtdispatch.DispatchQueueProxy$Generator v;
v := @this: org.fusesource.hawtdispatch.DispatchQueueProxy$Generator;
v := @parameter: int;
v := @parameter: java.lang.reflect.Method;
v = v.<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String proxyName>;
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.String getName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,int,java.lang.String)>(v, v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001$\u0001$\u0001");
return v;
}
private java.lang.String sig(java.lang.String)
{
java.lang.String v, v;
org.fusesource.hawtdispatch.DispatchQueueProxy$Generator v;
v := @this: org.fusesource.hawtdispatch.DispatchQueueProxy$Generator;
v := @parameter: java.lang.String;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("L\u;");
return v;
}
static void <clinit>()
{
java.lang.Class v;
java.lang.String v, v;
v = class "Lorg/fusesource/hawtdispatch/DispatchQueue;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: java.lang.String replace(char,char)>(46, 47);
<org.fusesource.hawtdispatch.DispatchQueueProxy$Generator: java.lang.String DISPATCH_QUEUE> = v;
return;
}
}