File tree 3 files changed +25
-30
lines changed
js/src/main/scala/com/github/plokhotnyuk/jsoniter_scala/core
jvm/src/main/scala/com/github/plokhotnyuk/jsoniter_scala/core
native/src/main/scala/com/github/plokhotnyuk/jsoniter_scala/core
3 files changed +25
-30
lines changed Original file line number Diff line number Diff line change @@ -2106,10 +2106,10 @@ final class JsonReader private[jsoniter_scala](
2106
2106
var b =
2107
2107
if (isToken) nextToken(head)
2108
2108
else nextByte(head)
2109
- var isPos = true
2109
+ var s = - 1
2110
2110
if (b == '-' ) {
2111
2111
b = nextByte(head)
2112
- isPos = false
2112
+ s = 0
2113
2113
}
2114
2114
if (b < '0' || b > '9' ) numberError()
2115
2115
var x = '0' - b
@@ -2132,11 +2132,10 @@ final class JsonReader private[jsoniter_scala](
2132
2132
pos += 1
2133
2133
}
2134
2134
head = pos
2135
+ x ^= s
2136
+ x -= s
2135
2137
if ((b | 0x20 ) == 'e' || b == '.' ) numberError(pos)
2136
- if (isPos) {
2137
- if (x == - 2147483648 ) intOverflowError(pos - 1 )
2138
- x = - x
2139
- }
2138
+ if ((s & x) == - 2147483648 ) intOverflowError(pos - 1 )
2140
2139
}
2141
2140
x
2142
2141
}
Original file line number Diff line number Diff line change @@ -2068,10 +2068,10 @@ final class JsonReader private[jsoniter_scala](
2068
2068
var b =
2069
2069
if (isToken) nextToken(head)
2070
2070
else nextByte(head)
2071
- var isPos = true
2071
+ var s = - 1
2072
2072
if (b == '-' ) {
2073
2073
b = nextByte(head)
2074
- isPos = false
2074
+ s = 0
2075
2075
}
2076
2076
if (b < '0' || b > '9' ) numberError()
2077
2077
var x = '0' - b
@@ -2094,11 +2094,10 @@ final class JsonReader private[jsoniter_scala](
2094
2094
pos += 1
2095
2095
}
2096
2096
head = pos
2097
+ x ^= s
2098
+ x -= s
2097
2099
if ((b | 0x20 ) == 'e' || b == '.' ) numberError(pos)
2098
- if (isPos) {
2099
- if (x == - 2147483648 ) intOverflowError(pos - 1 )
2100
- x = - x
2101
- }
2100
+ if ((s & x) == - 2147483648 ) intOverflowError(pos - 1 )
2102
2101
}
2103
2102
x
2104
2103
}
@@ -2107,10 +2106,10 @@ final class JsonReader private[jsoniter_scala](
2107
2106
var b =
2108
2107
if (isToken) nextToken(head)
2109
2108
else nextByte(head)
2110
- var isPos = true
2109
+ var s = - 1L
2111
2110
if (b == '-' ) {
2112
2111
b = nextByte(head)
2113
- isPos = false
2112
+ s = 0L
2114
2113
}
2115
2114
if (b < '0' || b > '9' ) numberError()
2116
2115
var x = ('0' - b).toLong
@@ -2151,11 +2150,10 @@ final class JsonReader private[jsoniter_scala](
2151
2150
pos += 1
2152
2151
}
2153
2152
head = pos
2153
+ x ^= s
2154
+ x -= s
2154
2155
if ((b | 0x20 ) == 'e' || b == '.' ) numberError(pos)
2155
- if (isPos) {
2156
- if (x == - 9223372036854775808L ) longOverflowError(pos - 1 )
2157
- x = - x
2158
- }
2156
+ if ((s & x) == - 9223372036854775808L ) longOverflowError(pos - 1 )
2159
2157
}
2160
2158
x
2161
2159
}
Original file line number Diff line number Diff line change @@ -2068,10 +2068,10 @@ final class JsonReader private[jsoniter_scala](
2068
2068
var b =
2069
2069
if (isToken) nextToken(head)
2070
2070
else nextByte(head)
2071
- var isPos = true
2071
+ var s = - 1
2072
2072
if (b == '-' ) {
2073
2073
b = nextByte(head)
2074
- isPos = false
2074
+ s = 0
2075
2075
}
2076
2076
if (b < '0' || b > '9' ) numberError()
2077
2077
var x = '0' - b
@@ -2094,11 +2094,10 @@ final class JsonReader private[jsoniter_scala](
2094
2094
pos += 1
2095
2095
}
2096
2096
head = pos
2097
+ x ^= s
2098
+ x -= s
2097
2099
if ((b | 0x20 ) == 'e' || b == '.' ) numberError(pos)
2098
- if (isPos) {
2099
- if (x == - 2147483648 ) intOverflowError(pos - 1 )
2100
- x = - x
2101
- }
2100
+ if ((s & x) == - 2147483648 ) intOverflowError(pos - 1 )
2102
2101
}
2103
2102
x
2104
2103
}
@@ -2107,10 +2106,10 @@ final class JsonReader private[jsoniter_scala](
2107
2106
var b =
2108
2107
if (isToken) nextToken(head)
2109
2108
else nextByte(head)
2110
- var isPos = true
2109
+ var s = - 1L
2111
2110
if (b == '-' ) {
2112
2111
b = nextByte(head)
2113
- isPos = false
2112
+ s = 0L
2114
2113
}
2115
2114
if (b < '0' || b > '9' ) numberError()
2116
2115
var x = ('0' - b).toLong
@@ -2151,11 +2150,10 @@ final class JsonReader private[jsoniter_scala](
2151
2150
pos += 1
2152
2151
}
2153
2152
head = pos
2153
+ x ^= s
2154
+ x -= s
2154
2155
if ((b | 0x20 ) == 'e' || b == '.' ) numberError(pos)
2155
- if (isPos) {
2156
- if (x == - 9223372036854775808L ) longOverflowError(pos - 1 )
2157
- x = - x
2158
- }
2156
+ if ((s & x) == - 9223372036854775808L ) longOverflowError(pos - 1 )
2159
2157
}
2160
2158
x
2161
2159
}
You can’t perform that action at this time.
0 commit comments