Skip to content

Commit e8482f5

Browse files
authored
Handle i32::MIN in Number::two_pow and Number::ten_pow (#771)
* In Number::two_pow, handle i32::MIN case * In Number::ten_pow, handle i32::MIN case
1 parent 8b844e4 commit e8482f5

1 file changed

Lines changed: 4 additions & 2 deletions

File tree

src/number.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -781,7 +781,8 @@ impl Number {
781781
if e >= 0 {
782782
Ok(two_pow_positive(e as u32))
783783
} else {
784-
let denom = two_pow_positive((-e) as u32);
784+
// Must cast to i64 before negating in case it's i32::MIN
785+
let denom = two_pow_positive((-(e as i64)) as u32);
785786
Number::from(1u64).divide(&denom)
786787
}
787788
}
@@ -790,7 +791,8 @@ impl Number {
790791
if e >= 0 {
791792
Ok(ten_pow_positive(e as u32))
792793
} else {
793-
let denom = ten_pow_positive((-e) as u32);
794+
// Must cast to i64 before negating in case it's i32::MIN
795+
let denom = ten_pow_positive((-(e as i64)) as u32);
794796
Number::from(1u64).divide(&denom)
795797
}
796798
}

0 commit comments

Comments
 (0)