public class org.h2.util.IntIntHashMap extends org.h2.util.HashBase
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.h2.util.IntIntHashMap
super_class: org.h2.util.HashBase
{
public static final int NOT_FOUND;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: -1
private static final int DELETED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private int[] keys;
descriptor: [I
flags: (0x0002) ACC_PRIVATE
private int[] values;
descriptor: [I
flags: (0x0002) ACC_PRIVATE
private int zeroValue;
descriptor: I
flags: (0x0002) ACC_PRIVATE
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // org.h2.util.IntIntHashMap this
0: .line 16
aload 0 /* this */
invokespecial org.h2.util.HashBase.<init>:()V
return
end local 0 // org.h2.util.IntIntHashMap this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/util/IntIntHashMap;
protected void reset(int);
descriptor: (I)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 // org.h2.util.IntIntHashMap this
start local 1 // int newLevel
0: .line 30
aload 0 /* this */
iload 1 /* newLevel */
invokespecial org.h2.util.HashBase.reset:(I)V
1: .line 31
aload 0 /* this */
aload 0 /* this */
getfield org.h2.util.IntIntHashMap.len:I
newarray 10
putfield org.h2.util.IntIntHashMap.keys:[I
2: .line 32
aload 0 /* this */
aload 0 /* this */
getfield org.h2.util.IntIntHashMap.len:I
newarray 10
putfield org.h2.util.IntIntHashMap.values:[I
3: .line 33
return
end local 1 // int newLevel
end local 0 // org.h2.util.IntIntHashMap this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/h2/util/IntIntHashMap;
0 4 1 newLevel I
MethodParameters:
Name Flags
newLevel
public void put(int, int);
descriptor: (II)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 // org.h2.util.IntIntHashMap this
start local 1 // int key
start local 2 // int value
0: .line 42
iload 1 /* key */
ifne 4
1: .line 43
aload 0 /* this */
iconst_1
putfield org.h2.util.IntIntHashMap.zeroKey:Z
2: .line 44
aload 0 /* this */
iload 2 /* value */
putfield org.h2.util.IntIntHashMap.zeroValue:I
3: .line 45
return
4: .line 47
StackMap locals:
StackMap stack:
aload 0 /* this */
invokevirtual org.h2.util.IntIntHashMap.checkSizePut:()V
5: .line 48
aload 0 /* this */
iload 1 /* key */
iload 2 /* value */
invokevirtual org.h2.util.IntIntHashMap.internalPut:(II)V
6: .line 49
return
end local 2 // int value
end local 1 // int key
end local 0 // org.h2.util.IntIntHashMap this
LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/h2/util/IntIntHashMap;
0 7 1 key I
0 7 2 value I
MethodParameters:
Name Flags
key
value
private void internalPut(int, int);
descriptor: (II)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=7, args_size=3
start local 0 // org.h2.util.IntIntHashMap this
start local 1 // int key
start local 2 // int value
0: .line 52
aload 0 /* this */
iload 1 /* key */
invokevirtual org.h2.util.IntIntHashMap.getIndex:(I)I
istore 3 /* index */
start local 3 // int index
1: .line 53
iconst_1
istore 4 /* plus */
start local 4 // int plus
2: .line 54
iconst_m1
istore 5 /* deleted */
start local 5 // int deleted
3: .line 56
StackMap locals: int int int
StackMap stack:
aload 0 /* this */
getfield org.h2.util.IntIntHashMap.keys:[I
iload 3 /* index */
iaload
istore 6 /* k */
start local 6 // int k
4: .line 57
iload 6 /* k */
ifne 16
5: .line 58
aload 0 /* this */
getfield org.h2.util.IntIntHashMap.values:[I
iload 3 /* index */
iaload
iconst_1
if_icmpeq 13
6: .line 60
iload 5 /* deleted */
iflt 9
7: .line 61
iload 5 /* deleted */
istore 3 /* index */
8: .line 62
aload 0 /* this */
dup
getfield org.h2.util.IntIntHashMap.deletedCount:I
iconst_1
isub
putfield org.h2.util.IntIntHashMap.deletedCount:I
9: .line 64
StackMap locals: int
StackMap stack:
aload 0 /* this */
dup
getfield org.h2.util.IntIntHashMap.size:I
iconst_1
iadd
putfield org.h2.util.IntIntHashMap.size:I
10: .line 65
aload 0 /* this */
getfield org.h2.util.IntIntHashMap.keys:[I
iload 3 /* index */
iload 1 /* key */
iastore
11: .line 66
aload 0 /* this */
getfield org.h2.util.IntIntHashMap.values:[I
iload 3 /* index */
iload 2 /* value */
iastore
12: .line 67
return
13: .line 70
StackMap locals:
StackMap stack:
iload 5 /* deleted */
ifge 19
14: .line 71
iload 3 /* index */
istore 5 /* deleted */
15: .line 73
goto 19
StackMap locals:
StackMap stack:
16: iload 6 /* k */
iload 1 /* key */
if_icmpne 19
17: .line 75
aload 0 /* this */
getfield org.h2.util.IntIntHashMap.values:[I
iload 3 /* index */
iload 2 /* value */
iastore
18: .line 76
return
19: .line 78
StackMap locals:
StackMap stack:
iload 3 /* index */
iload 4 /* plus */
iinc 4 /* plus */ 1
iadd
aload 0 /* this */
getfield org.h2.util.IntIntHashMap.mask:I
iand
istore 3 /* index */
end local 6 // int k
20: .line 79
iload 4 /* plus */
aload 0 /* this */
getfield org.h2.util.IntIntHashMap.len:I
21: .line 55
if_icmple 3
22: .line 81
ldc "hashmap is full"
invokestatic org.h2.message.DbException.throwInternalError:(Ljava/lang/String;)Ljava/lang/RuntimeException;
pop
23: .line 82
return
end local 5 // int deleted
end local 4 // int plus
end local 3 // int index
end local 2 // int value
end local 1 // int key
end local 0 // org.h2.util.IntIntHashMap this
LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lorg/h2/util/IntIntHashMap;
0 24 1 key I
0 24 2 value I
1 24 3 index I
2 24 4 plus I
3 24 5 deleted I
4 20 6 k I
MethodParameters:
Name Flags
key
value
public void remove(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=2
start local 0 // org.h2.util.IntIntHashMap this
start local 1 // int key
0: .line 90
iload 1 /* key */
ifne 3
1: .line 91
aload 0 /* this */
iconst_0
putfield org.h2.util.IntIntHashMap.zeroKey:Z
2: .line 92
return
3: .line 94
StackMap locals:
StackMap stack:
aload 0 /* this */
invokevirtual org.h2.util.IntIntHashMap.checkSizeRemove:()V
4: .line 95
aload 0 /* this */
iload 1 /* key */
invokevirtual org.h2.util.IntIntHashMap.getIndex:(I)I
istore 2 /* index */
start local 2 // int index
5: .line 96
iconst_1
istore 3 /* plus */
start local 3 // int plus
6: .line 98
StackMap locals: int int
StackMap stack:
aload 0 /* this */
getfield org.h2.util.IntIntHashMap.keys:[I
iload 2 /* index */
iaload
istore 4 /* k */
start local 4 // int k
7: .line 99
iload 4 /* k */
iload 1 /* key */
if_icmpne 13
8: .line 101
aload 0 /* this */
getfield org.h2.util.IntIntHashMap.keys:[I
iload 2 /* index */
iconst_0
iastore
9: .line 102
aload 0 /* this */
getfield org.h2.util.IntIntHashMap.values:[I
iload 2 /* index */
iconst_1
iastore
10: .line 103
aload 0 /* this */
dup
getfield org.h2.util.IntIntHashMap.deletedCount:I
iconst_1
iadd
putfield org.h2.util.IntIntHashMap.deletedCount:I
11: .line 104
aload 0 /* this */
dup
getfield org.h2.util.IntIntHashMap.size:I
iconst_1
isub
putfield org.h2.util.IntIntHashMap.size:I
12: .line 105
return
13: .line 106
StackMap locals: int
StackMap stack:
iload 4 /* k */
ifne 15
aload 0 /* this */
getfield org.h2.util.IntIntHashMap.values:[I
iload 2 /* index */
iaload
ifne 15
14: .line 108
return
15: .line 110
StackMap locals:
StackMap stack:
iload 2 /* index */
iload 3 /* plus */
iinc 3 /* plus */ 1
iadd
aload 0 /* this */
getfield org.h2.util.IntIntHashMap.mask:I
iand
istore 2 /* index */
end local 4 // int k
16: .line 111
iload 3 /* plus */
aload 0 /* this */
getfield org.h2.util.IntIntHashMap.len:I
17: .line 97
if_icmple 6
18: .line 113
return
end local 3 // int plus
end local 2 // int index
end local 1 // int key
end local 0 // org.h2.util.IntIntHashMap this
LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/h2/util/IntIntHashMap;
0 19 1 key I
5 19 2 index I
6 19 3 plus I
7 16 4 k I
MethodParameters:
Name Flags
key
protected void rehash(int);
descriptor: (I)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=6, args_size=2
start local 0 // org.h2.util.IntIntHashMap this
start local 1 // int newLevel
0: .line 117
aload 0 /* this */
getfield org.h2.util.IntIntHashMap.keys:[I
astore 2 /* oldKeys */
start local 2 // int[] oldKeys
1: .line 118
aload 0 /* this */
getfield org.h2.util.IntIntHashMap.values:[I
astore 3 /* oldValues */
start local 3 // int[] oldValues
2: .line 119
aload 0 /* this */
iload 1 /* newLevel */
invokevirtual org.h2.util.IntIntHashMap.reset:(I)V
3: .line 120
iconst_0
istore 4 /* i */
start local 4 // int i
4: goto 9
5: .line 121
StackMap locals: int[] int[] int
StackMap stack:
aload 2 /* oldKeys */
iload 4 /* i */
iaload
istore 5 /* k */
start local 5 // int k
6: .line 122
iload 5 /* k */
ifeq 8
7: .line 125
aload 0 /* this */
iload 5 /* k */
aload 3 /* oldValues */
iload 4 /* i */
iaload
invokevirtual org.h2.util.IntIntHashMap.internalPut:(II)V
end local 5 // int k
8: .line 120
StackMap locals:
StackMap stack:
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
9: iload 4 /* i */
aload 2 /* oldKeys */
arraylength
if_icmplt 5
end local 4 // int i
10: .line 128
return
end local 3 // int[] oldValues
end local 2 // int[] oldKeys
end local 1 // int newLevel
end local 0 // org.h2.util.IntIntHashMap this
LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/h2/util/IntIntHashMap;
0 11 1 newLevel I
1 11 2 oldKeys [I
2 11 3 oldValues [I
4 10 4 i I
6 8 5 k I
MethodParameters:
Name Flags
newLevel
public int get(int);
descriptor: (I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=2
start local 0 // org.h2.util.IntIntHashMap this
start local 1 // int key
0: .line 138
iload 1 /* key */
ifne 4
1: .line 139
aload 0 /* this */
getfield org.h2.util.IntIntHashMap.zeroKey:Z
ifeq 2
aload 0 /* this */
getfield org.h2.util.IntIntHashMap.zeroValue:I
goto 3
StackMap locals:
StackMap stack:
2: iconst_m1
StackMap locals:
StackMap stack: int
3: ireturn
4: .line 141
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 1 /* key */
invokevirtual org.h2.util.IntIntHashMap.getIndex:(I)I
istore 2 /* index */
start local 2 // int index
5: .line 142
iconst_1
istore 3 /* plus */
start local 3 // int plus
6: .line 144
StackMap locals: int int
StackMap stack:
aload 0 /* this */
getfield org.h2.util.IntIntHashMap.keys:[I
iload 2 /* index */
iaload
istore 4 /* k */
start local 4 // int k
7: .line 145
iload 4 /* k */
ifne 9
aload 0 /* this */
getfield org.h2.util.IntIntHashMap.values:[I
iload 2 /* index */
iaload
ifne 9
8: .line 147
iconst_m1
ireturn
9: .line 148
StackMap locals: int
StackMap stack:
iload 4 /* k */
iload 1 /* key */
if_icmpne 11
10: .line 150
aload 0 /* this */
getfield org.h2.util.IntIntHashMap.values:[I
iload 2 /* index */
iaload
ireturn
11: .line 152
StackMap locals:
StackMap stack:
iload 2 /* index */
iload 3 /* plus */
iinc 3 /* plus */ 1
iadd
aload 0 /* this */
getfield org.h2.util.IntIntHashMap.mask:I
iand
istore 2 /* index */
end local 4 // int k
12: .line 153
iload 3 /* plus */
aload 0 /* this */
getfield org.h2.util.IntIntHashMap.len:I
13: .line 143
if_icmple 6
14: .line 154
iconst_m1
ireturn
end local 3 // int plus
end local 2 // int index
end local 1 // int key
end local 0 // org.h2.util.IntIntHashMap this
LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/h2/util/IntIntHashMap;
0 15 1 key I
5 15 2 index I
6 15 3 plus I
7 12 4 k I
MethodParameters:
Name Flags
key
}
SourceFile: "IntIntHashMap.java"