Fix increment operation for bigint -1

This commit is contained in:
Isaac Hier 2018-06-21 08:14:26 -04:00
parent eb6a8e6a3b
commit 0ab4afbf42

View File

@ -1683,10 +1683,20 @@ void bigint_incr(BigInt *x) {
bigint_init_unsigned(x, 1);
return;
}
if (x->digit_count == 1 && x->data.digit != UINT64_MAX) {
x->data.digit += 1;
return;
if (x->digit_count == 1) {
if (x->is_negative) {
if (x->data.digit != 0) {
x->data.digit -= 1;
}
return;
}
else {
if (x->data.digit != UINT64_MAX) {
x->data.digit += 1;
}
return;
}
}
BigInt copy;