public final class com.carrotsearch.hppc.BoundedProportionalArraySizingStrategy implements com.carrotsearch.hppc.ArraySizingStrategy
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.carrotsearch.hppc.BoundedProportionalArraySizingStrategy
super_class: java.lang.Object
{
public static final int MAX_ARRAY_LENGTH;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 2147483615
public static final int DEFAULT_MIN_GROW_COUNT;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 10
public static final int DEFAULT_MAX_GROW_COUNT;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 2147483615
public static final float DEFAULT_GROW_RATIO;
descriptor: F
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 1.5
public final int minGrowCount;
descriptor: I
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
public final int maxGrowCount;
descriptor: I
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
public final float growRatio;
descriptor: F
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lcom/carrotsearch/hppc/BoundedProportionalArraySizingStrategy;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic com.carrotsearch.hppc.BoundedProportionalArraySizingStrategy.$assertionsDisabled:Z
3: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
bipush 10
ldc 2147483615
ldc 1.5
invokespecial com.carrotsearch.hppc.BoundedProportionalArraySizingStrategy.<init>:(IIF)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/carrotsearch/hppc/BoundedProportionalArraySizingStrategy;
public void <init>(int, int, float);
descriptor: (IIF)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: getstatic com.carrotsearch.hppc.BoundedProportionalArraySizingStrategy.$assertionsDisabled:Z
ifne 2
iload 1
iconst_1
if_icmpge 2
new java.lang.AssertionError
dup
ldc "Min grow must be >= 1."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
2: StackMap locals: com.carrotsearch.hppc.BoundedProportionalArraySizingStrategy int int float
StackMap stack:
getstatic com.carrotsearch.hppc.BoundedProportionalArraySizingStrategy.$assertionsDisabled:Z
ifne 3
iload 2
iload 1
if_icmpge 3
new java.lang.AssertionError
dup
ldc "Max grow must be >= min grow."
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
3: StackMap locals:
StackMap stack:
getstatic com.carrotsearch.hppc.BoundedProportionalArraySizingStrategy.$assertionsDisabled:Z
ifne 4
fload 3
fconst_1
fcmpl
ifge 4
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Growth ratio must be >= 1 (was "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
fload 3
invokevirtual java.lang.StringBuilder.append:(F)Ljava/lang/StringBuilder;
ldc ")."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
iload 1
putfield com.carrotsearch.hppc.BoundedProportionalArraySizingStrategy.minGrowCount:I
5: aload 0
iload 2
putfield com.carrotsearch.hppc.BoundedProportionalArraySizingStrategy.maxGrowCount:I
6: aload 0
fload 3
fconst_1
fsub
putfield com.carrotsearch.hppc.BoundedProportionalArraySizingStrategy.growRatio:F
7: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/carrotsearch/hppc/BoundedProportionalArraySizingStrategy;
0 8 1 minGrow I
0 8 2 maxGrow I
0 8 3 ratio F
MethodParameters:
Name Flags
minGrow
maxGrow
ratio
public int grow(int, int, int);
descriptor: (III)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 1
i2l
l2f
aload 0
getfield com.carrotsearch.hppc.BoundedProportionalArraySizingStrategy.growRatio:F
fmul
f2l
lstore 4
start local 4 1: lload 4
aload 0
getfield com.carrotsearch.hppc.BoundedProportionalArraySizingStrategy.minGrowCount:I
i2l
invokestatic java.lang.Math.max:(JJ)J
lstore 4
2: lload 4
aload 0
getfield com.carrotsearch.hppc.BoundedProportionalArraySizingStrategy.maxGrowCount:I
i2l
invokestatic java.lang.Math.min:(JJ)J
lstore 4
3: ldc 2147483615
lload 4
iload 1
i2l
ladd
invokestatic java.lang.Math.min:(JJ)J
lstore 6
start local 6 4: iload 2
i2l
iload 3
i2l
ladd
lload 6
invokestatic java.lang.Math.max:(JJ)J
lstore 8
start local 8 5: lload 8
ldc 2147483615
lcmp
ifle 10
6: new com.carrotsearch.hppc.BufferAllocationException
dup
7: ldc "Java array size exceeded (current length: %d, elements: %d, expected additions: %d)"
iconst_3
anewarray java.lang.Object
dup
iconst_0
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
8: iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
9: aastore
invokespecial com.carrotsearch.hppc.BufferAllocationException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
athrow
10: StackMap locals: long long long
StackMap stack:
lload 8
l2i
ireturn
end local 8 end local 6 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/carrotsearch/hppc/BoundedProportionalArraySizingStrategy;
0 11 1 currentBufferLength I
0 11 2 elementsCount I
0 11 3 expectedAdditions I
1 11 4 growBy J
4 11 6 growTo J
5 11 8 newSize J
MethodParameters:
Name Flags
currentBufferLength
elementsCount
expectedAdditions
}
SourceFile: "BoundedProportionalArraySizingStrategy.java"