X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb-python/blobdiff_plain/0040152918b6695e73807fd479024db8a27a83fb..7008bdd781f60ed3fec4cf3bf3945fa4bca2a751:/pgen.c diff --git a/pgen.c b/pgen.c index 4758c78..081d8e5 100644 --- a/pgen.c +++ b/pgen.c @@ -120,9 +120,8 @@ static PyObject *pfilt_pyint(PyObject *me) long l; PyObject *rc = 0; - if (mp_tolong_checked(PFILT_F(me)->m, &l)) goto end; - rc = PyInt_FromLong(l); -end: + if (!mp_tolong_checked(PFILT_F(me)->m, &l, 0)) rc = PyInt_FromLong(l); + else rc = mp_topylong(PFILT_F(me)->m); return (rc); } @@ -197,7 +196,7 @@ static PyNumberMethods pfilt_pynumber = { static PyTypeObject pfilt_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ - "catacomb.PrimeFilter", /* @tp_name@ */ + "PrimeFilter", /* @tp_name@ */ sizeof(pfilt_pyobj), /* @tp_basicsize@ */ 0, /* @tp_itemsize@ */ @@ -330,7 +329,7 @@ static PyMethodDef rabin_pymethods[] = { static PyTypeObject rabin_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ - "catacomb.RabinMiller", /* @tp_name@ */ + "RabinMiller", /* @tp_name@ */ sizeof(rabin_pyobj), /* @tp_basicsize@ */ 0, /* @tp_itemsize@ */ @@ -425,6 +424,7 @@ static int peset_x(PyObject *me, PyObject *xobj, void *hunoz) mp *x = 0; pgen_event *ev = PGEVENT_EV(me); int rc = -1; + if (!x) NIERR("__del__"); PGEVENT_CHECK(me); if ((x = getmp(xobj)) == 0) goto end; mp_drop(ev->m); @@ -448,7 +448,7 @@ static PyGetSetDef pgevent_pygetset[] = { static PyTypeObject pgevent_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ - "catacomb.PrimeGenEvent", /* @tp_name@ */ + "PrimeGenEvent", /* @tp_name@ */ sizeof(pgevent_pyobj), /* @tp_basicsize@ */ 0, /* @tp_itemsize@ */ @@ -617,19 +617,19 @@ static PyObject *pgev_stdev(pgen_proc *proc) static PyMethodDef pgev_pymethods[] = { #define METHNAME(name) pgmeth_##name - METH (pg_abort, "E.pg_abort() -> PGRC -- prime generation aborted") - METH (pg_done, "E.pg_done() -> PGRC -- prime generation finished") - METH (pg_begin, "E.pg_begin() -> PGRC -- commence stepping/testing") - METH (pg_try, "E.pg_try() -> PGRC -- found new candidate") - METH (pg_pass, "E.pg_pass() -> PGRC -- passed primality test") - METH (pg_fail, "E.pg_fail() -> PGRC -- failed primality test") + METH (pg_abort, "E.pg_abort(EV) -> PGRC -- prime generation aborted") + METH (pg_done, "E.pg_done(EV) -> PGRC -- prime generation finished") + METH (pg_begin, "E.pg_begin(EV) -> PGRC -- commence stepping/testing") + METH (pg_try, "E.pg_try(EV) -> PGRC -- found new candidate") + METH (pg_pass, "E.pg_pass(EV) -> PGRC -- passed primality test") + METH (pg_fail, "E.pg_fail(EV) -> PGRC -- failed primality test") #undef METHNAME { 0 } }; static PyTypeObject pgev_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ - "catacomb.PrimeGenBuiltinHandler", /* @tp_name@ */ + "PrimeGenBuiltinHandler", /* @tp_name@ */ sizeof(pgev_pyobj), /* @tp_basicsize@ */ 0, /* @tp_itemsize@ */ @@ -703,7 +703,7 @@ static PyGetSetDef pgstep_pygetset[] = { static PyTypeObject pgstep_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ - "catacomb.PrimeGenStepper", /* @tp_name@ */ + "PrimeGenStepper", /* @tp_name@ */ sizeof(pgstep_pyobj), /* @tp_basicsize@ */ 0, /* @tp_itemsize@ */ @@ -785,7 +785,7 @@ static PyGetSetDef pgjump_pygetset[] = { static PyTypeObject pgjump_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ - "catacomb.PrimeGenJumper", /* @tp_name@ */ + "PrimeGenJumper", /* @tp_name@ */ sizeof(pgjump_pyobj), /* @tp_basicsize@ */ 0, /* @tp_itemsize@ */ @@ -846,7 +846,7 @@ end: static PyTypeObject pgtest_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ - "catacomb.PrimeGenTester", /* @tp_name@ */ + "PrimeGenTester", /* @tp_name@ */ sizeof(pgtest_pyobj), /* @tp_basicsize@ */ 0, /* @tp_itemsize@ */ @@ -1035,8 +1035,8 @@ pgen(START, [name = 'p', stepper = PrimeGenStepper(2),\n\ strongprime_setup(NBITS, [name = 'p', event = pgen_nullev,\n\ rng = rand, nsteps = 0]) -> (START, JUMP)") KWMETH(strongprime, "\ -strongprime_setup(NBITS, [name = 'p', event = pgen_nullev,\n\ - rng = rand, nsteps = 0]) -> P") +strongprime(NBITS, [name = 'p', event = pgen_nullev,\n\ + rng = rand, nsteps = 0]) -> P") KWMETH(limlee, "\ limlee(PBITS, QBITS, [name = 'p', event = pgen_nullev,\n\ ievent = pgen_nullev, rng = rand, nsteps = 0]) -> (P, [Q, ...])")