| ... | @@ -1271,6 +1271,12 @@ void bigint_and(BigInt *dest, const BigInt *op1, const BigInt *op2) { | ... | @@ -1271,6 +1271,12 @@ void bigint_and(BigInt *dest, const BigInt *op1, const BigInt *op2) { |
| 1271 | } | 1271 | } |
| 1272 | | 1272 | |
| 1273 | void bigint_xor(BigInt *dest, const BigInt *op1, const BigInt *op2) { | 1273 | void bigint_xor(BigInt *dest, const BigInt *op1, const BigInt *op2) { |
| | 1274 | if (op1->digit_count == 0) { |
| | 1275 | return bigint_init_bigint(dest, op2); |
| | 1276 | } |
| | 1277 | if (op2->digit_count == 0) { |
| | 1278 | return bigint_init_bigint(dest, op1); |
| | 1279 | } |
| 1274 | if (op1->is_negative || op2->is_negative) { | 1280 | if (op1->is_negative || op2->is_negative) { |
| 1275 | // TODO this code path is untested | 1281 | // TODO this code path is untested |
| 1276 | size_t big_bit_count = max(bigint_bits_needed(op1), bigint_bits_needed(op2)); | 1282 | size_t big_bit_count = max(bigint_bits_needed(op1), bigint_bits_needed(op2)); |