summaryrefslogtreecommitdiffstatshomepage
path: root/py
diff options
context:
space:
mode:
authorPaul Sokolovsky <pfalcon@users.sourceforge.net>2015-11-22 22:03:18 +0200
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2015-11-22 22:03:18 +0200
commitb3be4710aaa53429c78d03a86e9be909dca923c0 (patch)
treea692aa4b9128190a79a49b4ad73edf3d7daf9f4f /py
parentb56c635d64612975a2784fdc1424c41ec02f7272 (diff)
downloadmicropython-b3be4710aaa53429c78d03a86e9be909dca923c0.tar.gz
micropython-b3be4710aaa53429c78d03a86e9be909dca923c0.zip
py/mpz: Normalize (remove leading zeros) xor operation result.
Diffstat (limited to 'py')
-rw-r--r--py/mpz.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/py/mpz.c b/py/mpz.c
index e0475d60a1..2a4fb4659d 100644
--- a/py/mpz.c
+++ b/py/mpz.c
@@ -285,7 +285,11 @@ STATIC mp_uint_t mpn_xor(mpz_dig_t *idig, const mpz_dig_t *jdig, mp_uint_t jlen,
*idig = *jdig;
}
- return idig - oidig;
+ // remove trailing zeros
+ for (--idig; idig >= oidig && *idig == 0; --idig) {
+ }
+
+ return idig + 1 - oidig;
}
/* computes i = i * d1 + d2