Skip to content

Commit be60690

Browse files
committed
fix: numberparse
1 parent 68691ad commit be60690

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

src/numberparse.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -129,14 +129,14 @@ pub enum Number {
129129
}
130130

131131
#[cfg_attr(not(feature = "no-inline"), inline)]
132-
#[cfg(target_arch = "aarch64")]
132+
//#[cfg(target_arch = "aarch64")]
133133
fn parse_eight_digits_unrolled(chars: &[u8]) -> u32 {
134134
let val: u64 = unsafe { *(chars.as_ptr() as *const u64) };
135135
// memcpy(&val, chars, sizeof(u64));
136-
let val = (val & 0x0F0F0F0F0F0F0F0F) * 2561 >> 8;
137-
let val = (val & 0x00FF00FF00FF00FF) * 6553601 >> 16;
136+
let val = (val & 0x0F0F0F0F0F0F0F0F).wrapping_mul(2561) >> 8;
137+
let val = (val & 0x00FF00FF00FF00FF).wrapping_mul(6553601) >> 16;
138138

139-
return ((val & 0x0000FFFF0000FFFF) * 42949672960001 >> 32) as u32;
139+
return ((val & 0x0000FFFF0000FFFF).wrapping_mul(42949672960001) >> 32) as u32;
140140
}
141141

142142
impl<'de> Deserializer<'de> {

0 commit comments

Comments
 (0)