authorgravatar for isaachier@gmail.comIsaac Hier <isaachier@gmail.com> 2018-06-21 08:14:26-04:00
committergravatar for isaachier@gmail.comIsaac Hier <isaachier@gmail.com> 2018-06-21 08:14:26-04:00
log0ab4afbf4236e6823be6b8845b7e9fa77f7c61f9
tree53f743184e563ad0353eb3d0ea65cab5a8e86712
parenteb6a8e6a3bba061c4a7fb18f53976e1fb683c3d4

Fix increment operation for bigint -1


1 files changed, 14 insertions(+), 4 deletions(-)

src/bigint.cpp+14-4
...@@ -1683,10 +1683,20 @@ void bigint_incr(BigInt *x) {...@@ -1683,10 +1683,20 @@ void bigint_incr(BigInt *x) {
1683 bigint_init_unsigned(x, 1);1683 bigint_init_unsigned(x, 1);
1684 return;1684 return;
1685 }1685 }
1686 1686
1687 if (x->digit_count == 1 && x->data.digit != UINT64_MAX) {1687 if (x->digit_count == 1) {
1688 x->data.digit += 1;1688 if (x->is_negative) {
1689 return;1689 if (x->data.digit != 0) {
1690 x->data.digit -= 1;
1691 }
1692 return;
1693 }
1694 else {
1695 if (x->data.digit != UINT64_MAX) {
1696 x->data.digit += 1;
1697 }
1698 return;
1699 }
1690 }1700 }
16911701
1692 BigInt copy;1702 BigInt copy;