X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/catacomb/blobdiff_plain/b1182cd3f0e7369aec459444949ee504929e89c4..b67c17c38e660bbf6f68e23f27af5a974a3b08ac:/math/ec-exp.h diff --git a/math/ec-exp.h b/math/ec-exp.h index 6cad7537..b393d7ec 100644 --- a/math/ec-exp.h +++ b/math/ec-exp.h @@ -37,9 +37,13 @@ #define EXP_TYPE ec #define EXP_COPY(d, p) do { \ - (d).x = MP_COPY((p).x); \ - (d).y = MP_COPY((p).y); \ - (d).z = (p).z ? MP_COPY((p).z) : MP_NEW; \ + if (EC_ATINF(&(p))) \ + (d).x = (d).y = (d).z = MP_NEW; \ + else { \ + (d).x = MP_COPY((p).x); \ + (d).y = MP_COPY((p).y); \ + (d).z = (p).z ? MP_COPY((p).z) : MP_NEW; \ + } \ } while (0) #define EXP_DROP(x) EC_DESTROY(&(x))