Commit 0ab4afbf42

Isaac Hier <isaachier@gmail.com>
2018-06-21 14:14:26
Fix increment operation for bigint -1
1 parent eb6a8e6
Changed files (1)
src/bigint.cpp
@@ -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;