summaryrefslogtreecommitdiff
path: root/py/mpz.c
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2014-09-10 22:10:33 +0100
committerDamien George <damien.p.george@gmail.com>2014-09-10 22:10:33 +0100
commit953074315e594f5a30f455dc6a1a67340a3e6ea7 (patch)
tree9bce234da3c55224ee5cb6edd9cfd830be3e7960 /py/mpz.c
parent6eae861685e8860e7542097ad20f69168e639a93 (diff)
py: Enable struct/binary-helper to parse q and Q sized ints.
Addresses issue #848.
Diffstat (limited to 'py/mpz.c')
-rw-r--r--py/mpz.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/py/mpz.c b/py/mpz.c
index 186229569..0599656ea 100644
--- a/py/mpz.c
+++ b/py/mpz.c
@@ -589,9 +589,9 @@ mpz_t *mpz_from_int(mp_int_t val) {
return z;
}
-mpz_t *mpz_from_ll(long long val) {
+mpz_t *mpz_from_ll(long long val, bool is_signed) {
mpz_t *z = mpz_zero();
- mpz_set_from_ll(z, val);
+ mpz_set_from_ll(z, val, is_signed);
return z;
}
@@ -668,11 +668,11 @@ void mpz_set_from_int(mpz_t *z, mp_int_t val) {
}
}
-void mpz_set_from_ll(mpz_t *z, long long val) {
+void mpz_set_from_ll(mpz_t *z, long long val, bool is_signed) {
mpz_need_dig(z, MPZ_NUM_DIG_FOR_LL);
unsigned long long uval;
- if (val < 0) {
+ if (is_signed && val < 0) {
z->neg = 1;
uval = -val;
} else {