public class org.apache.activemq.util.BitArrayBin extends java.lang.Object implements java.io.Serializable
{
private static final long serialVersionUID;
private final java.util.LinkedList list;
private int maxNumberOfArrays;
private int firstIndex;
private long lastInOrderBit;
private long longFirstIndex;
public void <init>(int)
{
org.apache.activemq.util.BitArrayBin v;
int v, v, v, v, v, v, v, v, v;
java.util.LinkedList v, v;
v := @this: org.apache.activemq.util.BitArrayBin;
v := @parameter: int;
specialinvoke v.<java.lang.Object: void <init>()>();
v = (int) -1;
v.<org.apache.activemq.util.BitArrayBin: int firstIndex> = v;
v.<org.apache.activemq.util.BitArrayBin: long lastInOrderBit> = -1L;
v.<org.apache.activemq.util.BitArrayBin: long longFirstIndex> = -1L;
v = v + 1;
v = v / 64;
v = v + 1;
v.<org.apache.activemq.util.BitArrayBin: int maxNumberOfArrays> = v;
v = v.<org.apache.activemq.util.BitArrayBin: int maxNumberOfArrays>;
v = staticinvoke <java.lang.Math: int max(int,int)>(v, 1);
v.<org.apache.activemq.util.BitArrayBin: int maxNumberOfArrays> = v;
v = new java.util.LinkedList;
specialinvoke v.<java.util.LinkedList: void <init>()>();
v.<org.apache.activemq.util.BitArrayBin: java.util.LinkedList list> = v;
v = 0;
label:
v = v.<org.apache.activemq.util.BitArrayBin: int maxNumberOfArrays>;
if v >= v goto label;
v = v.<org.apache.activemq.util.BitArrayBin: java.util.LinkedList list>;
virtualinvoke v.<java.util.LinkedList: boolean add(java.lang.Object)>(null);
v = v + 1;
goto label;
label:
return;
}
public boolean setBit(long, boolean)
{
org.apache.activemq.util.BitArrayBin v;
int v;
long v;
org.apache.activemq.util.BitArray v;
boolean v, v;
v := @this: org.apache.activemq.util.BitArrayBin;
v := @parameter: long;
v := @parameter: boolean;
v = 0;
v = specialinvoke v.<org.apache.activemq.util.BitArrayBin: org.apache.activemq.util.BitArray getBitArray(long)>(v);
if v == null goto label;
v = specialinvoke v.<org.apache.activemq.util.BitArrayBin: int getOffset(long)>(v);
if v < 0 goto label;
v = virtualinvoke v.<org.apache.activemq.util.BitArray: boolean set(int,boolean)>(v, v);
label:
return v;
}
public boolean isInOrder(long)
{
long v, v, v, v;
org.apache.activemq.util.BitArrayBin v;
byte v, v;
boolean v, v;
v := @this: org.apache.activemq.util.BitArrayBin;
v := @parameter: long;
v = v.<org.apache.activemq.util.BitArrayBin: long lastInOrderBit>;
v = v cmp -1L;
if v != 0 goto label;
v = 1;
goto label;
label:
v = v.<org.apache.activemq.util.BitArrayBin: long lastInOrderBit>;
v = v + 1L;
v = v cmp v;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
label:
v.<org.apache.activemq.util.BitArrayBin: long lastInOrderBit> = v;
return v;
}
public boolean getBit(long)
{
long v, v;
org.apache.activemq.util.BitArray v;
org.apache.activemq.util.BitArrayBin v;
byte v;
int v;
boolean v, v, v;
v := @this: org.apache.activemq.util.BitArrayBin;
v := @parameter: long;
v = v.<org.apache.activemq.util.BitArrayBin: long longFirstIndex>;
v = v cmp v;
if v < 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
v = specialinvoke v.<org.apache.activemq.util.BitArrayBin: org.apache.activemq.util.BitArray getBitArray(long)>(v);
if v == null goto label;
v = specialinvoke v.<org.apache.activemq.util.BitArrayBin: int getOffset(long)>(v);
if v < 0 goto label;
v = virtualinvoke v.<org.apache.activemq.util.BitArray: boolean get(int)>(v);
return v;
label:
v = 1;
label:
return v;
}
private org.apache.activemq.util.BitArray getBitArray(long)
{
long v, v, v;
org.apache.activemq.util.BitArray v, v;
int v, v, v, v, v, v;
java.util.LinkedList v, v, v, v;
org.apache.activemq.util.BitArrayBin v;
java.lang.Object v;
v := @this: org.apache.activemq.util.BitArrayBin;
v := @parameter: long;
v = specialinvoke v.<org.apache.activemq.util.BitArrayBin: int getBin(long)>(v);
if v < 0 goto label;
v = v.<org.apache.activemq.util.BitArrayBin: int maxNumberOfArrays>;
if v < v goto label;
v = v.<org.apache.activemq.util.BitArrayBin: int maxNumberOfArrays>;
v = v - v;
v = v + 1;
label:
if v <= 0 goto label;
v = v.<org.apache.activemq.util.BitArrayBin: java.util.LinkedList list>;
virtualinvoke v.<java.util.LinkedList: java.lang.Object removeFirst()>();
v = v.<org.apache.activemq.util.BitArrayBin: long longFirstIndex>;
v = v + 64L;
v.<org.apache.activemq.util.BitArrayBin: long longFirstIndex> = v;
v = v.<org.apache.activemq.util.BitArrayBin: java.util.LinkedList list>;
v = new org.apache.activemq.util.BitArray;
specialinvoke v.<org.apache.activemq.util.BitArray: void <init>()>();
virtualinvoke v.<java.util.LinkedList: boolean add(java.lang.Object)>(v);
v = v - 1;
goto label;
label:
v = v.<org.apache.activemq.util.BitArrayBin: int maxNumberOfArrays>;
v = v - 1;
label:
v = v.<org.apache.activemq.util.BitArrayBin: java.util.LinkedList list>;
v = virtualinvoke v.<java.util.LinkedList: java.lang.Object get(int)>(v);
if v != null goto label;
v = new org.apache.activemq.util.BitArray;
specialinvoke v.<org.apache.activemq.util.BitArray: void <init>()>();
v = v;
v = v.<org.apache.activemq.util.BitArrayBin: java.util.LinkedList list>;
virtualinvoke v.<java.util.LinkedList: java.lang.Object set(int,java.lang.Object)>(v, v);
label:
return v;
}
private int getBin(long)
{
long v, v, v, v, v, v, v, v;
org.apache.activemq.util.BitArrayBin v;
byte v, v;
v := @this: org.apache.activemq.util.BitArrayBin;
v := @parameter: long;
v = v.<org.apache.activemq.util.BitArrayBin: long longFirstIndex>;
v = v cmp 0L;
if v >= 0 goto label;
v = v % 64L;
v = v - v;
v.<org.apache.activemq.util.BitArrayBin: long longFirstIndex> = v;
goto label;
label:
v = v.<org.apache.activemq.util.BitArrayBin: long longFirstIndex>;
v = v cmp 0L;
if v < 0 goto label;
v = v.<org.apache.activemq.util.BitArrayBin: long longFirstIndex>;
v = v - v;
v = v / 64L;
label:
return v;
}
private int getOffset(long)
{
long v, v, v, v, v;
org.apache.activemq.util.BitArrayBin v;
byte v;
int v, v;
v := @this: org.apache.activemq.util.BitArrayBin;
v := @parameter: long;
v = v.<org.apache.activemq.util.BitArrayBin: long longFirstIndex>;
v = v cmp 0L;
if v < 0 goto label;
v = v.<org.apache.activemq.util.BitArrayBin: long longFirstIndex>;
v = v - v;
v = specialinvoke v.<org.apache.activemq.util.BitArrayBin: int getBin(long)>(v);
v = 64 * v;
v = v - v;
label:
return v;
}
public long getLastSetIndex()
{
long v, v, v, v;
org.apache.activemq.util.BitArrayBin v;
byte v;
int v, v, v, v;
java.lang.Object v;
java.util.LinkedList v;
v := @this: org.apache.activemq.util.BitArrayBin;
v = -1L;
v = v.<org.apache.activemq.util.BitArrayBin: long longFirstIndex>;
v = v cmp 0L;
if v < 0 goto label;
v = v.<org.apache.activemq.util.BitArrayBin: long longFirstIndex>;
v = v.<org.apache.activemq.util.BitArrayBin: int maxNumberOfArrays>;
v = v - 1;
label:
if v < 0 goto label;
v = v.<org.apache.activemq.util.BitArrayBin: java.util.LinkedList list>;
v = virtualinvoke v.<java.util.LinkedList: java.lang.Object get(int)>(v);
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.util.BitArray: int length()>();
v = v - 1;
v = v + v;
v = v * 64L;
v = v + v;
goto label;
label:
v = v - 1;
goto label;
label:
return v;
}
}