Skip to content

Commit 98a3230

Browse files
committed
Apply changes proposed in the review
1 parent 31b7181 commit 98a3230

File tree

1 file changed

+33
-33
lines changed

1 file changed

+33
-33
lines changed

library/core/src/fmt/num.rs

+33-33
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,7 @@ macro_rules! impl_Exp {
345345

346346
// decode 2 chars at a time
347347
while n >= 100 {
348-
let d1 = ((n % 100) << 1) as usize;
348+
let d1 = ((n % 100) as usize) << 1;
349349
curr -= 2;
350350
// SAFETY: `d1 <= 198`, so we can copy from `lut_ptr[d1..d1 + 2]` since
351351
// `DEC_DIGITS_LUT` has a length of 200.
@@ -494,73 +494,73 @@ fn parse_u64_into<const N: usize>(mut n: u64, buf: &mut [MaybeUninit<u8>; N], cu
494494
n /= 1e16 as u64;
495495

496496
// Some of these are nops but it looks more elegant this way.
497-
let d1 = (((to_parse / 1e14 as u64) % 100) << 1) as usize;
498-
let d2 = (((to_parse / 1e12 as u64) % 100) << 1) as usize;
499-
let d3 = (((to_parse / 1e10 as u64) % 100) << 1) as usize;
500-
let d4 = (((to_parse / 1e8 as u64) % 100) << 1) as usize;
501-
let d5 = (((to_parse / 1e6 as u64) % 100) << 1) as usize;
502-
let d6 = (((to_parse / 1e4 as u64) % 100) << 1) as usize;
503-
let d7 = (((to_parse / 1e2 as u64) % 100) << 1) as usize;
504-
let d8 = (((to_parse / 1e0 as u64) % 100) << 1) as usize;
497+
let d1 = ((to_parse / 1e14 as u64) % 100) << 1;
498+
let d2 = ((to_parse / 1e12 as u64) % 100) << 1;
499+
let d3 = ((to_parse / 1e10 as u64) % 100) << 1;
500+
let d4 = ((to_parse / 1e8 as u64) % 100) << 1;
501+
let d5 = ((to_parse / 1e6 as u64) % 100) << 1;
502+
let d6 = ((to_parse / 1e4 as u64) % 100) << 1;
503+
let d7 = ((to_parse / 1e2 as u64) % 100) << 1;
504+
let d8 = ((to_parse / 1e0 as u64) % 100) << 1;
505505

506506
*curr -= 16;
507507

508-
ptr::copy_nonoverlapping(lut_ptr.add(d1), buf_ptr.add(*curr + 0), 2);
509-
ptr::copy_nonoverlapping(lut_ptr.add(d2), buf_ptr.add(*curr + 2), 2);
510-
ptr::copy_nonoverlapping(lut_ptr.add(d3), buf_ptr.add(*curr + 4), 2);
511-
ptr::copy_nonoverlapping(lut_ptr.add(d4), buf_ptr.add(*curr + 6), 2);
512-
ptr::copy_nonoverlapping(lut_ptr.add(d5), buf_ptr.add(*curr + 8), 2);
513-
ptr::copy_nonoverlapping(lut_ptr.add(d6), buf_ptr.add(*curr + 10), 2);
514-
ptr::copy_nonoverlapping(lut_ptr.add(d7), buf_ptr.add(*curr + 12), 2);
515-
ptr::copy_nonoverlapping(lut_ptr.add(d8), buf_ptr.add(*curr + 14), 2);
508+
ptr::copy_nonoverlapping(lut_ptr.add(d1 as usize), buf_ptr.add(*curr + 0), 2);
509+
ptr::copy_nonoverlapping(lut_ptr.add(d2 as usize), buf_ptr.add(*curr + 2), 2);
510+
ptr::copy_nonoverlapping(lut_ptr.add(d3 as usize), buf_ptr.add(*curr + 4), 2);
511+
ptr::copy_nonoverlapping(lut_ptr.add(d4 as usize), buf_ptr.add(*curr + 6), 2);
512+
ptr::copy_nonoverlapping(lut_ptr.add(d5 as usize), buf_ptr.add(*curr + 8), 2);
513+
ptr::copy_nonoverlapping(lut_ptr.add(d6 as usize), buf_ptr.add(*curr + 10), 2);
514+
ptr::copy_nonoverlapping(lut_ptr.add(d7 as usize), buf_ptr.add(*curr + 12), 2);
515+
ptr::copy_nonoverlapping(lut_ptr.add(d8 as usize), buf_ptr.add(*curr + 14), 2);
516516
}
517517
if n >= 1e8 as u64 {
518518
let to_parse = n % 1e8 as u64;
519519
n /= 1e8 as u64;
520520

521521
// Some of these are nops but it looks more elegant this way.
522-
let d1 = (((to_parse / 1e6 as u64) % 100) << 1) as usize;
523-
let d2 = (((to_parse / 1e4 as u64) % 100) << 1) as usize;
524-
let d3 = (((to_parse / 1e2 as u64) % 100) << 1) as usize;
525-
let d4 = (((to_parse / 1e0 as u64) % 100) << 1) as usize;
522+
let d1 = ((to_parse / 1e6 as u64) % 100) << 1;
523+
let d2 = ((to_parse / 1e4 as u64) % 100) << 1;
524+
let d3 = ((to_parse / 1e2 as u64) % 100) << 1;
525+
let d4 = ((to_parse / 1e0 as u64) % 100) << 1;
526526
*curr -= 8;
527527

528-
ptr::copy_nonoverlapping(lut_ptr.add(d1), buf_ptr.add(*curr + 0), 2);
529-
ptr::copy_nonoverlapping(lut_ptr.add(d2), buf_ptr.add(*curr + 2), 2);
530-
ptr::copy_nonoverlapping(lut_ptr.add(d3), buf_ptr.add(*curr + 4), 2);
531-
ptr::copy_nonoverlapping(lut_ptr.add(d4), buf_ptr.add(*curr + 6), 2);
528+
ptr::copy_nonoverlapping(lut_ptr.add(d1 as usize), buf_ptr.add(*curr + 0), 2);
529+
ptr::copy_nonoverlapping(lut_ptr.add(d2 as usize), buf_ptr.add(*curr + 2), 2);
530+
ptr::copy_nonoverlapping(lut_ptr.add(d3 as usize), buf_ptr.add(*curr + 4), 2);
531+
ptr::copy_nonoverlapping(lut_ptr.add(d4 as usize), buf_ptr.add(*curr + 6), 2);
532532
}
533533
// `n` < 1e8 < (1 << 32)
534534
let mut n = n as u32;
535535
if n >= 1e4 as u32 {
536536
let to_parse = n % 1e4 as u32;
537537
n /= 1e4 as u32;
538538

539-
let d1 = ((to_parse / 100) << 1) as usize;
540-
let d2 = ((to_parse % 100) << 1) as usize;
539+
let d1 = (to_parse / 100) << 1;
540+
let d2 = (to_parse % 100) << 1;
541541
*curr -= 4;
542542

543-
ptr::copy_nonoverlapping(lut_ptr.add(d1), buf_ptr.add(*curr + 0), 2);
544-
ptr::copy_nonoverlapping(lut_ptr.add(d2), buf_ptr.add(*curr + 2), 2);
543+
ptr::copy_nonoverlapping(lut_ptr.add(d1 as usize), buf_ptr.add(*curr + 0), 2);
544+
ptr::copy_nonoverlapping(lut_ptr.add(d2 as usize), buf_ptr.add(*curr + 2), 2);
545545
}
546546

547547
// `n` < 1e4 < (1 << 16)
548548
let mut n = n as u16;
549549
if n >= 100 {
550-
let d1 = ((n % 100) << 1) as usize;
550+
let d1 = (n % 100) << 1;
551551
n /= 100;
552552
*curr -= 2;
553-
ptr::copy_nonoverlapping(lut_ptr.add(d1), buf_ptr.add(*curr), 2);
553+
ptr::copy_nonoverlapping(lut_ptr.add(d1 as usize), buf_ptr.add(*curr), 2);
554554
}
555555

556556
// decode last 1 or 2 chars
557557
if n < 10 {
558558
*curr -= 1;
559559
*buf_ptr.add(*curr) = (n as u8) + b'0';
560560
} else {
561-
let d1 = (n << 1) as usize;
561+
let d1 = n << 1;
562562
*curr -= 2;
563-
ptr::copy_nonoverlapping(lut_ptr.add(d1), buf_ptr.add(*curr), 2);
563+
ptr::copy_nonoverlapping(lut_ptr.add(d1 as usize), buf_ptr.add(*curr), 2);
564564
}
565565
}
566566
}

0 commit comments

Comments
 (0)