File tree Expand file tree Collapse file tree 2 files changed +12
-12
lines changed
jvm/src/main/scala/com/github/plokhotnyuk/jsoniter_scala/core
native/src/main/scala/com/github/plokhotnyuk/jsoniter_scala/core Expand file tree Collapse file tree 2 files changed +12
-12
lines changed Original file line number Diff line number Diff line change @@ -3751,16 +3751,16 @@ final class JsonReader private[jsoniter_scala](
3751
3751
3752
3752
private [this ] def toZoneOffset (sb : Byte , offsetTotal : Int ): ZoneOffset = {
3753
3753
var qp = offsetTotal * 37283
3754
+ val s = sb << 29 >> 31
3754
3755
if ((qp & 0x1FF8000 ) == 0 ) { // check if offsetTotal divisible by 900
3755
- qp >>>= 25 // divide offsetTotal by 900
3756
- if (sb == '-' ) qp = - qp
3757
- var zoneOffset = zoneOffsets(qp + 72 )
3756
+ qp = ((qp >>> 25 ) ^ s) - s + 72 // divide offsetTotal by 900
3757
+ var zoneOffset = zoneOffsets(qp)
3758
3758
if (zoneOffset eq null ) {
3759
- zoneOffset = ZoneOffset .ofTotalSeconds(if (sb == '-' ) - offsetTotal else offsetTotal )
3760
- zoneOffsets(qp + 72 ) = zoneOffset
3759
+ zoneOffset = ZoneOffset .ofTotalSeconds((offsetTotal ^ s ) - s )
3760
+ zoneOffsets(qp) = zoneOffset
3761
3761
}
3762
3762
zoneOffset
3763
- } else ZoneOffset .ofTotalSeconds(if (sb == '-' ) - offsetTotal else offsetTotal )
3763
+ } else ZoneOffset .ofTotalSeconds((offsetTotal ^ s ) - s )
3764
3764
}
3765
3765
3766
3766
private [this ] def epochDay (year : Int , month : Int , day : Int ): Long =
Original file line number Diff line number Diff line change @@ -3747,16 +3747,16 @@ final class JsonReader private[jsoniter_scala](
3747
3747
3748
3748
private [this ] def toZoneOffset (sb : Byte , offsetTotal : Int ): ZoneOffset = {
3749
3749
var qp = offsetTotal * 37283
3750
+ val s = sb << 29 >> 31
3750
3751
if ((qp & 0x1FF8000 ) == 0 ) { // check if offsetTotal divisible by 900
3751
- qp >>>= 25 // divide offsetTotal by 900
3752
- if (sb == '-' ) qp = - qp
3753
- var zoneOffset = zoneOffsets(qp + 72 )
3752
+ qp = ((qp >>> 25 ) ^ s) - s + 72 // divide offsetTotal by 900
3753
+ var zoneOffset = zoneOffsets(qp)
3754
3754
if (zoneOffset eq null ) {
3755
- zoneOffset = ZoneOffset .ofTotalSeconds(if (sb == '-' ) - offsetTotal else offsetTotal )
3756
- zoneOffsets(qp + 72 ) = zoneOffset
3755
+ zoneOffset = ZoneOffset .ofTotalSeconds((offsetTotal ^ s ) - s )
3756
+ zoneOffsets(qp) = zoneOffset
3757
3757
}
3758
3758
zoneOffset
3759
- } else ZoneOffset .ofTotalSeconds(if (sb == '-' ) - offsetTotal else offsetTotal )
3759
+ } else ZoneOffset .ofTotalSeconds((offsetTotal ^ s ) - s )
3760
3760
}
3761
3761
3762
3762
private [this ] def epochDay (year : Int , month : Int , day : Int ): Long =
You can’t perform that action at this time.
0 commit comments