public final class com.google.common.collect.MinMaxPriorityQueue extends java.util.AbstractQueue
{
private final com.google.common.collect.MinMaxPriorityQueue$Heap minHeap;
private final com.google.common.collect.MinMaxPriorityQueue$Heap maxHeap;
final int maximumSize;
private java.lang.Object[] queue;
private int size;
private int modCount;
private static final int EVEN_POWERS_OF_TWO;
private static final int ODD_POWERS_OF_TWO;
private static final int DEFAULT_CAPACITY;
public static com.google.common.collect.MinMaxPriorityQueue create()
{
com.google.common.collect.MinMaxPriorityQueue$Builder v;
com.google.common.collect.Ordering v;
com.google.common.collect.MinMaxPriorityQueue v;
v = new com.google.common.collect.MinMaxPriorityQueue$Builder;
v = staticinvoke <com.google.common.collect.Ordering: com.google.common.collect.Ordering natural()>();
specialinvoke v.<com.google.common.collect.MinMaxPriorityQueue$Builder: void <init>(java.util.Comparator)>(v);
v = virtualinvoke v.<com.google.common.collect.MinMaxPriorityQueue$Builder: com.google.common.collect.MinMaxPriorityQueue create()>();
return v;
}
public static com.google.common.collect.MinMaxPriorityQueue create(java.lang.Iterable)
{
com.google.common.collect.MinMaxPriorityQueue$Builder v;
com.google.common.collect.Ordering v;
java.lang.Iterable v;
com.google.common.collect.MinMaxPriorityQueue v;
v := @parameter: java.lang.Iterable;
v = new com.google.common.collect.MinMaxPriorityQueue$Builder;
v = staticinvoke <com.google.common.collect.Ordering: com.google.common.collect.Ordering natural()>();
specialinvoke v.<com.google.common.collect.MinMaxPriorityQueue$Builder: void <init>(java.util.Comparator)>(v);
v = virtualinvoke v.<com.google.common.collect.MinMaxPriorityQueue$Builder: com.google.common.collect.MinMaxPriorityQueue create(java.lang.Iterable)>(v);
return v;
}
public static com.google.common.collect.MinMaxPriorityQueue$Builder orderedBy(java.util.Comparator)
{
com.google.common.collect.MinMaxPriorityQueue$Builder v;
java.util.Comparator v;
v := @parameter: java.util.Comparator;
v = new com.google.common.collect.MinMaxPriorityQueue$Builder;
specialinvoke v.<com.google.common.collect.MinMaxPriorityQueue$Builder: void <init>(java.util.Comparator)>(v);
return v;
}
public static com.google.common.collect.MinMaxPriorityQueue$Builder expectedSize(int)
{
com.google.common.collect.MinMaxPriorityQueue$Builder v, v;
com.google.common.collect.Ordering v;
int v;
v := @parameter: int;
v = new com.google.common.collect.MinMaxPriorityQueue$Builder;
v = staticinvoke <com.google.common.collect.Ordering: com.google.common.collect.Ordering natural()>();
specialinvoke v.<com.google.common.collect.MinMaxPriorityQueue$Builder: void <init>(java.util.Comparator)>(v);
v = virtualinvoke v.<com.google.common.collect.MinMaxPriorityQueue$Builder: com.google.common.collect.MinMaxPriorityQueue$Builder expectedSize(int)>(v);
return v;
}
public static com.google.common.collect.MinMaxPriorityQueue$Builder maximumSize(int)
{
com.google.common.collect.MinMaxPriorityQueue$Builder v, v;
com.google.common.collect.Ordering v;
int v;
v := @parameter: int;
v = new com.google.common.collect.MinMaxPriorityQueue$Builder;
v = staticinvoke <com.google.common.collect.Ordering: com.google.common.collect.Ordering natural()>();
specialinvoke v.<com.google.common.collect.MinMaxPriorityQueue$Builder: void <init>(java.util.Comparator)>(v);
v = virtualinvoke v.<com.google.common.collect.MinMaxPriorityQueue$Builder: com.google.common.collect.MinMaxPriorityQueue$Builder maximumSize(int)>(v);
return v;
}
private void <init>(com.google.common.collect.MinMaxPriorityQueue$Builder, int)
{
java.lang.Object[] v;
com.google.common.collect.MinMaxPriorityQueue v;
com.google.common.collect.MinMaxPriorityQueue$Builder v;
com.google.common.collect.Ordering v, v;
int v, v;
com.google.common.collect.MinMaxPriorityQueue$Heap v, v, v, v, v, v;
v := @this: com.google.common.collect.MinMaxPriorityQueue;
v := @parameter: com.google.common.collect.MinMaxPriorityQueue$Builder;
v := @parameter: int;
specialinvoke v.<java.util.AbstractQueue: void <init>()>();
v = specialinvoke v.<com.google.common.collect.MinMaxPriorityQueue$Builder: com.google.common.collect.Ordering ordering()>();
v = new com.google.common.collect.MinMaxPriorityQueue$Heap;
specialinvoke v.<com.google.common.collect.MinMaxPriorityQueue$Heap: void <init>(com.google.common.collect.MinMaxPriorityQueue,com.google.common.collect.Ordering)>(v, v);
v.<com.google.common.collect.MinMaxPriorityQueue: com.google.common.collect.MinMaxPriorityQueue$Heap minHeap> = v;
v = new com.google.common.collect.MinMaxPriorityQueue$Heap;
v = virtualinvoke v.<com.google.common.collect.Ordering: com.google.common.collect.Ordering reverse()>();
specialinvoke v.<com.google.common.collect.MinMaxPriorityQueue$Heap: void <init>(com.google.common.collect.MinMaxPriorityQueue,com.google.common.collect.Ordering)>(v, v);
v.<com.google.common.collect.MinMaxPriorityQueue: com.google.common.collect.MinMaxPriorityQueue$Heap maxHeap> = v;
v = v.<com.google.common.collect.MinMaxPriorityQueue: com.google.common.collect.MinMaxPriorityQueue$Heap minHeap>;
v = v.<com.google.common.collect.MinMaxPriorityQueue: com.google.common.collect.MinMaxPriorityQueue$Heap maxHeap>;
v.<com.google.common.collect.MinMaxPriorityQueue$Heap: com.google.common.collect.MinMaxPriorityQueue$Heap otherHeap> = v;
v = v.<com.google.common.collect.MinMaxPriorityQueue: com.google.common.collect.MinMaxPriorityQueue$Heap maxHeap>;
v = v.<com.google.common.collect.MinMaxPriorityQueue: com.google.common.collect.MinMaxPriorityQueue$Heap minHeap>;
v.<com.google.common.collect.MinMaxPriorityQueue$Heap: com.google.common.collect.MinMaxPriorityQueue$Heap otherHeap> = v;
v = v.<com.google.common.collect.MinMaxPriorityQueue$Builder: int maximumSize>;
v.<com.google.common.collect.MinMaxPriorityQueue: int maximumSize> = v;
v = newarray (java.lang.Object)[v];
v.<com.google.common.collect.MinMaxPriorityQueue: java.lang.Object[] queue> = v;
return;
}
public int size()
{
int v;
com.google.common.collect.MinMaxPriorityQueue v;
v := @this: com.google.common.collect.MinMaxPriorityQueue;
v = v.<com.google.common.collect.MinMaxPriorityQueue: int size>;
return v;
}
public boolean add(java.lang.Object)
{
java.lang.Object v;
com.google.common.collect.MinMaxPriorityQueue v;
v := @this: com.google.common.collect.MinMaxPriorityQueue;
v := @parameter: java.lang.Object;
virtualinvoke v.<com.google.common.collect.MinMaxPriorityQueue: boolean offer(java.lang.Object)>(v);
return 1;
}
public boolean addAll(java.util.Collection)
{
java.util.Iterator v;
java.util.Collection v;
java.lang.Object v;
boolean v, v;
com.google.common.collect.MinMaxPriorityQueue v;
v := @this: com.google.common.collect.MinMaxPriorityQueue;
v := @parameter: java.util.Collection;
v = 0;
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
virtualinvoke v.<com.google.common.collect.MinMaxPriorityQueue: boolean offer(java.lang.Object)>(v);
v = 1;
goto label;
label:
return v;
}
public boolean offer(java.lang.Object)
{
com.google.common.collect.MinMaxPriorityQueue v;
int v, v, v, v, v, v;
java.lang.Object v, v;
com.google.common.collect.MinMaxPriorityQueue$Heap v;
boolean v;
v := @this: com.google.common.collect.MinMaxPriorityQueue;
v := @parameter: java.lang.Object;
staticinvoke <com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object)>(v);
v = v.<com.google.common.collect.MinMaxPriorityQueue: int modCount>;
v = v + 1;
v.<com.google.common.collect.MinMaxPriorityQueue: int modCount> = v;
v = v.<com.google.common.collect.MinMaxPriorityQueue: int size>;
v = v + 1;
v.<com.google.common.collect.MinMaxPriorityQueue: int size> = v;
specialinvoke v.<com.google.common.collect.MinMaxPriorityQueue: void growIfNeeded()>();
v = specialinvoke v.<com.google.common.collect.MinMaxPriorityQueue: com.google.common.collect.MinMaxPriorityQueue$Heap heapForIndex(int)>(v);
virtualinvoke v.<com.google.common.collect.MinMaxPriorityQueue$Heap: void bubbleUp(int,java.lang.Object)>(v, v);
v = v.<com.google.common.collect.MinMaxPriorityQueue: int size>;
v = v.<com.google.common.collect.MinMaxPriorityQueue: int maximumSize>;
if v <= v goto label;
v = virtualinvoke v.<com.google.common.collect.MinMaxPriorityQueue: java.lang.Object pollLast()>();
if v == v goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public java.lang.Object poll()
{
java.lang.Object v;
boolean v;
com.google.common.collect.MinMaxPriorityQueue v;
v := @this: com.google.common.collect.MinMaxPriorityQueue;
v = virtualinvoke v.<com.google.common.collect.MinMaxPriorityQueue: boolean isEmpty()>();
if v == 0 goto label;
v = null;
goto label;
label:
v = specialinvoke v.<com.google.common.collect.MinMaxPriorityQueue: java.lang.Object removeAndGet(int)>(0);
label:
return v;
}
java.lang.Object elementData(int)
{
java.lang.Object[] v;
int v;
java.lang.Object v, v;
com.google.common.collect.MinMaxPriorityQueue v;
v := @this: com.google.common.collect.MinMaxPriorityQueue;
v := @parameter: int;
v = v.<com.google.common.collect.MinMaxPriorityQueue: java.lang.Object[] queue>;
v = v[v];
v = staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object)>(v);
return v;
}
public java.lang.Object peek()
{
java.lang.Object v;
boolean v;
com.google.common.collect.MinMaxPriorityQueue v;
v := @this: com.google.common.collect.MinMaxPriorityQueue;
v = virtualinvoke v.<com.google.common.collect.MinMaxPriorityQueue: boolean isEmpty()>();
if v == 0 goto label;
v = null;
goto label;
label:
v = virtualinvoke v.<com.google.common.collect.MinMaxPriorityQueue: java.lang.Object elementData(int)>(0);
label:
return v;
}
private int getMaxElementIndex()
{
byte v;
int v, v;
com.google.common.collect.MinMaxPriorityQueue$Heap v;
com.google.common.collect.MinMaxPriorityQueue v;
v := @this: com.google.common.collect.MinMaxPriorityQueue;
v = v.<com.google.common.collect.MinMaxPriorityQueue: int size>;
lookupswitch(v)
{
case 1: goto label;
case 2: goto label;
default: goto label;
};
label:
return 0;
label:
return 1;
label:
v = v.<com.google.common.collect.MinMaxPriorityQueue: com.google.common.collect.MinMaxPriorityQueue$Heap maxHeap>;
v = virtualinvoke v.<com.google.common.collect.MinMaxPriorityQueue$Heap: int compareElements(int,int)>(1, 2);
if v > 0 goto label;
v = 1;
goto label;
label:
v = 2;
label:
return v;
}
public java.lang.Object pollFirst()
{
java.lang.Object v;
com.google.common.collect.MinMaxPriorityQueue v;
v := @this: com.google.common.collect.MinMaxPriorityQueue;
v = virtualinvoke v.<com.google.common.collect.MinMaxPriorityQueue: java.lang.Object poll()>();
return v;
}
public java.lang.Object removeFirst()
{
java.lang.Object v;
com.google.common.collect.MinMaxPriorityQueue v;
v := @this: com.google.common.collect.MinMaxPriorityQueue;
v = virtualinvoke v.<com.google.common.collect.MinMaxPriorityQueue: java.lang.Object remove()>();
return v;
}
public java.lang.Object peekFirst()
{
java.lang.Object v;
com.google.common.collect.MinMaxPriorityQueue v;
v := @this: com.google.common.collect.MinMaxPriorityQueue;
v = virtualinvoke v.<com.google.common.collect.MinMaxPriorityQueue: java.lang.Object peek()>();
return v;
}
public java.lang.Object pollLast()
{
int v;
java.lang.Object v;
boolean v;
com.google.common.collect.MinMaxPriorityQueue v;
v := @this: com.google.common.collect.MinMaxPriorityQueue;
v = virtualinvoke v.<com.google.common.collect.MinMaxPriorityQueue: boolean isEmpty()>();
if v == 0 goto label;
v = null;
goto label;
label:
v = specialinvoke v.<com.google.common.collect.MinMaxPriorityQueue: int getMaxElementIndex()>();
v = specialinvoke v.<com.google.common.collect.MinMaxPriorityQueue: java.lang.Object removeAndGet(int)>(v);
label:
return v;
}
public java.lang.Object removeLast()
{
int v;
java.lang.Object v;
java.util.NoSuchElementException v;
boolean v;
com.google.common.collect.MinMaxPriorityQueue v;
v := @this: com.google.common.collect.MinMaxPriorityQueue;
v = virtualinvoke v.<com.google.common.collect.MinMaxPriorityQueue: boolean isEmpty()>();
if v == 0 goto label;
v = new java.util.NoSuchElementException;
specialinvoke v.<java.util.NoSuchElementException: void <init>()>();
throw v;
label:
v = specialinvoke v.<com.google.common.collect.MinMaxPriorityQueue: int getMaxElementIndex()>();
v = specialinvoke v.<com.google.common.collect.MinMaxPriorityQueue: java.lang.Object removeAndGet(int)>(v);
return v;
}
public java.lang.Object peekLast()
{
int v;
java.lang.Object v;
boolean v;
com.google.common.collect.MinMaxPriorityQueue v;
v := @this: com.google.common.collect.MinMaxPriorityQueue;
v = virtualinvoke v.<com.google.common.collect.MinMaxPriorityQueue: boolean isEmpty()>();
if v == 0 goto label;
v = null;
goto label;
label:
v = specialinvoke v.<com.google.common.collect.MinMaxPriorityQueue: int getMaxElementIndex()>();
v = virtualinvoke v.<com.google.common.collect.MinMaxPriorityQueue: java.lang.Object elementData(int)>(v);
label:
return v;
}
com.google.common.collect.MinMaxPriorityQueue$MoveDesc removeAt(int)
{
java.lang.Object[] v, v, v;
com.google.common.collect.MinMaxPriorityQueue$MoveDesc v, v, v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v;
com.google.common.collect.MinMaxPriorityQueue v;
java.lang.Object v, v, v;
com.google.common.collect.MinMaxPriorityQueue$Heap v;
v := @this: com.google.common.collect.MinMaxPriorityQueue;
v := @parameter: int;
v = v.<com.google.common.collect.MinMaxPriorityQueue: int size>;
staticinvoke <com.google.common.base.Preconditions: int checkPositionIndex(int,int)>(v, v);
v = v.<com.google.common.collect.MinMaxPriorityQueue: int modCount>;
v = v + 1;
v.<com.google.common.collect.MinMaxPriorityQueue: int modCount> = v;
v = v.<com.google.common.collect.MinMaxPriorityQueue: int size>;
v = v - 1;
v.<com.google.common.collect.MinMaxPriorityQueue: int size> = v;
v = v.<com.google.common.collect.MinMaxPriorityQueue: int size>;
if v != v goto label;
v = v.<com.google.common.collect.MinMaxPriorityQueue: java.lang.Object[] queue>;
v = v.<com.google.common.collect.MinMaxPriorityQueue: int size>;
v[v] = null;
return null;
label:
v = v.<com.google.common.collect.MinMaxPriorityQueue: int size>;
v = virtualinvoke v.<com.google.common.collect.MinMaxPriorityQueue: java.lang.Object elementData(int)>(v);
v = v.<com.google.common.collect.MinMaxPriorityQueue: int size>;
v = specialinvoke v.<com.google.common.collect.MinMaxPriorityQueue: com.google.common.collect.MinMaxPriorityQueue$Heap heapForIndex(int)>(v);
v = virtualinvoke v.<com.google.common.collect.MinMaxPriorityQueue$Heap: int swapWithConceptuallyLastElement(java.lang.Object)>(v);
if v != v goto label;
v = v.<com.google.common.collect.MinMaxPriorityQueue: java.lang.Object[] queue>;
v = v.<com.google.common.collect.MinMaxPriorityQueue: int size>;
v[v] = null;
return null;
label:
v = v.<com.google.common.collect.MinMaxPriorityQueue: int size>;
v = virtualinvoke v.<com.google.common.collect.MinMaxPriorityQueue: java.lang.Object elementData(int)>(v);
v = v.<com.google.common.collect.MinMaxPriorityQueue: java.lang.Object[] queue>;
v = v.<com.google.common.collect.MinMaxPriorityQueue: int size>;
v[v] = null;
v = specialinvoke v.<com.google.common.collect.MinMaxPriorityQueue: com.google.common.collect.MinMaxPriorityQueue$MoveDesc fillHole(int,java.lang.Object)>(v, v);
if v >= v goto label;
if v != null goto label;
v = new com.google.common.collect.MinMaxPriorityQueue$MoveDesc;
specialinvoke v.<com.google.common.collect.MinMaxPriorityQueue$MoveDesc: void <init>(java.lang.Object,java.lang.Object)>(v, v);
return v;
label:
v = new com.google.common.collect.MinMaxPriorityQueue$MoveDesc;
v = v.<com.google.common.collect.MinMaxPriorityQueue$MoveDesc: java.lang.Object replaced>;
specialinvoke v.<com.google.common.collect.MinMaxPriorityQueue$MoveDesc: void <init>(java.lang.Object,java.lang.Object)>(v, v);
return v;
label:
return v;
}
private com.google.common.collect.MinMaxPriorityQueue$MoveDesc fillHole(int, java.lang.Object)
{
com.google.common.collect.MinMaxPriorityQueue v;
com.google.common.collect.MinMaxPriorityQueue$MoveDesc v, v;
int v, v, v;
java.lang.Object v, v;
com.google.common.collect.MinMaxPriorityQueue$Heap v;
v := @this: com.google.common.collect.MinMaxPriorityQueue;
v := @parameter: int;
v := @parameter: java.lang.Object;
v = specialinvoke v.<com.google.common.collect.MinMaxPriorityQueue: com.google.common.collect.MinMaxPriorityQueue$Heap heapForIndex(int)>(v);
v = virtualinvoke v.<com.google.common.collect.MinMaxPriorityQueue$Heap: int fillHoleAt(int)>(v);
v = virtualinvoke v.<com.google.common.collect.MinMaxPriorityQueue$Heap: int bubbleUpAlternatingLevels(int,java.lang.Object)>(v, v);
if v != v goto label;
v = virtualinvoke v.<com.google.common.collect.MinMaxPriorityQueue$Heap: com.google.common.collect.MinMaxPriorityQueue$MoveDesc tryCrossOverAndBubbleUp(int,int,java.lang.Object)>(v, v, v);
return v;
label:
if v >= v goto label;
v = new com.google.common.collect.MinMaxPriorityQueue$MoveDesc;
v = virtualinvoke v.<com.google.common.collect.MinMaxPriorityQueue: java.lang.Object elementData(int)>(v);
specialinvoke v.<com.google.common.collect.MinMaxPriorityQueue$MoveDesc: void <init>(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
v = null;
label:
return v;
}
private java.lang.Object removeAndGet(int)
{
int v;
java.lang.Object v;
com.google.common.collect.MinMaxPriorityQueue v;
v := @this: com.google.common.collect.MinMaxPriorityQueue;
v := @parameter: int;
v = virtualinvoke v.<com.google.common.collect.MinMaxPriorityQueue: java.lang.Object elementData(int)>(v);
virtualinvoke v.<com.google.common.collect.MinMaxPriorityQueue: com.google.common.collect.MinMaxPriorityQueue$MoveDesc removeAt(int)>(v);
return v;
}
private com.google.common.collect.MinMaxPriorityQueue$Heap heapForIndex(int)
{
int v;
com.google.common.collect.MinMaxPriorityQueue$Heap v;
boolean v;
com.google.common.collect.MinMaxPriorityQueue v;
v := @this: com.google.common.collect.MinMaxPriorityQueue;
v := @parameter: int;
v = staticinvoke <com.google.common.collect.MinMaxPriorityQueue: boolean isEvenLevel(int)>(v);
if v == 0 goto label;
v = v.<com.google.common.collect.MinMaxPriorityQueue: com.google.common.collect.MinMaxPriorityQueue$Heap minHeap>;
goto label;
label:
v = v.<com.google.common.collect.MinMaxPriorityQueue: com.google.common.collect.MinMaxPriorityQueue$Heap maxHeap>;
label:
return v;
}
static boolean isEvenLevel(int)
{
int v, v, v, v, v, v, v, v;
boolean v, v;
v := @parameter: int;
v = v + 1;
v = (int) -1;
v = v ^ v;
v = (int) -1;
v = v ^ v;
if v <= 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <com.google.common.base.Preconditions: void checkState(boolean,java.lang.Object)>(v, "negative index");
v = v & 1431655765;
v = v & -1431655766;
if v <= v goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
boolean isIntact()
{
int v, v;
com.google.common.collect.MinMaxPriorityQueue$Heap v;
boolean v;
com.google.common.collect.MinMaxPriorityQueue v;
v := @this: com.google.common.collect.MinMaxPriorityQueue;
v = 1;
label:
v = v.<com.google.common.collect.MinMaxPriorityQueue: int size>;
if v >= v goto label;
v = specialinvoke v.<com.google.common.collect.MinMaxPriorityQueue: com.google.common.collect.MinMaxPriorityQueue$Heap heapForIndex(int)>(v);
v = specialinvoke v.<com.google.common.collect.MinMaxPriorityQueue$Heap: boolean verifyIndex(int)>(v);
if v != 0 goto label;
return 0;
label:
v = v + 1;
goto label;
label:
return 1;
}
public java.util.Iterator iterator()
{
com.google.common.collect.MinMaxPriorityQueue$QueueIterator v;
com.google.common.collect.MinMaxPriorityQueue v;
v := @this: com.google.common.collect.MinMaxPriorityQueue;
v = new com.google.common.collect.MinMaxPriorityQueue$QueueIterator;
specialinvoke v.<com.google.common.collect.MinMaxPriorityQueue$QueueIterator: void <init>(com.google.common.collect.MinMaxPriorityQueue)>(v);
return v;
}
public void clear()
{
java.lang.Object[] v;
int v, v;
com.google.common.collect.MinMaxPriorityQueue v;
v := @this: com.google.common.collect.MinMaxPriorityQueue;
v = 0;
label:
v = v.<com.google.common.collect.MinMaxPriorityQueue: int size>;
if v >= v goto label;
v = v.<com.google.common.collect.MinMaxPriorityQueue: java.lang.Object[] queue>;
v[v] = null;
v = v + 1;
goto label;
label:
v.<com.google.common.collect.MinMaxPriorityQueue: int size> = 0;
return;
}
public java.lang.Object[] toArray()
{
java.lang.Object[] v, v;
int v, v;
com.google.common.collect.MinMaxPriorityQueue v;
v := @this: com.google.common.collect.MinMaxPriorityQueue;
v = v.<com.google.common.collect.MinMaxPriorityQueue: int size>;
v = newarray (java.lang.Object)[v];
v = v.<com.google.common.collect.MinMaxPriorityQueue: java.lang.Object[] queue>;
v = v.<com.google.common.collect.MinMaxPriorityQueue: int size>;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, 0, v, 0, v);
return v;
}
public java.util.Comparator comparator()
{
com.google.common.collect.MinMaxPriorityQueue$Heap v;
com.google.common.collect.Ordering v;
com.google.common.collect.MinMaxPriorityQueue v;
v := @this: com.google.common.collect.MinMaxPriorityQueue;
v = v.<com.google.common.collect.MinMaxPriorityQueue: com.google.common.collect.MinMaxPriorityQueue$Heap minHeap>;
v = v.<com.google.common.collect.MinMaxPriorityQueue$Heap: com.google.common.collect.Ordering ordering>;
return v;
}
int capacity()
{
int v;
java.lang.Object[] v;
com.google.common.collect.MinMaxPriorityQueue v;
v := @this: com.google.common.collect.MinMaxPriorityQueue;
v = v.<com.google.common.collect.MinMaxPriorityQueue: java.lang.Object[] queue>;
v = lengthof v;
return v;
}
static int initialQueueSize(int, int, java.lang.Iterable)
{
java.lang.Iterable v;
int v, v, v, v, v, v, v;
boolean v;
v := @parameter: int;
v := @parameter: int;
v := @parameter: java.lang.Iterable;
v = (int) -1;
if v != v goto label;
v = 11;
goto label;
label:
v = v;
label:
v = v;
v = v instanceof java.util.Collection;
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Collection: int size()>();
v = staticinvoke <java.lang.Math: int max(int,int)>(v, v);
label:
v = staticinvoke <com.google.common.collect.MinMaxPriorityQueue: int capAtMaximumSize(int,int)>(v, v);
return v;
}
private void growIfNeeded()
{
java.lang.Object[] v, v, v, v;
com.google.common.collect.MinMaxPriorityQueue v;
int v, v, v, v;
v := @this: com.google.common.collect.MinMaxPriorityQueue;
v = v.<com.google.common.collect.MinMaxPriorityQueue: int size>;
v = v.<com.google.common.collect.MinMaxPriorityQueue: java.lang.Object[] queue>;
v = lengthof v;
if v <= v goto label;
v = specialinvoke v.<com.google.common.collect.MinMaxPriorityQueue: int calculateNewCapacity()>();
v = newarray (java.lang.Object)[v];
v = v.<com.google.common.collect.MinMaxPriorityQueue: java.lang.Object[] queue>;
v = v.<com.google.common.collect.MinMaxPriorityQueue: java.lang.Object[] queue>;
v = lengthof v;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, 0, v, 0, v);
v.<com.google.common.collect.MinMaxPriorityQueue: java.lang.Object[] queue> = v;
label:
return;
}
private int calculateNewCapacity()
{
java.lang.Object[] v;
com.google.common.collect.MinMaxPriorityQueue v;
int v, v, v, v, v, v;
v := @this: com.google.common.collect.MinMaxPriorityQueue;
v = v.<com.google.common.collect.MinMaxPriorityQueue: java.lang.Object[] queue>;
v = lengthof v;
if v >= 64 goto label;
v = v + 1;
v = v * 2;
goto label;
label:
v = v / 2;
v = staticinvoke <com.google.common.math.IntMath: int checkedMultiply(int,int)>(v, 3);
label:
v = v.<com.google.common.collect.MinMaxPriorityQueue: int maximumSize>;
v = staticinvoke <com.google.common.collect.MinMaxPriorityQueue: int capAtMaximumSize(int,int)>(v, v);
return v;
}
private static int capAtMaximumSize(int, int)
{
int v, v, v, v, v;
v := @parameter: int;
v := @parameter: int;
v = v - 1;
v = staticinvoke <java.lang.Math: int min(int,int)>(v, v);
v = v + 1;
return v;
}
}