diff options
author | Andreas Grois <andi@grois.info> | 2022-10-24 09:12:19 +0200 |
---|---|---|
committer | Andreas Grois <andi@grois.info> | 2022-10-24 09:12:19 +0200 |
commit | 85dd4036bab59f7d56c221df15d37485fd7e42de (patch) | |
tree | af7c135ae98dbe2359e2e138e0234fa881063390 | |
parent | 1f57846664b97f0cb630bf5fee13dfbc66f7c77a (diff) | |
parent | 6b36d6396915181d38598928e35a20cf2308c5aa (diff) |
Merge branch 'main' into feature/heap-allocation-free-base-conversion
-rw-r--r-- | src/passwordmaker/base_conversion/iterative_conversion_impl/mod.rs | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/passwordmaker/base_conversion/iterative_conversion_impl/mod.rs b/src/passwordmaker/base_conversion/iterative_conversion_impl/mod.rs index 5397f03..96ca497 100644 --- a/src/passwordmaker/base_conversion/iterative_conversion_impl/mod.rs +++ b/src/passwordmaker/base_conversion/iterative_conversion_impl/mod.rs @@ -300,7 +300,7 @@ macro_rules! make_div_assign_with_remainder { debug_assert!((<$t_long>::MAX >> 32) as u128 >= <$t_divisor>::MAX as u128); let divisor = *rhs as $t_long; - let remainder = self.0.iter_mut().fold(0 as $t_long,|carry, current| { + let remainder = self.0.iter_mut().skip_while(|x| **x == 0).fold(0 as $t_long,|carry, current| { debug_assert_eq!(carry, carry & (<$t_divisor>::MAX as $t_long)); //carry has to be lower than divisor, and divisor is $t_divisor. let carry_shifted = carry << 32; let dividend = (carry_shifted) | (*current as $t_long); |