public final class com.fasterxml.jackson.core.io.BigDecimalParser
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.fasterxml.jackson.core.io.BigDecimalParser
super_class: java.lang.Object
{
private final char[] chars;
descriptor: [C
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
void <init>(char[]);
descriptor: ([C)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
aload 1
putfield com.fasterxml.jackson.core.io.BigDecimalParser.chars:[C
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/fasterxml/jackson/core/io/BigDecimalParser;
0 3 1 chars [C
MethodParameters:
Name Flags
chars
public static java.math.BigDecimal parse(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/math/BigDecimal;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.String.toCharArray:()[C
invokestatic com.fasterxml.jackson.core.io.BigDecimalParser.parse:([C)Ljava/math/BigDecimal;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 valueStr Ljava/lang/String;
MethodParameters:
Name Flags
valueStr
public static java.math.BigDecimal parse(char[], int, int);
descriptor: ([CII)Ljava/math/BigDecimal;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iload 1
ifgt 1
iload 2
aload 0
arraylength
if_icmpeq 2
1: StackMap locals:
StackMap stack:
aload 0
iload 1
iload 1
iload 2
iadd
invokestatic java.util.Arrays.copyOfRange:([CII)[C
astore 0
2: StackMap locals:
StackMap stack:
aload 0
invokestatic com.fasterxml.jackson.core.io.BigDecimalParser.parse:([C)Ljava/math/BigDecimal;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 chars [C
0 3 1 off I
0 3 2 len I
MethodParameters:
Name Flags
chars
off
len
public static java.math.BigDecimal parse(char[]);
descriptor: ([C)Ljava/math/BigDecimal;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=4, args_size=1
start local 0 0: aload 0
arraylength
istore 1
start local 1 1: iload 1
sipush 500
if_icmpge 4
2: new java.math.BigDecimal
dup
aload 0
invokespecial java.math.BigDecimal.<init>:([C)V
3: areturn
4: StackMap locals: int
StackMap stack:
new com.fasterxml.jackson.core.io.BigDecimalParser
dup
aload 0
invokespecial com.fasterxml.jackson.core.io.BigDecimalParser.<init>:([C)V
iload 1
bipush 10
idiv
invokevirtual com.fasterxml.jackson.core.io.BigDecimalParser.parseBigDecimal:(I)Ljava/math/BigDecimal;
5: areturn
6: StackMap locals:
StackMap stack: java.lang.NumberFormatException
astore 2
start local 2 7: aload 2
invokevirtual java.lang.NumberFormatException.getMessage:()Ljava/lang/String;
astore 3
start local 3 8: aload 3
ifnonnull 10
9: ldc "Not a valid number representation"
astore 3
10: StackMap locals: java.lang.NumberFormatException java.lang.String
StackMap stack:
new java.lang.NumberFormatException
dup
new java.lang.StringBuilder
dup
ldc "Value \""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
new java.lang.String
dup
aload 0
invokespecial java.lang.String.<init>:([C)V
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
11: ldc "\" can not be represented as `java.math.BigDecimal`, reason: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
12: invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 chars [C
1 13 1 len I
7 13 2 e Ljava/lang/NumberFormatException;
8 13 3 desc Ljava/lang/String;
Exception table:
from to target type
1 3 6 Class java.lang.NumberFormatException
4 5 6 Class java.lang.NumberFormatException
MethodParameters:
Name Flags
chars
private java.math.BigDecimal parseBigDecimal(int);
descriptor: (I)Ljava/math/BigDecimal;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=17, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: iconst_0
istore 3
start local 3 2: iconst_0
istore 4
start local 4 3: iconst_0
istore 5
start local 5 4: iconst_m1
istore 6
start local 6 5: iconst_m1
istore 7
start local 7 6: iconst_0
istore 8
start local 8 7: aload 0
getfield com.fasterxml.jackson.core.io.BigDecimalParser.chars:[C
arraylength
istore 9
start local 9 8: iconst_0
istore 10
start local 10 9: goto 44
10: StackMap locals: com.fasterxml.jackson.core.io.BigDecimalParser int int int int int int int int int int
StackMap stack:
aload 0
getfield com.fasterxml.jackson.core.io.BigDecimalParser.chars:[C
iload 10
caload
istore 11
start local 11 11: iload 11
lookupswitch { // 5
43: 12
45: 22
46: 37
69: 33
101: 33
default: 41
}
12: StackMap locals: int
StackMap stack:
iload 6
iflt 17
13: iload 3
ifeq 15
14: new java.lang.NumberFormatException
dup
ldc "Multiple signs in exponent"
invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
athrow
15: StackMap locals:
StackMap stack:
iconst_1
istore 3
16: goto 43
17: StackMap locals:
StackMap stack:
iload 2
ifeq 19
18: new java.lang.NumberFormatException
dup
ldc "Multiple signs in number"
invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
athrow
19: StackMap locals:
StackMap stack:
iconst_1
istore 2
20: iload 10
iconst_1
iadd
istore 5
21: goto 43
22: StackMap locals:
StackMap stack:
iload 6
iflt 27
23: iload 3
ifeq 25
24: new java.lang.NumberFormatException
dup
ldc "Multiple signs in exponent"
invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
athrow
25: StackMap locals:
StackMap stack:
iconst_1
istore 3
26: goto 43
27: StackMap locals:
StackMap stack:
iload 2
ifeq 29
28: new java.lang.NumberFormatException
dup
ldc "Multiple signs in number"
invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
athrow
29: StackMap locals:
StackMap stack:
iconst_1
istore 2
30: iconst_1
istore 4
31: iload 10
iconst_1
iadd
istore 5
32: goto 43
33: StackMap locals:
StackMap stack:
iload 6
iflt 35
34: new java.lang.NumberFormatException
dup
ldc "Multiple exponent markers"
invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
athrow
35: StackMap locals:
StackMap stack:
iload 10
istore 6
36: goto 43
37: StackMap locals:
StackMap stack:
iload 7
iflt 39
38: new java.lang.NumberFormatException
dup
ldc "Multiple decimal points"
invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
athrow
39: StackMap locals:
StackMap stack:
iload 10
istore 7
40: goto 43
41: StackMap locals:
StackMap stack:
iload 7
iflt 43
iload 6
iconst_m1
if_icmpne 43
42: iinc 8 1
end local 11 43: StackMap locals:
StackMap stack:
iinc 10 1
StackMap locals:
StackMap stack:
44: iload 10
iload 9
if_icmplt 10
end local 10 45: iconst_0
istore 11
start local 11 46: iload 6
iflt 52
47: iload 6
istore 10
start local 10 48: new java.lang.String
dup
aload 0
getfield com.fasterxml.jackson.core.io.BigDecimalParser.chars:[C
iload 6
iconst_1
iadd
iload 9
iload 6
isub
iconst_1
isub
invokespecial java.lang.String.<init>:([CII)V
astore 12
start local 12 49: aload 12
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
istore 11
50: aload 0
iload 8
iload 11
i2l
invokevirtual com.fasterxml.jackson.core.io.BigDecimalParser.adjustScale:(IJ)I
istore 8
end local 12 51: goto 53
end local 10 52: StackMap locals: com.fasterxml.jackson.core.io.BigDecimalParser int int int int int int int int int top int
StackMap stack:
iload 9
istore 10
start local 10 53: StackMap locals: com.fasterxml.jackson.core.io.BigDecimalParser int int int int int int int int int int int
StackMap stack:
iload 7
iflt 60
54: iload 7
iload 5
isub
istore 13
start local 13 55: aload 0
iload 5
iload 13
iload 11
iload 1
invokevirtual com.fasterxml.jackson.core.io.BigDecimalParser.toBigDecimalRec:(IIII)Ljava/math/BigDecimal;
astore 14
start local 14 56: iload 10
iload 7
isub
iconst_1
isub
istore 15
start local 15 57: aload 0
iload 7
iconst_1
iadd
iload 15
iload 11
iload 15
isub
iload 1
invokevirtual com.fasterxml.jackson.core.io.BigDecimalParser.toBigDecimalRec:(IIII)Ljava/math/BigDecimal;
astore 16
start local 16 58: aload 14
aload 16
invokevirtual java.math.BigDecimal.add:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
astore 12
end local 16 end local 15 end local 14 end local 13 start local 12 59: goto 61
end local 12 60: StackMap locals:
StackMap stack:
aload 0
iload 5
iload 10
iload 5
isub
iload 11
iload 1
invokevirtual com.fasterxml.jackson.core.io.BigDecimalParser.toBigDecimalRec:(IIII)Ljava/math/BigDecimal;
astore 12
start local 12 61: StackMap locals: java.math.BigDecimal
StackMap stack:
iload 8
ifeq 63
62: aload 12
iload 8
invokevirtual java.math.BigDecimal.setScale:(I)Ljava/math/BigDecimal;
astore 12
63: StackMap locals:
StackMap stack:
iload 4
ifeq 65
64: aload 12
invokevirtual java.math.BigDecimal.negate:()Ljava/math/BigDecimal;
astore 12
65: StackMap locals:
StackMap stack:
aload 12
areturn
end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 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 66 0 this Lcom/fasterxml/jackson/core/io/BigDecimalParser;
0 66 1 splitLen I
1 66 2 numHasSign Z
2 66 3 expHasSign Z
3 66 4 neg Z
4 66 5 numIdx I
5 66 6 expIdx I
6 66 7 dotIdx I
7 66 8 scale I
8 66 9 len I
9 45 10 i I
11 43 11 c C
48 52 10 numEndIdx I
53 66 10 numEndIdx I
46 66 11 exp I
49 51 12 expStr Ljava/lang/String;
59 60 12 res Ljava/math/BigDecimal;
61 66 12 res Ljava/math/BigDecimal;
55 59 13 leftLen I
56 59 14 left Ljava/math/BigDecimal;
57 59 15 rightLen I
58 59 16 right Ljava/math/BigDecimal;
MethodParameters:
Name Flags
splitLen final
private int adjustScale(int, long);
descriptor: (IJ)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 2 0: iload 1
i2l
lload 2
lsub
lstore 4
start local 4 1: lload 4
ldc 2147483647
lcmp
ifgt 2
lload 4
ldc -2147483648
lcmp
ifge 5
2: StackMap locals: long
StackMap stack:
new java.lang.NumberFormatException
dup
3: new java.lang.StringBuilder
dup
ldc "Scale out of range: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 4
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc " while adjusting scale "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " to exponent "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
lload 2
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
4: invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
lload 4
l2i
ireturn
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/fasterxml/jackson/core/io/BigDecimalParser;
0 6 1 scale I
0 6 2 exp J
1 6 4 adjScale J
MethodParameters:
Name Flags
scale
exp
private java.math.BigDecimal toBigDecimalRec(int, int, int, int);
descriptor: (IIII)Ljava/math/BigDecimal;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iload 2
iload 4
if_icmple 5
1: iload 2
iconst_2
idiv
istore 5
start local 5 2: aload 0
iload 1
iload 5
iload 3
iload 2
iadd
iload 5
isub
iload 4
invokevirtual com.fasterxml.jackson.core.io.BigDecimalParser.toBigDecimalRec:(IIII)Ljava/math/BigDecimal;
astore 6
start local 6 3: aload 0
iload 1
iload 5
iadd
iload 2
iload 5
isub
iload 3
iload 4
invokevirtual com.fasterxml.jackson.core.io.BigDecimalParser.toBigDecimalRec:(IIII)Ljava/math/BigDecimal;
astore 7
start local 7 4: aload 6
aload 7
invokevirtual java.math.BigDecimal.add:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
areturn
end local 7 end local 6 end local 5 5: StackMap locals:
StackMap stack:
iload 2
ifne 6
getstatic java.math.BigDecimal.ZERO:Ljava/math/BigDecimal;
goto 7
StackMap locals:
StackMap stack:
6: new java.math.BigDecimal
dup
aload 0
getfield com.fasterxml.jackson.core.io.BigDecimalParser.chars:[C
iload 1
iload 2
invokespecial java.math.BigDecimal.<init>:([CII)V
iload 3
invokevirtual java.math.BigDecimal.movePointRight:(I)Ljava/math/BigDecimal;
StackMap locals:
StackMap stack: java.math.BigDecimal
7: areturn
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/fasterxml/jackson/core/io/BigDecimalParser;
0 8 1 off I
0 8 2 len I
0 8 3 scale I
0 8 4 splitLen I
2 5 5 mid I
3 5 6 left Ljava/math/BigDecimal;
4 5 7 right Ljava/math/BigDecimal;
MethodParameters:
Name Flags
off
len
scale
splitLen
}
SourceFile: "BigDecimalParser.java"