commit | 8d427b7ab79d1d45d6aef2f0bbb73c65373247df | [log] [tgz] |
---|---|---|
author | David Steinberg <david.steinberg.dev@gmail.com> | Tue Jan 13 15:20:32 2015 +0000 |
committer | Damien George <damien.p.george@gmail.com> | Sat Jan 24 20:54:28 2015 +0000 |
tree | 4cda22d9d95a436a5eca4c08569e16f19870311c | |
parent | c585ad1020cf81cb277ecce77952f9c896ba7bbc [diff] |
py: Fix issue in mpz_set_from_float() when mp_int_t is larger than float
diff --git a/py/mpz.c b/py/mpz.c index 47cbf5d..c0a3d4b 100644 --- a/py/mpz.c +++ b/py/mpz.c
@@ -747,10 +747,16 @@ z->dig[dig_ind++] = (frc << shft) & DIG_MASK; frc >>= DIG_SIZE - shft; } +#if DIG_SIZE < (MP_FLOAT_FRAC_BITS + 1) while (dig_ind != dig_cnt) { z->dig[dig_ind++] = frc & DIG_MASK; frc >>= DIG_SIZE; } +#else + if (dig_ind != dig_cnt) { + z->dig[dig_ind] = frc; + } +#endif } } }