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) {
16831683 bigint_init_unsigned(x, 1);
16841684 return;
16851685 }
1686
1687 if (x->digit_count == 1 && x->data.digit != UINT64_MAX) {
1688 x->data.digit += 1;
1689 return;
1686
1687 if (x->digit_count == 1) {
1688 if (x->is_negative) {
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 }
16901700 }
16911701
16921702 BigInt copy;