public final class com.google.common.collect.MinMaxPriorityQueue<E> extends java.util.AbstractQueue<E>
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.google.common.collect.MinMaxPriorityQueue
super_class: java.util.AbstractQueue
{
private final com.google.common.collect.MinMaxPriorityQueue<E>.Heap minHeap;
descriptor: Lcom/google/common/collect/MinMaxPriorityQueue$Heap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lcom/google/common/collect/MinMaxPriorityQueue<TE;>.Heap;
private final com.google.common.collect.MinMaxPriorityQueue<E>.Heap maxHeap;
descriptor: Lcom/google/common/collect/MinMaxPriorityQueue$Heap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lcom/google/common/collect/MinMaxPriorityQueue<TE;>.Heap;
final int maximumSize;
descriptor: I
flags: (0x0010) ACC_FINAL
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
private java.lang.Object[] queue;
descriptor: [Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
private int size;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int modCount;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private static final int EVEN_POWERS_OF_TWO;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1431655765
private static final int ODD_POWERS_OF_TWO;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -1431655766
private static final int DEFAULT_CAPACITY;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 11
public static <E extends java.lang.Comparable<E>> com.google.common.collect.MinMaxPriorityQueue<E> create();
descriptor: ()Lcom/google/common/collect/MinMaxPriorityQueue;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: new com.google.common.collect.MinMaxPriorityQueue$Builder
dup
invokestatic com.google.common.collect.Ordering.natural:()Lcom/google/common/collect/Ordering;
invokespecial com.google.common.collect.MinMaxPriorityQueue$Builder.<init>:(Ljava/util/Comparator;)V
invokevirtual com.google.common.collect.MinMaxPriorityQueue$Builder.create:()Lcom/google/common/collect/MinMaxPriorityQueue;
areturn
LocalVariableTable:
Start End Slot Name Signature
Signature: <E::Ljava/lang/Comparable<TE;>;>()Lcom/google/common/collect/MinMaxPriorityQueue<TE;>;
public static <E extends java.lang.Comparable<E>> com.google.common.collect.MinMaxPriorityQueue<E> create(java.lang.Iterable<? extends E>);
descriptor: (Ljava/lang/Iterable;)Lcom/google/common/collect/MinMaxPriorityQueue;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new com.google.common.collect.MinMaxPriorityQueue$Builder
dup
invokestatic com.google.common.collect.Ordering.natural:()Lcom/google/common/collect/Ordering;
invokespecial com.google.common.collect.MinMaxPriorityQueue$Builder.<init>:(Ljava/util/Comparator;)V
aload 0
invokevirtual com.google.common.collect.MinMaxPriorityQueue$Builder.create:(Ljava/lang/Iterable;)Lcom/google/common/collect/MinMaxPriorityQueue;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 initialContents Ljava/lang/Iterable<+TE;>;
Signature: <E::Ljava/lang/Comparable<TE;>;>(Ljava/lang/Iterable<+TE;>;)Lcom/google/common/collect/MinMaxPriorityQueue<TE;>;
MethodParameters:
Name Flags
initialContents
public static <B> com.google.common.collect.MinMaxPriorityQueue$Builder<B> orderedBy(java.util.Comparator<B>);
descriptor: (Ljava/util/Comparator;)Lcom/google/common/collect/MinMaxPriorityQueue$Builder;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new com.google.common.collect.MinMaxPriorityQueue$Builder
dup
aload 0
invokespecial com.google.common.collect.MinMaxPriorityQueue$Builder.<init>:(Ljava/util/Comparator;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 comparator Ljava/util/Comparator<TB;>;
Signature: <B:Ljava/lang/Object;>(Ljava/util/Comparator<TB;>;)Lcom/google/common/collect/MinMaxPriorityQueue$Builder<TB;>;
MethodParameters:
Name Flags
comparator
public static com.google.common.collect.MinMaxPriorityQueue$Builder<java.lang.Comparable> expectedSize(int);
descriptor: (I)Lcom/google/common/collect/MinMaxPriorityQueue$Builder;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new com.google.common.collect.MinMaxPriorityQueue$Builder
dup
invokestatic com.google.common.collect.Ordering.natural:()Lcom/google/common/collect/Ordering;
invokespecial com.google.common.collect.MinMaxPriorityQueue$Builder.<init>:(Ljava/util/Comparator;)V
iload 0
invokevirtual com.google.common.collect.MinMaxPriorityQueue$Builder.expectedSize:(I)Lcom/google/common/collect/MinMaxPriorityQueue$Builder;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 expectedSize I
Signature: (I)Lcom/google/common/collect/MinMaxPriorityQueue$Builder<Ljava/lang/Comparable;>;
MethodParameters:
Name Flags
expectedSize
public static com.google.common.collect.MinMaxPriorityQueue$Builder<java.lang.Comparable> maximumSize(int);
descriptor: (I)Lcom/google/common/collect/MinMaxPriorityQueue$Builder;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new com.google.common.collect.MinMaxPriorityQueue$Builder
dup
invokestatic com.google.common.collect.Ordering.natural:()Lcom/google/common/collect/Ordering;
invokespecial com.google.common.collect.MinMaxPriorityQueue$Builder.<init>:(Ljava/util/Comparator;)V
iload 0
invokevirtual com.google.common.collect.MinMaxPriorityQueue$Builder.maximumSize:(I)Lcom/google/common/collect/MinMaxPriorityQueue$Builder;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 maximumSize I
Signature: (I)Lcom/google/common/collect/MinMaxPriorityQueue$Builder<Ljava/lang/Comparable;>;
MethodParameters:
Name Flags
maximumSize
private void <init>(com.google.common.collect.MinMaxPriorityQueue$Builder<? super E>, );
descriptor: (Lcom/google/common/collect/MinMaxPriorityQueue$Builder;I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.util.AbstractQueue.<init>:()V
1: aload 1
invokevirtual com.google.common.collect.MinMaxPriorityQueue$Builder.ordering:()Lcom/google/common/collect/Ordering;
astore 3
start local 3 2: aload 0
new com.google.common.collect.MinMaxPriorityQueue$Heap
dup
aload 0
aload 3
invokespecial com.google.common.collect.MinMaxPriorityQueue$Heap.<init>:(Lcom/google/common/collect/MinMaxPriorityQueue;Lcom/google/common/collect/Ordering;)V
putfield com.google.common.collect.MinMaxPriorityQueue.minHeap:Lcom/google/common/collect/MinMaxPriorityQueue$Heap;
3: aload 0
new com.google.common.collect.MinMaxPriorityQueue$Heap
dup
aload 0
aload 3
invokevirtual com.google.common.collect.Ordering.reverse:()Lcom/google/common/collect/Ordering;
invokespecial com.google.common.collect.MinMaxPriorityQueue$Heap.<init>:(Lcom/google/common/collect/MinMaxPriorityQueue;Lcom/google/common/collect/Ordering;)V
putfield com.google.common.collect.MinMaxPriorityQueue.maxHeap:Lcom/google/common/collect/MinMaxPriorityQueue$Heap;
4: aload 0
getfield com.google.common.collect.MinMaxPriorityQueue.minHeap:Lcom/google/common/collect/MinMaxPriorityQueue$Heap;
aload 0
getfield com.google.common.collect.MinMaxPriorityQueue.maxHeap:Lcom/google/common/collect/MinMaxPriorityQueue$Heap;
putfield com.google.common.collect.MinMaxPriorityQueue$Heap.otherHeap:Lcom/google/common/collect/MinMaxPriorityQueue$Heap;
5: aload 0
getfield com.google.common.collect.MinMaxPriorityQueue.maxHeap:Lcom/google/common/collect/MinMaxPriorityQueue$Heap;
aload 0
getfield com.google.common.collect.MinMaxPriorityQueue.minHeap:Lcom/google/common/collect/MinMaxPriorityQueue$Heap;
putfield com.google.common.collect.MinMaxPriorityQueue$Heap.otherHeap:Lcom/google/common/collect/MinMaxPriorityQueue$Heap;
6: aload 0
aload 1
getfield com.google.common.collect.MinMaxPriorityQueue$Builder.maximumSize:I
putfield com.google.common.collect.MinMaxPriorityQueue.maximumSize:I
7: aload 0
iload 2
anewarray java.lang.Object
putfield com.google.common.collect.MinMaxPriorityQueue.queue:[Ljava/lang/Object;
8: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/google/common/collect/MinMaxPriorityQueue<TE;>;
0 9 1 builder Lcom/google/common/collect/MinMaxPriorityQueue$Builder<-TE;>;
0 9 2 queueSize I
2 9 3 ordering Lcom/google/common/collect/Ordering<TE;>;
Signature: (Lcom/google/common/collect/MinMaxPriorityQueue$Builder<-TE;>;I)V
MethodParameters:
Name Flags
builder
queueSize
public int size();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.collect.MinMaxPriorityQueue.size:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/collect/MinMaxPriorityQueue<TE;>;
public boolean add();
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.google.common.collect.MinMaxPriorityQueue.offer:(Ljava/lang/Object;)Z
pop
1: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/google/common/collect/MinMaxPriorityQueue<TE;>;
0 2 1 element TE;
Signature: (TE;)Z
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.CanIgnoreReturnValue()
MethodParameters:
Name Flags
element
public boolean addAll(java.util.Collection<? extends E>);
descriptor: (Ljava/util/Collection;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: aload 1
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 4
goto 5
StackMap locals: com.google.common.collect.MinMaxPriorityQueue java.util.Collection int top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Object
astore 3
start local 3 3: aload 0
aload 3
invokevirtual com.google.common.collect.MinMaxPriorityQueue.offer:(Ljava/lang/Object;)Z
pop
4: iconst_1
istore 2
end local 3 5: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
6: iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/google/common/collect/MinMaxPriorityQueue<TE;>;
0 7 1 newElements Ljava/util/Collection<+TE;>;
1 7 2 modified Z
3 5 3 element TE;
Signature: (Ljava/util/Collection<+TE;>;)Z
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.CanIgnoreReturnValue()
MethodParameters:
Name Flags
newElements
public boolean offer();
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
dup
getfield com.google.common.collect.MinMaxPriorityQueue.modCount:I
iconst_1
iadd
putfield com.google.common.collect.MinMaxPriorityQueue.modCount:I
2: aload 0
dup
getfield com.google.common.collect.MinMaxPriorityQueue.size:I
dup_x1
iconst_1
iadd
putfield com.google.common.collect.MinMaxPriorityQueue.size:I
istore 2
start local 2 3: aload 0
invokevirtual com.google.common.collect.MinMaxPriorityQueue.growIfNeeded:()V
4: aload 0
iload 2
invokevirtual com.google.common.collect.MinMaxPriorityQueue.heapForIndex:(I)Lcom/google/common/collect/MinMaxPriorityQueue$Heap;
iload 2
aload 1
invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.bubbleUp:(ILjava/lang/Object;)V
5: aload 0
getfield com.google.common.collect.MinMaxPriorityQueue.size:I
aload 0
getfield com.google.common.collect.MinMaxPriorityQueue.maximumSize:I
if_icmple 6
aload 0
invokevirtual com.google.common.collect.MinMaxPriorityQueue.pollLast:()Ljava/lang/Object;
aload 1
if_acmpne 6
iconst_0
ireturn
StackMap locals: int
StackMap stack:
6: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/google/common/collect/MinMaxPriorityQueue<TE;>;
0 7 1 element TE;
3 7 2 insertIndex I
Signature: (TE;)Z
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.CanIgnoreReturnValue()
MethodParameters:
Name Flags
element
public E poll();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.google.common.collect.MinMaxPriorityQueue.isEmpty:()Z
ifeq 1
aconst_null
goto 2
StackMap locals:
StackMap stack:
1: aload 0
iconst_0
invokevirtual com.google.common.collect.MinMaxPriorityQueue.removeAndGet:(I)Ljava/lang/Object;
StackMap locals:
StackMap stack: java.lang.Object
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/google/common/collect/MinMaxPriorityQueue<TE;>;
Signature: ()TE;
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.CanIgnoreReturnValue()
E elementData();
descriptor: (I)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.google.common.collect.MinMaxPriorityQueue.queue:[Ljava/lang/Object;
iload 1
aaload
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/collect/MinMaxPriorityQueue<TE;>;
0 1 1 index I
Signature: (I)TE;
MethodParameters:
Name Flags
index
public E peek();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.google.common.collect.MinMaxPriorityQueue.isEmpty:()Z
ifeq 1
aconst_null
goto 2
StackMap locals:
StackMap stack:
1: aload 0
iconst_0
invokevirtual com.google.common.collect.MinMaxPriorityQueue.elementData:(I)Ljava/lang/Object;
StackMap locals:
StackMap stack: java.lang.Object
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/google/common/collect/MinMaxPriorityQueue<TE;>;
Signature: ()TE;
private int getMaxElementIndex();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.collect.MinMaxPriorityQueue.size:I
tableswitch { // 1 - 2
1: 1
2: 2
default: 3
}
1: StackMap locals:
StackMap stack:
iconst_0
ireturn
2: StackMap locals:
StackMap stack:
iconst_1
ireturn
3: StackMap locals:
StackMap stack:
aload 0
getfield com.google.common.collect.MinMaxPriorityQueue.maxHeap:Lcom/google/common/collect/MinMaxPriorityQueue$Heap;
iconst_1
iconst_2
invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.compareElements:(II)I
ifgt 4
iconst_1
goto 5
StackMap locals:
StackMap stack:
4: iconst_2
StackMap locals:
StackMap stack: int
5: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/google/common/collect/MinMaxPriorityQueue<TE;>;
public E pollFirst();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.google.common.collect.MinMaxPriorityQueue.poll:()Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/collect/MinMaxPriorityQueue<TE;>;
Signature: ()TE;
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.CanIgnoreReturnValue()
public E removeFirst();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.google.common.collect.MinMaxPriorityQueue.remove:()Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/collect/MinMaxPriorityQueue<TE;>;
Signature: ()TE;
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.CanIgnoreReturnValue()
public E peekFirst();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.google.common.collect.MinMaxPriorityQueue.peek:()Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/collect/MinMaxPriorityQueue<TE;>;
Signature: ()TE;
public E pollLast();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.google.common.collect.MinMaxPriorityQueue.isEmpty:()Z
ifeq 1
aconst_null
goto 2
StackMap locals:
StackMap stack:
1: aload 0
aload 0
invokevirtual com.google.common.collect.MinMaxPriorityQueue.getMaxElementIndex:()I
invokevirtual com.google.common.collect.MinMaxPriorityQueue.removeAndGet:(I)Ljava/lang/Object;
StackMap locals:
StackMap stack: java.lang.Object
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/google/common/collect/MinMaxPriorityQueue<TE;>;
Signature: ()TE;
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.CanIgnoreReturnValue()
public E removeLast();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.google.common.collect.MinMaxPriorityQueue.isEmpty:()Z
ifeq 2
1: new java.util.NoSuchElementException
dup
invokespecial java.util.NoSuchElementException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 0
invokevirtual com.google.common.collect.MinMaxPriorityQueue.getMaxElementIndex:()I
invokevirtual com.google.common.collect.MinMaxPriorityQueue.removeAndGet:(I)Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/google/common/collect/MinMaxPriorityQueue<TE;>;
Signature: ()TE;
RuntimeInvisibleAnnotations:
com.google.errorprone.annotations.CanIgnoreReturnValue()
public E peekLast();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.google.common.collect.MinMaxPriorityQueue.isEmpty:()Z
ifeq 1
aconst_null
goto 2
StackMap locals:
StackMap stack:
1: aload 0
aload 0
invokevirtual com.google.common.collect.MinMaxPriorityQueue.getMaxElementIndex:()I
invokevirtual com.google.common.collect.MinMaxPriorityQueue.elementData:(I)Ljava/lang/Object;
StackMap locals:
StackMap stack: java.lang.Object
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/google/common/collect/MinMaxPriorityQueue<TE;>;
Signature: ()TE;
com.google.common.collect.MinMaxPriorityQueue$MoveDesc<E> removeAt(int);
descriptor: (I)Lcom/google/common/collect/MinMaxPriorityQueue$MoveDesc;
flags: (0x0000)
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: iload 1
aload 0
getfield com.google.common.collect.MinMaxPriorityQueue.size:I
invokestatic com.google.common.base.Preconditions.checkPositionIndex:(II)I
pop
1: aload 0
dup
getfield com.google.common.collect.MinMaxPriorityQueue.modCount:I
iconst_1
iadd
putfield com.google.common.collect.MinMaxPriorityQueue.modCount:I
2: aload 0
dup
getfield com.google.common.collect.MinMaxPriorityQueue.size:I
iconst_1
isub
putfield com.google.common.collect.MinMaxPriorityQueue.size:I
3: aload 0
getfield com.google.common.collect.MinMaxPriorityQueue.size:I
iload 1
if_icmpne 6
4: aload 0
getfield com.google.common.collect.MinMaxPriorityQueue.queue:[Ljava/lang/Object;
aload 0
getfield com.google.common.collect.MinMaxPriorityQueue.size:I
aconst_null
aastore
5: aconst_null
areturn
6: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield com.google.common.collect.MinMaxPriorityQueue.size:I
invokevirtual com.google.common.collect.MinMaxPriorityQueue.elementData:(I)Ljava/lang/Object;
astore 2
start local 2 7: aload 0
aload 0
getfield com.google.common.collect.MinMaxPriorityQueue.size:I
invokevirtual com.google.common.collect.MinMaxPriorityQueue.heapForIndex:(I)Lcom/google/common/collect/MinMaxPriorityQueue$Heap;
aload 2
invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.swapWithConceptuallyLastElement:(Ljava/lang/Object;)I
istore 3
start local 3 8: iload 3
iload 1
if_icmpne 11
9: aload 0
getfield com.google.common.collect.MinMaxPriorityQueue.queue:[Ljava/lang/Object;
aload 0
getfield com.google.common.collect.MinMaxPriorityQueue.size:I
aconst_null
aastore
10: aconst_null
areturn
11: StackMap locals: java.lang.Object int
StackMap stack:
aload 0
aload 0
getfield com.google.common.collect.MinMaxPriorityQueue.size:I
invokevirtual com.google.common.collect.MinMaxPriorityQueue.elementData:(I)Ljava/lang/Object;
astore 4
start local 4 12: aload 0
getfield com.google.common.collect.MinMaxPriorityQueue.queue:[Ljava/lang/Object;
aload 0
getfield com.google.common.collect.MinMaxPriorityQueue.size:I
aconst_null
aastore
13: aload 0
iload 1
aload 4
invokevirtual com.google.common.collect.MinMaxPriorityQueue.fillHole:(ILjava/lang/Object;)Lcom/google/common/collect/MinMaxPriorityQueue$MoveDesc;
astore 5
start local 5 14: iload 3
iload 1
if_icmpge 18
15: aload 5
ifnonnull 17
16: new com.google.common.collect.MinMaxPriorityQueue$MoveDesc
dup
aload 2
aload 4
invokespecial com.google.common.collect.MinMaxPriorityQueue$MoveDesc.<init>:(Ljava/lang/Object;Ljava/lang/Object;)V
areturn
17: StackMap locals: java.lang.Object com.google.common.collect.MinMaxPriorityQueue$MoveDesc
StackMap stack:
new com.google.common.collect.MinMaxPriorityQueue$MoveDesc
dup
aload 2
aload 5
getfield com.google.common.collect.MinMaxPriorityQueue$MoveDesc.replaced:Ljava/lang/Object;
invokespecial com.google.common.collect.MinMaxPriorityQueue$MoveDesc.<init>:(Ljava/lang/Object;Ljava/lang/Object;)V
areturn
18: StackMap locals:
StackMap stack:
aload 5
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/google/common/collect/MinMaxPriorityQueue<TE;>;
0 19 1 index I
7 19 2 actualLastElement TE;
8 19 3 lastElementAt I
12 19 4 toTrickle TE;
14 19 5 changes Lcom/google/common/collect/MinMaxPriorityQueue$MoveDesc<TE;>;
Signature: (I)Lcom/google/common/collect/MinMaxPriorityQueue$MoveDesc<TE;>;
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
com.google.errorprone.annotations.CanIgnoreReturnValue()
RuntimeInvisibleTypeAnnotations:
METHOD_RETURN
com.google.common.annotations.VisibleForTesting()
MethodParameters:
Name Flags
index
private com.google.common.collect.MinMaxPriorityQueue$MoveDesc<E> fillHole(int, E);
descriptor: (ILjava/lang/Object;)Lcom/google/common/collect/MinMaxPriorityQueue$MoveDesc;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
invokevirtual com.google.common.collect.MinMaxPriorityQueue.heapForIndex:(I)Lcom/google/common/collect/MinMaxPriorityQueue$Heap;
astore 3
start local 3 1: aload 3
iload 1
invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.fillHoleAt:(I)I
istore 4
start local 4 2: aload 3
iload 4
aload 2
invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.bubbleUpAlternatingLevels:(ILjava/lang/Object;)I
istore 5
start local 5 3: iload 5
iload 4
if_icmpne 5
4: aload 3
iload 1
iload 4
aload 2
invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.tryCrossOverAndBubbleUp:(IILjava/lang/Object;)Lcom/google/common/collect/MinMaxPriorityQueue$MoveDesc;
areturn
5: StackMap locals: com.google.common.collect.MinMaxPriorityQueue$Heap int int
StackMap stack:
iload 5
iload 1
if_icmpge 6
new com.google.common.collect.MinMaxPriorityQueue$MoveDesc
dup
aload 2
aload 0
iload 1
invokevirtual com.google.common.collect.MinMaxPriorityQueue.elementData:(I)Ljava/lang/Object;
invokespecial com.google.common.collect.MinMaxPriorityQueue$MoveDesc.<init>:(Ljava/lang/Object;Ljava/lang/Object;)V
goto 7
StackMap locals:
StackMap stack:
6: aconst_null
StackMap locals:
StackMap stack: com.google.common.collect.MinMaxPriorityQueue$MoveDesc
7: areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/google/common/collect/MinMaxPriorityQueue<TE;>;
0 8 1 index I
0 8 2 toTrickle TE;
1 8 3 heap Lcom/google/common/collect/MinMaxPriorityQueue<TE;>.Heap;
2 8 4 vacated I
3 8 5 bubbledTo I
Signature: (ITE;)Lcom/google/common/collect/MinMaxPriorityQueue$MoveDesc<TE;>;
MethodParameters:
Name Flags
index
toTrickle
private E removeAndGet();
descriptor: (I)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual com.google.common.collect.MinMaxPriorityQueue.elementData:(I)Ljava/lang/Object;
astore 2
start local 2 1: aload 0
iload 1
invokevirtual com.google.common.collect.MinMaxPriorityQueue.removeAt:(I)Lcom/google/common/collect/MinMaxPriorityQueue$MoveDesc;
pop
2: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/google/common/collect/MinMaxPriorityQueue<TE;>;
0 3 1 index I
1 3 2 value TE;
Signature: (I)TE;
MethodParameters:
Name Flags
index
private com.google.common.collect.MinMaxPriorityQueue<E>.Heap heapForIndex(int);
descriptor: (I)Lcom/google/common/collect/MinMaxPriorityQueue$Heap;
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: iload 1
invokestatic com.google.common.collect.MinMaxPriorityQueue.isEvenLevel:(I)Z
ifeq 1
aload 0
getfield com.google.common.collect.MinMaxPriorityQueue.minHeap:Lcom/google/common/collect/MinMaxPriorityQueue$Heap;
goto 2
StackMap locals:
StackMap stack:
1: aload 0
getfield com.google.common.collect.MinMaxPriorityQueue.maxHeap:Lcom/google/common/collect/MinMaxPriorityQueue$Heap;
StackMap locals:
StackMap stack: com.google.common.collect.MinMaxPriorityQueue$Heap
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/google/common/collect/MinMaxPriorityQueue<TE;>;
0 3 1 i I
Signature: (I)Lcom/google/common/collect/MinMaxPriorityQueue<TE;>.Heap;
MethodParameters:
Name Flags
i
static boolean isEvenLevel(int);
descriptor: (I)Z
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: iload 0
iconst_1
iadd
iconst_m1
ixor
iconst_m1
ixor
istore 1
start local 1 1: iload 1
ifle 2
iconst_1
goto 3
StackMap locals: int
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: ldc "negative index"
invokestatic com.google.common.base.Preconditions.checkState:(ZLjava/lang/Object;)V
4: iload 1
ldc 1431655765
iand
iload 1
ldc -1431655766
iand
if_icmple 5
iconst_1
ireturn
StackMap locals:
StackMap stack:
5: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 index I
1 6 1 oneBased I
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
RuntimeInvisibleTypeAnnotations:
METHOD_RETURN
com.google.common.annotations.VisibleForTesting()
MethodParameters:
Name Flags
index
boolean isIntact();
descriptor: ()Z
flags: (0x0000)
Code:
stack=2, locals=2, args_size=1
start local 0 0: iconst_1
istore 1
start local 1 1: goto 5
2: StackMap locals: int
StackMap stack:
aload 0
iload 1
invokevirtual com.google.common.collect.MinMaxPriorityQueue.heapForIndex:(I)Lcom/google/common/collect/MinMaxPriorityQueue$Heap;
iload 1
invokevirtual com.google.common.collect.MinMaxPriorityQueue$Heap.verifyIndex:(I)Z
ifne 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
iinc 1 1
StackMap locals:
StackMap stack:
5: iload 1
aload 0
getfield com.google.common.collect.MinMaxPriorityQueue.size:I
if_icmplt 2
end local 1 6: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/google/common/collect/MinMaxPriorityQueue<TE;>;
1 6 1 i I
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
RuntimeInvisibleTypeAnnotations:
METHOD_RETURN
com.google.common.annotations.VisibleForTesting()
public java.util.Iterator<E> iterator();
descriptor: ()Ljava/util/Iterator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new com.google.common.collect.MinMaxPriorityQueue$QueueIterator
dup
aload 0
invokespecial com.google.common.collect.MinMaxPriorityQueue$QueueIterator.<init>:(Lcom/google/common/collect/MinMaxPriorityQueue;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/collect/MinMaxPriorityQueue<TE;>;
Signature: ()Ljava/util/Iterator<TE;>;
public void clear();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: goto 4
2: StackMap locals: int
StackMap stack:
aload 0
getfield com.google.common.collect.MinMaxPriorityQueue.queue:[Ljava/lang/Object;
iload 1
aconst_null
aastore
3: iinc 1 1
StackMap locals:
StackMap stack:
4: iload 1
aload 0
getfield com.google.common.collect.MinMaxPriorityQueue.size:I
if_icmplt 2
end local 1 5: aload 0
iconst_0
putfield com.google.common.collect.MinMaxPriorityQueue.size:I
6: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/google/common/collect/MinMaxPriorityQueue<TE;>;
1 5 1 i I
public java.lang.Object[] toArray();
descriptor: ()[Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
getfield com.google.common.collect.MinMaxPriorityQueue.size:I
anewarray java.lang.Object
astore 1
start local 1 1: aload 0
getfield com.google.common.collect.MinMaxPriorityQueue.queue:[Ljava/lang/Object;
iconst_0
aload 1
iconst_0
aload 0
getfield com.google.common.collect.MinMaxPriorityQueue.size:I
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
2: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/google/common/collect/MinMaxPriorityQueue<TE;>;
1 3 1 copyTo [Ljava/lang/Object;
public java.util.Comparator<? super E> comparator();
descriptor: ()Ljava/util/Comparator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.collect.MinMaxPriorityQueue.minHeap:Lcom/google/common/collect/MinMaxPriorityQueue$Heap;
getfield com.google.common.collect.MinMaxPriorityQueue$Heap.ordering:Lcom/google/common/collect/Ordering;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/collect/MinMaxPriorityQueue<TE;>;
Signature: ()Ljava/util/Comparator<-TE;>;
int capacity();
descriptor: ()I
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.google.common.collect.MinMaxPriorityQueue.queue:[Ljava/lang/Object;
arraylength
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/collect/MinMaxPriorityQueue<TE;>;
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
RuntimeInvisibleTypeAnnotations:
METHOD_RETURN
com.google.common.annotations.VisibleForTesting()
static int initialQueueSize(int, int, java.lang.Iterable<?>);
descriptor: (IILjava/lang/Iterable;)I
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=5, args_size=3
start local 0 start local 1 start local 2 0: iload 0
iconst_m1
if_icmpne 2
1: bipush 11
goto 3
2: StackMap locals:
StackMap stack:
iload 0
3: StackMap locals:
StackMap stack: int
istore 3
start local 3 4: aload 2
instanceof java.util.Collection
ifeq 7
5: aload 2
checkcast java.util.Collection
invokeinterface java.util.Collection.size:()I
istore 4
start local 4 6: iload 3
iload 4
invokestatic java.lang.Math.max:(II)I
istore 3
end local 4 7: StackMap locals: int
StackMap stack:
iload 3
iload 1
invokestatic com.google.common.collect.MinMaxPriorityQueue.capAtMaximumSize:(II)I
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 configuredExpectedSize I
0 8 1 maximumSize I
0 8 2 initialContents Ljava/lang/Iterable<*>;
4 8 3 result I
6 7 4 initialSize I
Signature: (IILjava/lang/Iterable<*>;)I
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
RuntimeInvisibleTypeAnnotations:
METHOD_RETURN
com.google.common.annotations.VisibleForTesting()
MethodParameters:
Name Flags
configuredExpectedSize
maximumSize
initialContents
private void growIfNeeded();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=1
start local 0 0: aload 0
getfield com.google.common.collect.MinMaxPriorityQueue.size:I
aload 0
getfield com.google.common.collect.MinMaxPriorityQueue.queue:[Ljava/lang/Object;
arraylength
if_icmple 5
1: aload 0
invokevirtual com.google.common.collect.MinMaxPriorityQueue.calculateNewCapacity:()I
istore 1
start local 1 2: iload 1
anewarray java.lang.Object
astore 2
start local 2 3: aload 0
getfield com.google.common.collect.MinMaxPriorityQueue.queue:[Ljava/lang/Object;
iconst_0
aload 2
iconst_0
aload 0
getfield com.google.common.collect.MinMaxPriorityQueue.queue:[Ljava/lang/Object;
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
4: aload 0
aload 2
putfield com.google.common.collect.MinMaxPriorityQueue.queue:[Ljava/lang/Object;
end local 2 end local 1 5: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/google/common/collect/MinMaxPriorityQueue<TE;>;
2 5 1 newCapacity I
3 5 2 newQueue [Ljava/lang/Object;
private int calculateNewCapacity();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getfield com.google.common.collect.MinMaxPriorityQueue.queue:[Ljava/lang/Object;
arraylength
istore 1
start local 1 1: iload 1
bipush 64
if_icmpge 2
iload 1
iconst_1
iadd
iconst_2
imul
goto 3
StackMap locals: int
StackMap stack:
2: iload 1
iconst_2
idiv
iconst_3
invokestatic com.google.common.math.IntMath.checkedMultiply:(II)I
3: StackMap locals:
StackMap stack: int
istore 2
start local 2 4: iload 2
aload 0
getfield com.google.common.collect.MinMaxPriorityQueue.maximumSize:I
invokestatic com.google.common.collect.MinMaxPriorityQueue.capAtMaximumSize:(II)I
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/google/common/collect/MinMaxPriorityQueue<TE;>;
1 5 1 oldCapacity I
4 5 2 newCapacity I
private static int capAtMaximumSize(int, int);
descriptor: (II)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 0
iconst_1
isub
iload 1
invokestatic java.lang.Math.min:(II)I
iconst_1
iadd
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 queueSize I
0 1 1 maximumSize I
MethodParameters:
Name Flags
queueSize
maximumSize
}
Signature: <E:Ljava/lang/Object;>Ljava/util/AbstractQueue<TE;>;
SourceFile: "MinMaxPriorityQueue.java"
NestMembers:
com.google.common.collect.MinMaxPriorityQueue$Builder com.google.common.collect.MinMaxPriorityQueue$Heap com.google.common.collect.MinMaxPriorityQueue$MoveDesc com.google.common.collect.MinMaxPriorityQueue$QueueIterator
InnerClasses:
public final Builder = com.google.common.collect.MinMaxPriorityQueue$Builder of com.google.common.collect.MinMaxPriorityQueue
private Heap = com.google.common.collect.MinMaxPriorityQueue$Heap of com.google.common.collect.MinMaxPriorityQueue
MoveDesc = com.google.common.collect.MinMaxPriorityQueue$MoveDesc of com.google.common.collect.MinMaxPriorityQueue
private QueueIterator = com.google.common.collect.MinMaxPriorityQueue$QueueIterator of com.google.common.collect.MinMaxPriorityQueue
RuntimeInvisibleAnnotations:
com.google.common.annotations.Beta()
com.google.common.annotations.GwtCompatible()