@@ -2453,7 +2453,7 @@ final class JsonWriter private[jsoniter_scala](
2453
2453
m2 &= 0xFFFFFFFFFFFFFL
2454
2454
e2 = - 1074
2455
2455
if (m2 < 3 ) {
2456
- m2 *= 10
2456
+ m2 = (m2 << 3 ) + (m2 << 1 )
2457
2457
e10Corr = 1
2458
2458
}
2459
2459
} else if (e2 == 972 ) illegalNumberError(x)
@@ -2467,22 +2467,22 @@ final class JsonWriter private[jsoniter_scala](
2467
2467
val g1 = gs(i)
2468
2468
val g0 = gs(i + 1 )
2469
2469
val h = (e10 * - 108853 >> 15 ) + e2 + 2
2470
- val cb = m2 << 2
2470
+ val cbh = m2 << (h + 2 )
2471
2471
val vbCorr = (m2.toInt & 0x1 ) - 1
2472
- val vb = rop(g1, g0, cb << h )
2473
- val vbl = rop(g1, g0, cb - cblCorr << h) + vbCorr
2474
- val vbr = rop(g1, g0, cb + 2 << h) - vbCorr
2472
+ val vb = rop(g1, g0, cbh )
2473
+ val vbl = rop(g1, g0, cbh - ( cblCorr << h))
2474
+ val vbr = rop(g1, g0, cbh + ( 2 << h))
2475
2475
var diff = 0
2476
2476
if (vb < 400 || {
2477
2477
m10 = vb / 40
2478
- val vb40 = m10 * 40
2479
- diff = (vbl - vb40).toInt
2480
- ((vb40 - vbr).toInt + 40 ^ diff) >= 0
2478
+ val vb40 = ( m10 << 5 ) + (m10 << 3 )
2479
+ diff = (vbl - vb40).toInt + vbCorr
2480
+ ((vb40 - vbr).toInt + vbCorr + 40 ^ diff) >= 0
2481
2481
}) {
2482
2482
m10 = vb >> 2
2483
2483
val vb4 = m10 << 2
2484
- diff = (vbl - vb4).toInt
2485
- if (((vb4 - vbr).toInt + 4 ^ diff) >= 0 ) diff = (vb.toInt & 0x3 ) + (m10.toInt & 0x1 ) - 3
2484
+ diff = (vbl - vb4).toInt + vbCorr
2485
+ if (((vb4 - vbr).toInt + vbCorr + 4 ^ diff) >= 0 ) diff = (vb.toInt & 0x3 ) + (m10.toInt & 0x1 ) - 3
2486
2486
} else e10Corr = - 1
2487
2487
m10 += ~ diff >>> 31
2488
2488
e10 -= e10Corr
0 commit comments