class org.h2.mvstore.type.ObjectDataType$BigDecimalType extends org.h2.mvstore.type.ObjectDataType$AutoDetectDataType
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.h2.mvstore.type.ObjectDataType$BigDecimalType
super_class: org.h2.mvstore.type.ObjectDataType$AutoDetectDataType
{
void <init>(org.h2.mvstore.type.ObjectDataType);
descriptor: (Lorg/h2/mvstore/type/ObjectDataType;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
bipush 9
invokespecial org.h2.mvstore.type.ObjectDataType$AutoDetectDataType.<init>:(Lorg/h2/mvstore/type/ObjectDataType;I)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/mvstore/type/ObjectDataType$BigDecimalType;
0 2 1 base Lorg/h2/mvstore/type/ObjectDataType;
MethodParameters:
Name Flags
base
public int compare(java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokestatic org.h2.mvstore.type.ObjectDataType.isBigDecimal:(Ljava/lang/Object;)Z
ifeq 4
aload 2
invokestatic org.h2.mvstore.type.ObjectDataType.isBigDecimal:(Ljava/lang/Object;)Z
ifeq 4
1: aload 1
checkcast java.math.BigDecimal
astore 3
start local 3 2: aload 2
checkcast java.math.BigDecimal
astore 4
start local 4 3: aload 3
aload 4
invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
ireturn
end local 4 end local 3 4: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokespecial org.h2.mvstore.type.ObjectDataType$AutoDetectDataType.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/h2/mvstore/type/ObjectDataType$BigDecimalType;
0 5 1 aObj Ljava/lang/Object;
0 5 2 bObj Ljava/lang/Object;
2 4 3 a Ljava/math/BigDecimal;
3 4 4 b Ljava/math/BigDecimal;
MethodParameters:
Name Flags
aObj
bObj
public int getMemory(java.lang.Object);
descriptor: (Ljava/lang/Object;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic org.h2.mvstore.type.ObjectDataType.isBigDecimal:(Ljava/lang/Object;)Z
ifeq 1
sipush 150
goto 2
StackMap locals:
StackMap stack:
1: aload 0
aload 1
invokespecial org.h2.mvstore.type.ObjectDataType$AutoDetectDataType.getMemory:(Ljava/lang/Object;)I
StackMap locals:
StackMap stack: int
2: ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/h2/mvstore/type/ObjectDataType$BigDecimalType;
0 3 1 obj Ljava/lang/Object;
MethodParameters:
Name Flags
obj
public void write(org.h2.mvstore.WriteBuffer, java.lang.Object);
descriptor: (Lorg/h2/mvstore/WriteBuffer;Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokestatic org.h2.mvstore.type.ObjectDataType.isBigDecimal:(Ljava/lang/Object;)Z
ifne 3
1: aload 0
aload 1
aload 2
invokespecial org.h2.mvstore.type.ObjectDataType$AutoDetectDataType.write:(Lorg/h2/mvstore/WriteBuffer;Ljava/lang/Object;)V
2: return
3: StackMap locals:
StackMap stack:
aload 2
checkcast java.math.BigDecimal
astore 3
start local 3 4: getstatic java.math.BigDecimal.ZERO:Ljava/math/BigDecimal;
aload 3
invokevirtual java.math.BigDecimal.equals:(Ljava/lang/Object;)Z
ifeq 7
5: aload 1
bipush 46
invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
pop
6: goto 24
StackMap locals: java.math.BigDecimal
StackMap stack:
7: getstatic java.math.BigDecimal.ONE:Ljava/math/BigDecimal;
aload 3
invokevirtual java.math.BigDecimal.equals:(Ljava/lang/Object;)Z
ifeq 10
8: aload 1
bipush 47
invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
pop
9: goto 24
10: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.math.BigDecimal.scale:()I
istore 4
start local 4 11: aload 3
invokevirtual java.math.BigDecimal.unscaledValue:()Ljava/math/BigInteger;
astore 5
start local 5 12: aload 5
invokevirtual java.math.BigInteger.bitLength:()I
istore 6
start local 6 13: iload 6
bipush 64
if_icmpge 21
14: iload 4
ifne 17
15: aload 1
bipush 48
invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
pop
16: goto 19
17: StackMap locals: int java.math.BigInteger int
StackMap stack:
aload 1
bipush 49
invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
18: iload 4
invokevirtual org.h2.mvstore.WriteBuffer.putVarInt:(I)Lorg/h2/mvstore/WriteBuffer;
pop
19: StackMap locals:
StackMap stack:
aload 1
aload 5
invokevirtual java.math.BigInteger.longValue:()J
invokevirtual org.h2.mvstore.WriteBuffer.putVarLong:(J)Lorg/h2/mvstore/WriteBuffer;
pop
20: goto 24
21: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.math.BigInteger.toByteArray:()[B
astore 7
start local 7 22: aload 1
bipush 9
invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
iload 4
invokevirtual org.h2.mvstore.WriteBuffer.putVarInt:(I)Lorg/h2/mvstore/WriteBuffer;
23: aload 7
arraylength
invokevirtual org.h2.mvstore.WriteBuffer.putVarInt:(I)Lorg/h2/mvstore/WriteBuffer;
aload 7
invokevirtual org.h2.mvstore.WriteBuffer.put:([B)Lorg/h2/mvstore/WriteBuffer;
pop
end local 7 end local 6 end local 5 end local 4 24: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lorg/h2/mvstore/type/ObjectDataType$BigDecimalType;
0 25 1 buff Lorg/h2/mvstore/WriteBuffer;
0 25 2 obj Ljava/lang/Object;
4 25 3 x Ljava/math/BigDecimal;
11 24 4 scale I
12 24 5 b Ljava/math/BigInteger;
13 24 6 bits I
22 24 7 bytes [B
MethodParameters:
Name Flags
buff
obj
public java.lang.Object read(java.nio.ByteBuffer, int);
descriptor: (Ljava/nio/ByteBuffer;I)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=3
start local 0 start local 1 start local 2 0: iload 2
tableswitch { // 46 - 49
46: 1
47: 2
48: 3
49: 4
default: 6
}
1: StackMap locals:
StackMap stack:
getstatic java.math.BigDecimal.ZERO:Ljava/math/BigDecimal;
areturn
2: StackMap locals:
StackMap stack:
getstatic java.math.BigDecimal.ONE:Ljava/math/BigDecimal;
areturn
3: StackMap locals:
StackMap stack:
aload 1
invokestatic org.h2.mvstore.DataUtils.readVarLong:(Ljava/nio/ByteBuffer;)J
invokestatic java.math.BigDecimal.valueOf:(J)Ljava/math/BigDecimal;
areturn
4: StackMap locals:
StackMap stack:
aload 1
invokestatic org.h2.mvstore.DataUtils.readVarInt:(Ljava/nio/ByteBuffer;)I
istore 3
start local 3 5: aload 1
invokestatic org.h2.mvstore.DataUtils.readVarLong:(Ljava/nio/ByteBuffer;)J
iload 3
invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
areturn
end local 3 6: StackMap locals:
StackMap stack:
aload 1
invokestatic org.h2.mvstore.DataUtils.readVarInt:(Ljava/nio/ByteBuffer;)I
istore 3
start local 3 7: aload 1
invokestatic org.h2.mvstore.DataUtils.readVarInt:(Ljava/nio/ByteBuffer;)I
istore 4
start local 4 8: iload 4
invokestatic org.h2.util.Utils.newBytes:(I)[B
astore 5
start local 5 9: aload 1
aload 5
invokevirtual java.nio.ByteBuffer.get:([B)Ljava/nio/ByteBuffer;
pop
10: new java.math.BigInteger
dup
aload 5
invokespecial java.math.BigInteger.<init>:([B)V
astore 6
start local 6 11: new java.math.BigDecimal
dup
aload 6
iload 3
invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;I)V
areturn
end local 6 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 12 0 this Lorg/h2/mvstore/type/ObjectDataType$BigDecimalType;
0 12 1 buff Ljava/nio/ByteBuffer;
0 12 2 tag I
5 6 3 scale I
7 12 3 scale I
8 12 4 len I
9 12 5 bytes [B
11 12 6 b Ljava/math/BigInteger;
MethodParameters:
Name Flags
buff
tag
}
SourceFile: "ObjectDataType.java"
NestHost: org.h2.mvstore.type.ObjectDataType
InnerClasses:
abstract AutoDetectDataType = org.h2.mvstore.type.ObjectDataType$AutoDetectDataType of org.h2.mvstore.type.ObjectDataType
BigDecimalType = org.h2.mvstore.type.ObjectDataType$BigDecimalType of org.h2.mvstore.type.ObjectDataType