public class org.objectweb.asm.commons.CodeSizeEvaluator extends org.objectweb.asm.MethodVisitor implements org.objectweb.asm.Opcodes
{
private int minSize;
private int maxSize;
public void <init>(org.objectweb.asm.MethodVisitor)
{
org.objectweb.asm.MethodVisitor v;
org.objectweb.asm.commons.CodeSizeEvaluator v;
v := @this: org.objectweb.asm.commons.CodeSizeEvaluator;
v := @parameter: org.objectweb.asm.MethodVisitor;
specialinvoke v.<org.objectweb.asm.commons.CodeSizeEvaluator: void <init>(int,org.objectweb.asm.MethodVisitor)>(589824, v);
return;
}
protected void <init>(int, org.objectweb.asm.MethodVisitor)
{
int v;
org.objectweb.asm.MethodVisitor v;
org.objectweb.asm.commons.CodeSizeEvaluator v;
v := @this: org.objectweb.asm.commons.CodeSizeEvaluator;
v := @parameter: int;
v := @parameter: org.objectweb.asm.MethodVisitor;
specialinvoke v.<org.objectweb.asm.MethodVisitor: void <init>(int,org.objectweb.asm.MethodVisitor)>(v, v);
return;
}
public int getMinSize()
{
int v;
org.objectweb.asm.commons.CodeSizeEvaluator v;
v := @this: org.objectweb.asm.commons.CodeSizeEvaluator;
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int minSize>;
return v;
}
public int getMaxSize()
{
int v;
org.objectweb.asm.commons.CodeSizeEvaluator v;
v := @this: org.objectweb.asm.commons.CodeSizeEvaluator;
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int maxSize>;
return v;
}
public void visitInsn(int)
{
int v, v, v, v, v;
org.objectweb.asm.commons.CodeSizeEvaluator v;
v := @this: org.objectweb.asm.commons.CodeSizeEvaluator;
v := @parameter: int;
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int minSize>;
v = v + 1;
v.<org.objectweb.asm.commons.CodeSizeEvaluator: int minSize> = v;
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int maxSize>;
v = v + 1;
v.<org.objectweb.asm.commons.CodeSizeEvaluator: int maxSize> = v;
specialinvoke v.<org.objectweb.asm.MethodVisitor: void visitInsn(int)>(v);
return;
}
public void visitIntInsn(int, int)
{
org.objectweb.asm.commons.CodeSizeEvaluator v;
int v, v, v, v, v, v, v, v, v, v;
v := @this: org.objectweb.asm.commons.CodeSizeEvaluator;
v := @parameter: int;
v := @parameter: int;
if v != 17 goto label;
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int minSize>;
v = v + 3;
v.<org.objectweb.asm.commons.CodeSizeEvaluator: int minSize> = v;
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int maxSize>;
v = v + 3;
v.<org.objectweb.asm.commons.CodeSizeEvaluator: int maxSize> = v;
goto label;
label:
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int minSize>;
v = v + 2;
v.<org.objectweb.asm.commons.CodeSizeEvaluator: int minSize> = v;
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int maxSize>;
v = v + 2;
v.<org.objectweb.asm.commons.CodeSizeEvaluator: int maxSize> = v;
label:
specialinvoke v.<org.objectweb.asm.MethodVisitor: void visitIntInsn(int,int)>(v, v);
return;
}
public void visitVarInsn(int, int)
{
org.objectweb.asm.commons.CodeSizeEvaluator v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v;
v := @this: org.objectweb.asm.commons.CodeSizeEvaluator;
v := @parameter: int;
v := @parameter: int;
if v >= 4 goto label;
if v == 169 goto label;
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int minSize>;
v = v + 1;
v.<org.objectweb.asm.commons.CodeSizeEvaluator: int minSize> = v;
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int maxSize>;
v = v + 1;
v.<org.objectweb.asm.commons.CodeSizeEvaluator: int maxSize> = v;
goto label;
label:
if v < 256 goto label;
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int minSize>;
v = v + 4;
v.<org.objectweb.asm.commons.CodeSizeEvaluator: int minSize> = v;
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int maxSize>;
v = v + 4;
v.<org.objectweb.asm.commons.CodeSizeEvaluator: int maxSize> = v;
goto label;
label:
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int minSize>;
v = v + 2;
v.<org.objectweb.asm.commons.CodeSizeEvaluator: int minSize> = v;
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int maxSize>;
v = v + 2;
v.<org.objectweb.asm.commons.CodeSizeEvaluator: int maxSize> = v;
label:
specialinvoke v.<org.objectweb.asm.MethodVisitor: void visitVarInsn(int,int)>(v, v);
return;
}
public void visitTypeInsn(int, java.lang.String)
{
int v, v, v, v, v;
java.lang.String v;
org.objectweb.asm.commons.CodeSizeEvaluator v;
v := @this: org.objectweb.asm.commons.CodeSizeEvaluator;
v := @parameter: int;
v := @parameter: java.lang.String;
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int minSize>;
v = v + 3;
v.<org.objectweb.asm.commons.CodeSizeEvaluator: int minSize> = v;
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int maxSize>;
v = v + 3;
v.<org.objectweb.asm.commons.CodeSizeEvaluator: int maxSize> = v;
specialinvoke v.<org.objectweb.asm.MethodVisitor: void visitTypeInsn(int,java.lang.String)>(v, v);
return;
}
public void visitFieldInsn(int, java.lang.String, java.lang.String, java.lang.String)
{
org.objectweb.asm.commons.CodeSizeEvaluator v;
int v, v, v, v, v;
java.lang.String v, v, v;
v := @this: org.objectweb.asm.commons.CodeSizeEvaluator;
v := @parameter: int;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int minSize>;
v = v + 3;
v.<org.objectweb.asm.commons.CodeSizeEvaluator: int minSize> = v;
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int maxSize>;
v = v + 3;
v.<org.objectweb.asm.commons.CodeSizeEvaluator: int maxSize> = v;
specialinvoke v.<org.objectweb.asm.MethodVisitor: void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String)>(v, v, v, v);
return;
}
public void visitMethodInsn(int, java.lang.String, java.lang.String, java.lang.String, boolean)
{
int v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.String v, v, v;
boolean v;
org.objectweb.asm.commons.CodeSizeEvaluator v;
v := @this: org.objectweb.asm.commons.CodeSizeEvaluator;
v := @parameter: int;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: boolean;
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int api>;
if v >= 327680 goto label;
v = v & 256;
if v != 0 goto label;
specialinvoke v.<org.objectweb.asm.MethodVisitor: void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean)>(v, v, v, v, v);
return;
label:
v = (int) -257;
v = v & v;
if v != 185 goto label;
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int minSize>;
v = v + 5;
v.<org.objectweb.asm.commons.CodeSizeEvaluator: int minSize> = v;
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int maxSize>;
v = v + 5;
v.<org.objectweb.asm.commons.CodeSizeEvaluator: int maxSize> = v;
goto label;
label:
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int minSize>;
v = v + 3;
v.<org.objectweb.asm.commons.CodeSizeEvaluator: int minSize> = v;
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int maxSize>;
v = v + 3;
v.<org.objectweb.asm.commons.CodeSizeEvaluator: int maxSize> = v;
label:
specialinvoke v.<org.objectweb.asm.MethodVisitor: void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean)>(v, v, v, v, v);
return;
}
public transient void visitInvokeDynamicInsn(java.lang.String, java.lang.String, org.objectweb.asm.Handle, java.lang.Object[])
{
java.lang.Object[] v;
org.objectweb.asm.commons.CodeSizeEvaluator v;
org.objectweb.asm.Handle v;
int v, v, v, v;
java.lang.String v, v;
v := @this: org.objectweb.asm.commons.CodeSizeEvaluator;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: org.objectweb.asm.Handle;
v := @parameter: java.lang.Object[];
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int minSize>;
v = v + 5;
v.<org.objectweb.asm.commons.CodeSizeEvaluator: int minSize> = v;
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int maxSize>;
v = v + 5;
v.<org.objectweb.asm.commons.CodeSizeEvaluator: int maxSize> = v;
specialinvoke v.<org.objectweb.asm.MethodVisitor: void visitInvokeDynamicInsn(java.lang.String,java.lang.String,org.objectweb.asm.Handle,java.lang.Object[])>(v, v, v, v);
return;
}
public void visitJumpInsn(int, org.objectweb.asm.Label)
{
org.objectweb.asm.Label v;
org.objectweb.asm.commons.CodeSizeEvaluator v;
int v, v, v, v, v, v, v;
v := @this: org.objectweb.asm.commons.CodeSizeEvaluator;
v := @parameter: int;
v := @parameter: org.objectweb.asm.Label;
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int minSize>;
v = v + 3;
v.<org.objectweb.asm.commons.CodeSizeEvaluator: int minSize> = v;
if v == 167 goto label;
if v != 168 goto label;
label:
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int maxSize>;
v = v + 5;
v.<org.objectweb.asm.commons.CodeSizeEvaluator: int maxSize> = v;
goto label;
label:
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int maxSize>;
v = v + 8;
v.<org.objectweb.asm.commons.CodeSizeEvaluator: int maxSize> = v;
label:
specialinvoke v.<org.objectweb.asm.MethodVisitor: void visitJumpInsn(int,org.objectweb.asm.Label)>(v, v);
return;
}
public void visitLdcInsn(java.lang.Object)
{
org.objectweb.asm.commons.CodeSizeEvaluator v;
int v, v, v, v, v, v, v, v, v;
java.lang.Object v;
boolean v, v, v;
v := @this: org.objectweb.asm.commons.CodeSizeEvaluator;
v := @parameter: java.lang.Object;
v = v instanceof java.lang.Long;
if v != 0 goto label;
v = v instanceof java.lang.Double;
if v != 0 goto label;
v = v instanceof org.objectweb.asm.ConstantDynamic;
if v == 0 goto label;
v = virtualinvoke v.<org.objectweb.asm.ConstantDynamic: int getSize()>();
if v != 2 goto label;
label:
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int minSize>;
v = v + 3;
v.<org.objectweb.asm.commons.CodeSizeEvaluator: int minSize> = v;
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int maxSize>;
v = v + 3;
v.<org.objectweb.asm.commons.CodeSizeEvaluator: int maxSize> = v;
goto label;
label:
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int minSize>;
v = v + 2;
v.<org.objectweb.asm.commons.CodeSizeEvaluator: int minSize> = v;
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int maxSize>;
v = v + 3;
v.<org.objectweb.asm.commons.CodeSizeEvaluator: int maxSize> = v;
label:
specialinvoke v.<org.objectweb.asm.MethodVisitor: void visitLdcInsn(java.lang.Object)>(v);
return;
}
public void visitIincInsn(int, int)
{
org.objectweb.asm.commons.CodeSizeEvaluator v;
int v, v, v, v, v, v, v, v, v, v, v;
v := @this: org.objectweb.asm.commons.CodeSizeEvaluator;
v := @parameter: int;
v := @parameter: int;
if v > 255 goto label;
if v > 127 goto label;
v = (int) -128;
if v >= v goto label;
label:
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int minSize>;
v = v + 6;
v.<org.objectweb.asm.commons.CodeSizeEvaluator: int minSize> = v;
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int maxSize>;
v = v + 6;
v.<org.objectweb.asm.commons.CodeSizeEvaluator: int maxSize> = v;
goto label;
label:
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int minSize>;
v = v + 3;
v.<org.objectweb.asm.commons.CodeSizeEvaluator: int minSize> = v;
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int maxSize>;
v = v + 3;
v.<org.objectweb.asm.commons.CodeSizeEvaluator: int maxSize> = v;
label:
specialinvoke v.<org.objectweb.asm.MethodVisitor: void visitIincInsn(int,int)>(v, v);
return;
}
public transient void visitTableSwitchInsn(int, int, org.objectweb.asm.Label, org.objectweb.asm.Label[])
{
org.objectweb.asm.Label v;
org.objectweb.asm.commons.CodeSizeEvaluator v;
int v, v, v, v, v, v, v, v, v, v, v, v;
org.objectweb.asm.Label[] v;
v := @this: org.objectweb.asm.commons.CodeSizeEvaluator;
v := @parameter: int;
v := @parameter: int;
v := @parameter: org.objectweb.asm.Label;
v := @parameter: org.objectweb.asm.Label[];
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int minSize>;
v = lengthof v;
v = v * 4;
v = 13 + v;
v = v + v;
v.<org.objectweb.asm.commons.CodeSizeEvaluator: int minSize> = v;
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int maxSize>;
v = lengthof v;
v = v * 4;
v = 16 + v;
v = v + v;
v.<org.objectweb.asm.commons.CodeSizeEvaluator: int maxSize> = v;
specialinvoke v.<org.objectweb.asm.MethodVisitor: void visitTableSwitchInsn(int,int,org.objectweb.asm.Label,org.objectweb.asm.Label[])>(v, v, v, v);
return;
}
public void visitLookupSwitchInsn(org.objectweb.asm.Label, int[], org.objectweb.asm.Label[])
{
org.objectweb.asm.Label v;
org.objectweb.asm.commons.CodeSizeEvaluator v;
int[] v;
int v, v, v, v, v, v, v, v, v, v;
org.objectweb.asm.Label[] v;
v := @this: org.objectweb.asm.commons.CodeSizeEvaluator;
v := @parameter: org.objectweb.asm.Label;
v := @parameter: int[];
v := @parameter: org.objectweb.asm.Label[];
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int minSize>;
v = lengthof v;
v = v * 8;
v = 9 + v;
v = v + v;
v.<org.objectweb.asm.commons.CodeSizeEvaluator: int minSize> = v;
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int maxSize>;
v = lengthof v;
v = v * 8;
v = 12 + v;
v = v + v;
v.<org.objectweb.asm.commons.CodeSizeEvaluator: int maxSize> = v;
specialinvoke v.<org.objectweb.asm.MethodVisitor: void visitLookupSwitchInsn(org.objectweb.asm.Label,int[],org.objectweb.asm.Label[])>(v, v, v);
return;
}
public void visitMultiANewArrayInsn(java.lang.String, int)
{
int v, v, v, v, v;
java.lang.String v;
org.objectweb.asm.commons.CodeSizeEvaluator v;
v := @this: org.objectweb.asm.commons.CodeSizeEvaluator;
v := @parameter: java.lang.String;
v := @parameter: int;
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int minSize>;
v = v + 4;
v.<org.objectweb.asm.commons.CodeSizeEvaluator: int minSize> = v;
v = v.<org.objectweb.asm.commons.CodeSizeEvaluator: int maxSize>;
v = v + 4;
v.<org.objectweb.asm.commons.CodeSizeEvaluator: int maxSize> = v;
specialinvoke v.<org.objectweb.asm.MethodVisitor: void visitMultiANewArrayInsn(java.lang.String,int)>(v, v);
return;
}
}