class java.io.ObjectInputStream$HandleTable
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: java.io.ObjectInputStream$HandleTable
super_class: java.lang.Object
{
private static final byte STATUS_OK;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final byte STATUS_UNKNOWN;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final byte STATUS_EXCEPTION;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
byte[] status;
descriptor: [B
flags: (0x0000)
java.lang.Object[] entries;
descriptor: [Ljava/lang/Object;
flags: (0x0000)
java.io.ObjectInputStream$HandleTable$HandleList[] deps;
descriptor: [Ljava/io/ObjectInputStream$HandleTable$HandleList;
flags: (0x0000)
int lowDep;
descriptor: I
flags: (0x0000)
int size;
descriptor: I
flags: (0x0000)
void <init>(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_m1
putfield java.io.ObjectInputStream$HandleTable.lowDep:I
2: aload 0
iconst_0
putfield java.io.ObjectInputStream$HandleTable.size:I
3: aload 0
iload 1
newarray 8
putfield java.io.ObjectInputStream$HandleTable.status:[B
4: aload 0
iload 1
anewarray java.lang.Object
putfield java.io.ObjectInputStream$HandleTable.entries:[Ljava/lang/Object;
5: aload 0
iload 1
anewarray java.io.ObjectInputStream$HandleTable$HandleList
putfield java.io.ObjectInputStream$HandleTable.deps:[Ljava/io/ObjectInputStream$HandleTable$HandleList;
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/io/ObjectInputStream$HandleTable;
0 7 1 initialCapacity I
MethodParameters:
Name Flags
initialCapacity
int assign(java.lang.Object);
descriptor: (Ljava/lang/Object;)I
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield java.io.ObjectInputStream$HandleTable.size:I
aload 0
getfield java.io.ObjectInputStream$HandleTable.entries:[Ljava/lang/Object;
arraylength
if_icmplt 2
1: aload 0
invokevirtual java.io.ObjectInputStream$HandleTable.grow:()V
2: StackMap locals:
StackMap stack:
aload 0
getfield java.io.ObjectInputStream$HandleTable.status:[B
aload 0
getfield java.io.ObjectInputStream$HandleTable.size:I
iconst_2
bastore
3: aload 0
getfield java.io.ObjectInputStream$HandleTable.entries:[Ljava/lang/Object;
aload 0
getfield java.io.ObjectInputStream$HandleTable.size:I
aload 1
aastore
4: aload 0
dup
getfield java.io.ObjectInputStream$HandleTable.size:I
dup_x1
iconst_1
iadd
putfield java.io.ObjectInputStream$HandleTable.size:I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/io/ObjectInputStream$HandleTable;
0 5 1 obj Ljava/lang/Object;
MethodParameters:
Name Flags
obj
void markDependency(int, int);
descriptor: (II)V
flags: (0x0000)
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iload 1
iconst_m1
if_icmpeq 1
iload 2
iconst_m1
if_icmpne 2
1: StackMap locals:
StackMap stack:
return
2: StackMap locals:
StackMap stack:
aload 0
getfield java.io.ObjectInputStream$HandleTable.status:[B
iload 1
baload
tableswitch { // 2 - 3
2: 3
3: 16
default: 17
}
3: StackMap locals:
StackMap stack:
aload 0
getfield java.io.ObjectInputStream$HandleTable.status:[B
iload 2
baload
tableswitch { // 1 - 3
1: 4
2: 9
3: 5
default: 15
}
4: StackMap locals:
StackMap stack:
goto 18
5: StackMap locals:
StackMap stack:
aload 0
iload 1
6: aload 0
getfield java.io.ObjectInputStream$HandleTable.entries:[Ljava/lang/Object;
iload 2
aaload
checkcast java.lang.ClassNotFoundException
7: invokevirtual java.io.ObjectInputStream$HandleTable.markException:(ILjava/lang/ClassNotFoundException;)V
8: goto 18
9: StackMap locals:
StackMap stack:
aload 0
getfield java.io.ObjectInputStream$HandleTable.deps:[Ljava/io/ObjectInputStream$HandleTable$HandleList;
iload 2
aaload
ifnonnull 11
10: aload 0
getfield java.io.ObjectInputStream$HandleTable.deps:[Ljava/io/ObjectInputStream$HandleTable$HandleList;
iload 2
new java.io.ObjectInputStream$HandleTable$HandleList
dup
invokespecial java.io.ObjectInputStream$HandleTable$HandleList.<init>:()V
aastore
11: StackMap locals:
StackMap stack:
aload 0
getfield java.io.ObjectInputStream$HandleTable.deps:[Ljava/io/ObjectInputStream$HandleTable$HandleList;
iload 2
aaload
iload 1
invokevirtual java.io.ObjectInputStream$HandleTable$HandleList.add:(I)V
12: aload 0
getfield java.io.ObjectInputStream$HandleTable.lowDep:I
iflt 13
aload 0
getfield java.io.ObjectInputStream$HandleTable.lowDep:I
iload 2
if_icmple 18
13: StackMap locals:
StackMap stack:
aload 0
iload 2
putfield java.io.ObjectInputStream$HandleTable.lowDep:I
14: goto 18
15: StackMap locals:
StackMap stack:
new java.lang.InternalError
dup
invokespecial java.lang.InternalError.<init>:()V
athrow
16: StackMap locals:
StackMap stack:
goto 18
17: StackMap locals:
StackMap stack:
new java.lang.InternalError
dup
invokespecial java.lang.InternalError.<init>:()V
athrow
18: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Ljava/io/ObjectInputStream$HandleTable;
0 19 1 dependent I
0 19 2 target I
MethodParameters:
Name Flags
dependent
target
void markException(int, java.lang.ClassNotFoundException);
descriptor: (ILjava/lang/ClassNotFoundException;)V
flags: (0x0000)
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield java.io.ObjectInputStream$HandleTable.status:[B
iload 1
baload
tableswitch { // 2 - 3
2: 1
3: 13
default: 14
}
1: StackMap locals:
StackMap stack:
aload 0
getfield java.io.ObjectInputStream$HandleTable.status:[B
iload 1
iconst_3
bastore
2: aload 0
getfield java.io.ObjectInputStream$HandleTable.entries:[Ljava/lang/Object;
iload 1
aload 2
aastore
3: aload 0
getfield java.io.ObjectInputStream$HandleTable.deps:[Ljava/io/ObjectInputStream$HandleTable$HandleList;
iload 1
aaload
astore 3
start local 3 4: aload 3
ifnull 15
5: aload 3
invokevirtual java.io.ObjectInputStream$HandleTable$HandleList.size:()I
istore 4
start local 4 6: iconst_0
istore 5
start local 5 7: goto 10
8: StackMap locals: java.io.ObjectInputStream$HandleTable$HandleList int int
StackMap stack:
aload 0
aload 3
iload 5
invokevirtual java.io.ObjectInputStream$HandleTable$HandleList.get:(I)I
aload 2
invokevirtual java.io.ObjectInputStream$HandleTable.markException:(ILjava/lang/ClassNotFoundException;)V
9: iinc 5 1
StackMap locals:
StackMap stack:
10: iload 5
iload 4
if_icmplt 8
end local 5 11: aload 0
getfield java.io.ObjectInputStream$HandleTable.deps:[Ljava/io/ObjectInputStream$HandleTable$HandleList;
iload 1
aconst_null
aastore
end local 4 12: goto 15
end local 3 13: StackMap locals:
StackMap stack:
goto 15
14: StackMap locals:
StackMap stack:
new java.lang.InternalError
dup
invokespecial java.lang.InternalError.<init>:()V
athrow
15: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Ljava/io/ObjectInputStream$HandleTable;
0 16 1 handle I
0 16 2 ex Ljava/lang/ClassNotFoundException;
4 13 3 dlist Ljava/io/ObjectInputStream$HandleTable$HandleList;
6 12 4 ndeps I
7 11 5 i I
MethodParameters:
Name Flags
handle
ex
void finish(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield java.io.ObjectInputStream$HandleTable.lowDep:I
ifge 3
1: iload 1
iconst_1
iadd
istore 2
start local 2 2: goto 8
end local 2 StackMap locals:
StackMap stack:
3: aload 0
getfield java.io.ObjectInputStream$HandleTable.lowDep:I
iload 1
if_icmplt 7
4: aload 0
getfield java.io.ObjectInputStream$HandleTable.size:I
istore 2
start local 2 5: aload 0
iconst_m1
putfield java.io.ObjectInputStream$HandleTable.lowDep:I
6: goto 8
end local 2 7: StackMap locals:
StackMap stack:
return
start local 2 8: StackMap locals: int
StackMap stack:
iload 1
istore 3
start local 3 9: goto 17
10: StackMap locals: int
StackMap stack:
aload 0
getfield java.io.ObjectInputStream$HandleTable.status:[B
iload 3
baload
tableswitch { // 1 - 3
1: 14
2: 11
3: 14
default: 15
}
11: StackMap locals:
StackMap stack:
aload 0
getfield java.io.ObjectInputStream$HandleTable.status:[B
iload 3
iconst_1
bastore
12: aload 0
getfield java.io.ObjectInputStream$HandleTable.deps:[Ljava/io/ObjectInputStream$HandleTable$HandleList;
iload 3
aconst_null
aastore
13: goto 16
14: StackMap locals:
StackMap stack:
goto 16
15: StackMap locals:
StackMap stack:
new java.lang.InternalError
dup
invokespecial java.lang.InternalError.<init>:()V
athrow
16: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
17: iload 3
iload 2
if_icmplt 10
end local 3 18: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Ljava/io/ObjectInputStream$HandleTable;
0 19 1 handle I
2 3 2 end I
5 7 2 end I
8 19 2 end I
9 18 3 i I
MethodParameters:
Name Flags
handle
void setObject(int, java.lang.Object);
descriptor: (ILjava/lang/Object;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield java.io.ObjectInputStream$HandleTable.status:[B
iload 1
baload
tableswitch { // 1 - 3
1: 1
2: 1
3: 3
default: 4
}
1: StackMap locals:
StackMap stack:
aload 0
getfield java.io.ObjectInputStream$HandleTable.entries:[Ljava/lang/Object;
iload 1
aload 2
aastore
2: goto 5
3: StackMap locals:
StackMap stack:
goto 5
4: StackMap locals:
StackMap stack:
new java.lang.InternalError
dup
invokespecial java.lang.InternalError.<init>:()V
athrow
5: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/io/ObjectInputStream$HandleTable;
0 6 1 handle I
0 6 2 obj Ljava/lang/Object;
MethodParameters:
Name Flags
handle
obj
java.lang.Object lookupObject(int);
descriptor: (I)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 1
iconst_m1
if_icmpeq 3
1: aload 0
getfield java.io.ObjectInputStream$HandleTable.status:[B
iload 1
baload
iconst_3
if_icmpeq 3
2: aload 0
getfield java.io.ObjectInputStream$HandleTable.entries:[Ljava/lang/Object;
iload 1
aaload
goto 4
StackMap locals:
StackMap stack:
3: aconst_null
4: StackMap locals:
StackMap stack: java.lang.Object
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/io/ObjectInputStream$HandleTable;
0 5 1 handle I
MethodParameters:
Name Flags
handle
java.lang.ClassNotFoundException lookupException(int);
descriptor: (I)Ljava/lang/ClassNotFoundException;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 1
iconst_m1
if_icmpeq 3
1: aload 0
getfield java.io.ObjectInputStream$HandleTable.status:[B
iload 1
baload
iconst_3
if_icmpne 3
2: aload 0
getfield java.io.ObjectInputStream$HandleTable.entries:[Ljava/lang/Object;
iload 1
aaload
checkcast java.lang.ClassNotFoundException
goto 4
StackMap locals:
StackMap stack:
3: aconst_null
4: StackMap locals:
StackMap stack: java.lang.ClassNotFoundException
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/io/ObjectInputStream$HandleTable;
0 5 1 handle I
MethodParameters:
Name Flags
handle
void clear();
descriptor: ()V
flags: (0x0000)
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield java.io.ObjectInputStream$HandleTable.status:[B
iconst_0
aload 0
getfield java.io.ObjectInputStream$HandleTable.size:I
iconst_0
invokestatic java.util.Arrays.fill:([BIIB)V
1: aload 0
getfield java.io.ObjectInputStream$HandleTable.entries:[Ljava/lang/Object;
iconst_0
aload 0
getfield java.io.ObjectInputStream$HandleTable.size:I
aconst_null
invokestatic java.util.Arrays.fill:([Ljava/lang/Object;IILjava/lang/Object;)V
2: aload 0
getfield java.io.ObjectInputStream$HandleTable.deps:[Ljava/io/ObjectInputStream$HandleTable$HandleList;
iconst_0
aload 0
getfield java.io.ObjectInputStream$HandleTable.size:I
aconst_null
invokestatic java.util.Arrays.fill:([Ljava/lang/Object;IILjava/lang/Object;)V
3: aload 0
iconst_m1
putfield java.io.ObjectInputStream$HandleTable.lowDep:I
4: aload 0
iconst_0
putfield java.io.ObjectInputStream$HandleTable.size:I
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/io/ObjectInputStream$HandleTable;
int size();
descriptor: ()I
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.io.ObjectInputStream$HandleTable.size:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/io/ObjectInputStream$HandleTable;
private void grow();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=1
start local 0 0: aload 0
getfield java.io.ObjectInputStream$HandleTable.entries:[Ljava/lang/Object;
arraylength
iconst_1
ishl
iconst_1
iadd
istore 1
start local 1 1: iload 1
newarray 8
astore 2
start local 2 2: iload 1
anewarray java.lang.Object
astore 3
start local 3 3: iload 1
anewarray java.io.ObjectInputStream$HandleTable$HandleList
astore 4
start local 4 4: aload 0
getfield java.io.ObjectInputStream$HandleTable.status:[B
iconst_0
aload 2
iconst_0
aload 0
getfield java.io.ObjectInputStream$HandleTable.size:I
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
5: aload 0
getfield java.io.ObjectInputStream$HandleTable.entries:[Ljava/lang/Object;
iconst_0
aload 3
iconst_0
aload 0
getfield java.io.ObjectInputStream$HandleTable.size:I
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
6: aload 0
getfield java.io.ObjectInputStream$HandleTable.deps:[Ljava/io/ObjectInputStream$HandleTable$HandleList;
iconst_0
aload 4
iconst_0
aload 0
getfield java.io.ObjectInputStream$HandleTable.size:I
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
7: aload 0
aload 2
putfield java.io.ObjectInputStream$HandleTable.status:[B
8: aload 0
aload 3
putfield java.io.ObjectInputStream$HandleTable.entries:[Ljava/lang/Object;
9: aload 0
aload 4
putfield java.io.ObjectInputStream$HandleTable.deps:[Ljava/io/ObjectInputStream$HandleTable$HandleList;
10: return
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 Ljava/io/ObjectInputStream$HandleTable;
1 11 1 newCapacity I
2 11 2 newStatus [B
3 11 3 newEntries [Ljava/lang/Object;
4 11 4 newDeps [Ljava/io/ObjectInputStream$HandleTable$HandleList;
}
SourceFile: "ObjectInputStream.java"
NestHost: java.io.ObjectInputStream
InnerClasses:
private HandleTable = java.io.ObjectInputStream$HandleTable of java.io.ObjectInputStream
private HandleList = java.io.ObjectInputStream$HandleTable$HandleList of java.io.ObjectInputStream$HandleTable