X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb-python/blobdiff_plain/f76230157bd427829e49628de37d53f9c8ae7842..dc55f697f51c4e66ac8c7fd4cb8917afc1f34d6a:/ec.c diff --git a/ec.c b/ec.c index 459c272..9535240 100644 --- a/ec.c +++ b/ec.c @@ -186,7 +186,11 @@ static PyObject *ecpt_pymul(PyObject *x, PyObject *y) ec zz = EC_INIT; if (ECPT_PYCHECK(x)) { PyObject *t; t = x; x = y; y = t; } - if (!ECPT_PYCHECK(y) || (xx = tomp(x)) == 0) RETURN_NOTIMPL; + if (!ECPT_PYCHECK(y)) RETURN_NOTIMPL; + if (FE_PYCHECK(x) && FE_F(x)->ops->ty == FTY_PRIME) + xx = F_OUT(FE_F(x), MP_NEW, FE_X(x)); + else if ((xx = implicitmp(x)) == 0) + RETURN_NOTIMPL; ec_imul(ECPT_C(y), &zz, ECPT_P(y), xx); MP_DROP(xx); return (ecpt_pywrap(ECPT_COBJ(y), &zz));