X-Git-Url: https://git.distorted.org.uk/u/mdw/catacomb/blobdiff_plain/dfa4e2cef990e26f06f4aefe7ee2981040dd0d2d..2685767a6125c1620719c7de6234aedf41857b7e:/mpmul.c diff --git a/mpmul.c b/mpmul.c index e5d6a4a..4dd6a68 100644 --- a/mpmul.c +++ b/mpmul.c @@ -1,6 +1,6 @@ /* -*-c-*- * - * $Id: mpmul.c,v 1.2 2000/07/09 21:31:10 mdw Exp $ + * $Id: mpmul.c,v 1.4 2001/02/03 12:00:29 mdw Exp $ * * Multiply many small numbers together * @@ -30,6 +30,13 @@ /*----- Revision history --------------------------------------------------* * * $Log: mpmul.c,v $ + * Revision 1.4 2001/02/03 12:00:29 mdw + * Now @mp_drop@ checks its argument is non-NULL before attempting to free + * it. Note that the macro version @MP_DROP@ doesn't do this. + * + * Revision 1.3 2000/10/08 12:11:22 mdw + * Use @MP_EQ@ instead of @MP_CMP@. + * * Revision 1.2 2000/07/09 21:31:10 mdw * Fix bug, and add a test rig. * @@ -145,8 +152,7 @@ mp *mp_factorial(unsigned long i) x = mp_fromulong(x, j); mpmul_add(&b, x); } - if (x) - mp_drop(x); + mp_drop(x); return (mpmul_done(&b)); } @@ -162,7 +168,7 @@ static int vfact(dstr *v) mp *fx = *(mp **)v[1].buf; mp *y = mp_factorial(x); int ok = 1; - if (MP_CMP(fx, !=, y)) { + if (!MP_EQ(fx, y)) { fprintf(stderr, "factorial failed\n"); MP_FPRINTF(stderr, (stderr, "%lu! = ", x), fx); MP_EPRINT("result", y);