| ... | ... | @@ -88,8 +88,11 @@ static void to_twos_complement(BigInt *dest, const BigInt *op, size_t bit_count) |
| 88 | 88 | size_t digits_to_copy = bit_count / 64; |
| 89 | 89 | size_t leftover_bits = bit_count % 64; |
| 90 | 90 | dest->digit_count = digits_to_copy + ((leftover_bits == 0) ? 0 : 1); |
| 91 | | if (dest->digit_count == 1 && leftover_bits == 0) { |
| 91 | if (dest->digit_count == 1) { |
| 92 | 92 | dest->data.digit = op_digits[0]; |
| 93 | if (leftover_bits != 0) { |
| 94 | dest->data.digit &= (1ULL << leftover_bits) - 1; |
| 95 | } |
| 93 | 96 | if (dest->data.digit == 0) dest->digit_count = 0; |
| 94 | 97 | return; |
| 95 | 98 | } |