public class org.objectweb.asm.commons.LocalVariablesSorter extends org.objectweb.asm.MethodVisitor
{
private static final org.objectweb.asm.Type OBJECT_TYPE;
private int[] remappedVariableIndices;
private java.lang.Object[] remappedLocalTypes;
protected final int firstLocal;
protected int nextLocal;
public void <init>(int, java.lang.String, org.objectweb.asm.MethodVisitor)
{
java.lang.IllegalStateException v;
org.objectweb.asm.commons.LocalVariablesSorter v;
org.objectweb.asm.MethodVisitor v;
int v;
java.lang.Class v;
java.lang.String v;
v := @this: org.objectweb.asm.commons.LocalVariablesSorter;
v := @parameter: int;
v := @parameter: java.lang.String;
v := @parameter: org.objectweb.asm.MethodVisitor;
specialinvoke v.<org.objectweb.asm.commons.LocalVariablesSorter: void <init>(int,int,java.lang.String,org.objectweb.asm.MethodVisitor)>(589824, v, v, v);
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
if v == class "Lorg/objectweb/asm/commons/LocalVariablesSorter;" goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>()>();
throw v;
label:
return;
}
protected void <init>(int, int, java.lang.String, org.objectweb.asm.MethodVisitor)
{
java.lang.Object[] v;
org.objectweb.asm.MethodVisitor v;
org.objectweb.asm.Type v;
org.objectweb.asm.commons.LocalVariablesSorter v;
byte v;
int[] v;
int v, v, v, v, v, v, v, v, v;
org.objectweb.asm.Type[] v;
java.lang.String v;
v := @this: org.objectweb.asm.commons.LocalVariablesSorter;
v := @parameter: int;
v := @parameter: int;
v := @parameter: java.lang.String;
v := @parameter: org.objectweb.asm.MethodVisitor;
specialinvoke v.<org.objectweb.asm.MethodVisitor: void <init>(int,org.objectweb.asm.MethodVisitor)>(v, v);
v = newarray (int)[40];
v.<org.objectweb.asm.commons.LocalVariablesSorter: int[] remappedVariableIndices> = v;
v = newarray (java.lang.Object)[20];
v.<org.objectweb.asm.commons.LocalVariablesSorter: java.lang.Object[] remappedLocalTypes> = v;
v = 8 & v;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v.<org.objectweb.asm.commons.LocalVariablesSorter: int nextLocal> = v;
v = staticinvoke <org.objectweb.asm.Type: org.objectweb.asm.Type[] getArgumentTypes(java.lang.String)>(v);
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = v.<org.objectweb.asm.commons.LocalVariablesSorter: int nextLocal>;
v = virtualinvoke v.<org.objectweb.asm.Type: int getSize()>();
v = v + v;
v.<org.objectweb.asm.commons.LocalVariablesSorter: int nextLocal> = v;
v = v + 1;
goto label;
label:
v = v.<org.objectweb.asm.commons.LocalVariablesSorter: int nextLocal>;
v.<org.objectweb.asm.commons.LocalVariablesSorter: int firstLocal> = v;
return;
}
public void visitVarInsn(int, int)
{
org.objectweb.asm.commons.LocalVariablesSorter v;
int v, v, v;
java.lang.String v;
java.lang.IllegalArgumentException v;
org.objectweb.asm.Type v;
v := @this: org.objectweb.asm.commons.LocalVariablesSorter;
v := @parameter: int;
v := @parameter: int;
lookupswitch(v)
{
case 21: goto label;
case 22: goto label;
case 23: goto label;
case 24: goto label;
case 25: goto label;
case 54: goto label;
case 55: goto label;
case 56: goto label;
case 57: goto label;
case 58: goto label;
case 169: goto label;
default: goto label;
};
label:
v = <org.objectweb.asm.Type: org.objectweb.asm.Type LONG_TYPE>;
goto label;
label:
v = <org.objectweb.asm.Type: org.objectweb.asm.Type DOUBLE_TYPE>;
goto label;
label:
v = <org.objectweb.asm.Type: org.objectweb.asm.Type FLOAT_TYPE>;
goto label;
label:
v = <org.objectweb.asm.Type: org.objectweb.asm.Type INT_TYPE>;
goto label;
label:
v = <org.objectweb.asm.commons.LocalVariablesSorter: org.objectweb.asm.Type OBJECT_TYPE>;
goto label;
label:
v = new java.lang.IllegalArgumentException;
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[])>("Invalid opcode \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
v = specialinvoke v.<org.objectweb.asm.commons.LocalVariablesSorter: int remap(int,org.objectweb.asm.Type)>(v, v);
specialinvoke v.<org.objectweb.asm.MethodVisitor: void visitVarInsn(int,int)>(v, v);
return;
}
public void visitIincInsn(int, int)
{
org.objectweb.asm.commons.LocalVariablesSorter v;
int v, v, v;
org.objectweb.asm.Type v;
v := @this: org.objectweb.asm.commons.LocalVariablesSorter;
v := @parameter: int;
v := @parameter: int;
v = <org.objectweb.asm.Type: org.objectweb.asm.Type INT_TYPE>;
v = specialinvoke v.<org.objectweb.asm.commons.LocalVariablesSorter: int remap(int,org.objectweb.asm.Type)>(v, v);
specialinvoke v.<org.objectweb.asm.MethodVisitor: void visitIincInsn(int,int)>(v, v);
return;
}
public void visitMaxs(int, int)
{
org.objectweb.asm.commons.LocalVariablesSorter v;
int v, v, v;
v := @this: org.objectweb.asm.commons.LocalVariablesSorter;
v := @parameter: int;
v := @parameter: int;
v = v.<org.objectweb.asm.commons.LocalVariablesSorter: int nextLocal>;
specialinvoke v.<org.objectweb.asm.MethodVisitor: void visitMaxs(int,int)>(v, v);
return;
}
public void visitLocalVariable(java.lang.String, java.lang.String, java.lang.String, org.objectweb.asm.Label, org.objectweb.asm.Label, int)
{
org.objectweb.asm.Label v, v;
org.objectweb.asm.Type v;
org.objectweb.asm.commons.LocalVariablesSorter v;
int v, v;
java.lang.String v, v, v;
v := @this: org.objectweb.asm.commons.LocalVariablesSorter;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: org.objectweb.asm.Label;
v := @parameter: org.objectweb.asm.Label;
v := @parameter: int;
v = staticinvoke <org.objectweb.asm.Type: org.objectweb.asm.Type getType(java.lang.String)>(v);
v = specialinvoke v.<org.objectweb.asm.commons.LocalVariablesSorter: int remap(int,org.objectweb.asm.Type)>(v, v);
specialinvoke 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, v, v, v, v);
return;
}
public org.objectweb.asm.AnnotationVisitor visitLocalVariableAnnotation(int, org.objectweb.asm.TypePath, org.objectweb.asm.Label[], org.objectweb.asm.Label[], int[], java.lang.String, boolean)
{
org.objectweb.asm.AnnotationVisitor v;
org.objectweb.asm.Type v;
org.objectweb.asm.commons.LocalVariablesSorter v;
int[] v, v;
int v, v, v, v, v, v;
org.objectweb.asm.Label[] v, v;
java.lang.String v;
boolean v;
org.objectweb.asm.TypePath v;
v := @this: org.objectweb.asm.commons.LocalVariablesSorter;
v := @parameter: int;
v := @parameter: org.objectweb.asm.TypePath;
v := @parameter: org.objectweb.asm.Label[];
v := @parameter: org.objectweb.asm.Label[];
v := @parameter: int[];
v := @parameter: java.lang.String;
v := @parameter: boolean;
v = staticinvoke <org.objectweb.asm.Type: org.objectweb.asm.Type getType(java.lang.String)>(v);
v = lengthof v;
v = newarray (int)[v];
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
v = specialinvoke v.<org.objectweb.asm.commons.LocalVariablesSorter: int remap(int,org.objectweb.asm.Type)>(v, v);
v[v] = v;
v = v + 1;
goto label;
label:
v = specialinvoke v.<org.objectweb.asm.MethodVisitor: org.objectweb.asm.AnnotationVisitor visitLocalVariableAnnotation(int,org.objectweb.asm.TypePath,org.objectweb.asm.Label[],org.objectweb.asm.Label[],int[],java.lang.String,boolean)>(v, v, v, v, v, v, v);
return v;
}
public void visitFrame(int, int, java.lang.Object[], int, java.lang.Object[])
{
java.lang.Integer v, v, v, v, v, v, v, v, v, v, v;
org.objectweb.asm.Type v;
org.objectweb.asm.commons.LocalVariablesSorter v;
byte v, v;
boolean v;
java.lang.Object[] v, v, v, v, v, v, v, v, v, v, v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.IllegalArgumentException v;
java.lang.Object v, v;
v := @this: org.objectweb.asm.commons.LocalVariablesSorter;
v := @parameter: int;
v := @parameter: int;
v := @parameter: java.lang.Object[];
v := @parameter: int;
v := @parameter: java.lang.Object[];
v = (int) -1;
if v == v goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("LocalVariablesSorter only accepts expanded frames (see ClassReader.EXPAND_FRAMES)");
throw v;
label:
v = v.<org.objectweb.asm.commons.LocalVariablesSorter: java.lang.Object[] remappedLocalTypes>;
v = lengthof v;
v = newarray (java.lang.Object)[v];
v = v.<org.objectweb.asm.commons.LocalVariablesSorter: java.lang.Object[] remappedLocalTypes>;
v = lengthof v;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, 0, v, 0, v);
v = v.<org.objectweb.asm.commons.LocalVariablesSorter: java.lang.Object[] remappedLocalTypes>;
virtualinvoke v.<org.objectweb.asm.commons.LocalVariablesSorter: void updateNewLocals(java.lang.Object[])>(v);
v = 0;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = <org.objectweb.asm.Opcodes: java.lang.Integer TOP>;
if v == v goto label;
v = <org.objectweb.asm.commons.LocalVariablesSorter: org.objectweb.asm.Type OBJECT_TYPE>;
v = <org.objectweb.asm.Opcodes: java.lang.Integer INTEGER>;
if v != v goto label;
v = <org.objectweb.asm.Type: org.objectweb.asm.Type INT_TYPE>;
goto label;
label:
v = <org.objectweb.asm.Opcodes: java.lang.Integer FLOAT>;
if v != v goto label;
v = <org.objectweb.asm.Type: org.objectweb.asm.Type FLOAT_TYPE>;
goto label;
label:
v = <org.objectweb.asm.Opcodes: java.lang.Integer LONG>;
if v != v goto label;
v = <org.objectweb.asm.Type: org.objectweb.asm.Type LONG_TYPE>;
goto label;
label:
v = <org.objectweb.asm.Opcodes: java.lang.Integer DOUBLE>;
if v != v goto label;
v = <org.objectweb.asm.Type: org.objectweb.asm.Type DOUBLE_TYPE>;
goto label;
label:
v = v instanceof java.lang.String;
if v == 0 goto label;
v = staticinvoke <org.objectweb.asm.Type: org.objectweb.asm.Type getObjectType(java.lang.String)>(v);
label:
v = specialinvoke v.<org.objectweb.asm.commons.LocalVariablesSorter: int remap(int,org.objectweb.asm.Type)>(v, v);
specialinvoke v.<org.objectweb.asm.commons.LocalVariablesSorter: void setFrameLocal(int,java.lang.Object)>(v, v);
label:
v = v;
v = <org.objectweb.asm.Opcodes: java.lang.Integer LONG>;
if v == v goto label;
v = <org.objectweb.asm.Opcodes: java.lang.Integer DOUBLE>;
if v != v goto label;
label:
v = 2;
goto label;
label:
v = 1;
label:
v = v + v;
v = v + 1;
goto label;
label:
v = 0;
v = 0;
v = 0;
label:
v = v.<org.objectweb.asm.commons.LocalVariablesSorter: java.lang.Object[] remappedLocalTypes>;
v = lengthof v;
if v >= v goto label;
v = v.<org.objectweb.asm.commons.LocalVariablesSorter: java.lang.Object[] remappedLocalTypes>;
v = v[v];
v = v;
v = <org.objectweb.asm.Opcodes: java.lang.Integer LONG>;
if v == v goto label;
v = <org.objectweb.asm.Opcodes: java.lang.Integer DOUBLE>;
if v != v goto label;
label:
v = 2;
goto label;
label:
v = 1;
label:
v = v + v;
if v == null goto label;
v = <org.objectweb.asm.Opcodes: java.lang.Integer TOP>;
if v == v goto label;
v = v.<org.objectweb.asm.commons.LocalVariablesSorter: java.lang.Object[] remappedLocalTypes>;
v = v;
v = v + 1;
v[v] = v;
v = v;
goto label;
label:
v = v.<org.objectweb.asm.commons.LocalVariablesSorter: java.lang.Object[] remappedLocalTypes>;
v = v;
v = v + 1;
v = <org.objectweb.asm.Opcodes: java.lang.Integer TOP>;
v[v] = v;
goto label;
label:
v = v.<org.objectweb.asm.commons.LocalVariablesSorter: java.lang.Object[] remappedLocalTypes>;
specialinvoke v.<org.objectweb.asm.MethodVisitor: void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[])>(v, v, v, v, v);
v.<org.objectweb.asm.commons.LocalVariablesSorter: java.lang.Object[] remappedLocalTypes> = v;
return;
}
public int newLocal(org.objectweb.asm.Type)
{
org.objectweb.asm.commons.LocalVariablesSorter v;
int v, v;
java.lang.Comparable v;
java.lang.AssertionError v;
org.objectweb.asm.Type v;
v := @this: org.objectweb.asm.commons.LocalVariablesSorter;
v := @parameter: org.objectweb.asm.Type;
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 = <org.objectweb.asm.Opcodes: java.lang.Integer INTEGER>;
goto label;
label:
v = <org.objectweb.asm.Opcodes: java.lang.Integer FLOAT>;
goto label;
label:
v = <org.objectweb.asm.Opcodes: java.lang.Integer LONG>;
goto label;
label:
v = <org.objectweb.asm.Opcodes: java.lang.Integer DOUBLE>;
goto label;
label:
v = virtualinvoke v.<org.objectweb.asm.Type: java.lang.String getDescriptor()>();
goto label;
label:
v = virtualinvoke v.<org.objectweb.asm.Type: java.lang.String getInternalName()>();
goto label;
label:
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = virtualinvoke v.<org.objectweb.asm.commons.LocalVariablesSorter: int newLocalMapping(org.objectweb.asm.Type)>(v);
virtualinvoke v.<org.objectweb.asm.commons.LocalVariablesSorter: void setLocalType(int,org.objectweb.asm.Type)>(v, v);
specialinvoke v.<org.objectweb.asm.commons.LocalVariablesSorter: void setFrameLocal(int,java.lang.Object)>(v, v);
return v;
}
protected void updateNewLocals(java.lang.Object[])
{
org.objectweb.asm.commons.LocalVariablesSorter v;
java.lang.Object[] v;
v := @this: org.objectweb.asm.commons.LocalVariablesSorter;
v := @parameter: java.lang.Object[];
return;
}
protected void setLocalType(int, org.objectweb.asm.Type)
{
int v;
org.objectweb.asm.commons.LocalVariablesSorter v;
org.objectweb.asm.Type v;
v := @this: org.objectweb.asm.commons.LocalVariablesSorter;
v := @parameter: int;
v := @parameter: org.objectweb.asm.Type;
return;
}
private void setFrameLocal(int, java.lang.Object)
{
java.lang.Object[] v, v, v, v;
org.objectweb.asm.commons.LocalVariablesSorter v;
int v, v, v, v, v;
java.lang.Object v;
v := @this: org.objectweb.asm.commons.LocalVariablesSorter;
v := @parameter: int;
v := @parameter: java.lang.Object;
v = v.<org.objectweb.asm.commons.LocalVariablesSorter: java.lang.Object[] remappedLocalTypes>;
v = lengthof v;
if v < v goto label;
v = 2 * v;
v = v + 1;
v = staticinvoke <java.lang.Math: int max(int,int)>(v, v);
v = newarray (java.lang.Object)[v];
v = v.<org.objectweb.asm.commons.LocalVariablesSorter: java.lang.Object[] remappedLocalTypes>;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, 0, v, 0, v);
v.<org.objectweb.asm.commons.LocalVariablesSorter: java.lang.Object[] remappedLocalTypes> = v;
label:
v = v.<org.objectweb.asm.commons.LocalVariablesSorter: java.lang.Object[] remappedLocalTypes>;
v[v] = v;
return;
}
private int remap(int, org.objectweb.asm.Type)
{
org.objectweb.asm.Type v;
org.objectweb.asm.commons.LocalVariablesSorter v;
int[] v, v, v, v, v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
v := @this: org.objectweb.asm.commons.LocalVariablesSorter;
v := @parameter: int;
v := @parameter: org.objectweb.asm.Type;
v = virtualinvoke v.<org.objectweb.asm.Type: int getSize()>();
v = v + v;
v = v.<org.objectweb.asm.commons.LocalVariablesSorter: int firstLocal>;
if v > v goto label;
return v;
label:
v = 2 * v;
v = virtualinvoke v.<org.objectweb.asm.Type: int getSize()>();
v = v + v;
v = v - 1;
v = v.<org.objectweb.asm.commons.LocalVariablesSorter: int[] remappedVariableIndices>;
v = lengthof v;
if v < v goto label;
v = 2 * v;
v = v + 1;
v = staticinvoke <java.lang.Math: int max(int,int)>(v, v);
v = newarray (int)[v];
v = v.<org.objectweb.asm.commons.LocalVariablesSorter: int[] remappedVariableIndices>;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, 0, v, 0, v);
v.<org.objectweb.asm.commons.LocalVariablesSorter: int[] remappedVariableIndices> = v;
label:
v = v.<org.objectweb.asm.commons.LocalVariablesSorter: int[] remappedVariableIndices>;
v = v[v];
if v != 0 goto label;
v = virtualinvoke v.<org.objectweb.asm.commons.LocalVariablesSorter: int newLocalMapping(org.objectweb.asm.Type)>(v);
virtualinvoke v.<org.objectweb.asm.commons.LocalVariablesSorter: void setLocalType(int,org.objectweb.asm.Type)>(v, v);
v = v.<org.objectweb.asm.commons.LocalVariablesSorter: int[] remappedVariableIndices>;
v = v + 1;
v[v] = v;
goto label;
label:
v = v - 1;
label:
return v;
}
protected int newLocalMapping(org.objectweb.asm.Type)
{
org.objectweb.asm.commons.LocalVariablesSorter v;
int v, v, v, v;
org.objectweb.asm.Type v;
v := @this: org.objectweb.asm.commons.LocalVariablesSorter;
v := @parameter: org.objectweb.asm.Type;
v = v.<org.objectweb.asm.commons.LocalVariablesSorter: int nextLocal>;
v = v.<org.objectweb.asm.commons.LocalVariablesSorter: int nextLocal>;
v = virtualinvoke v.<org.objectweb.asm.Type: int getSize()>();
v = v + v;
v.<org.objectweb.asm.commons.LocalVariablesSorter: int nextLocal> = v;
return v;
}
static void <clinit>()
{
org.objectweb.asm.Type v;
v = staticinvoke <org.objectweb.asm.Type: org.objectweb.asm.Type getObjectType(java.lang.String)>("java/lang/Object");
<org.objectweb.asm.commons.LocalVariablesSorter: org.objectweb.asm.Type OBJECT_TYPE> = v;
return;
}
}