X-Git-Url: https://git.distorted.org.uk/u/mdw/catacomb/blobdiff_plain/4b536f423c90ba7ca41d3f95f31b17729152a403..8404fd750e8d1a635ccb3895e4f0e155e5f5e3cf:/mp-sqrt.c diff --git a/mp-sqrt.c b/mp-sqrt.c index 6b0f602..83880f9 100644 --- a/mp-sqrt.c +++ b/mp-sqrt.c @@ -1,6 +1,6 @@ /* -*-c-*- * - * $Id: mp-sqrt.c,v 1.2 2000/10/08 12:02:21 mdw Exp $ + * $Id: mp-sqrt.c,v 1.4 2004/03/27 17:54:11 mdw Exp $ * * Compute integer square roots * @@ -30,6 +30,13 @@ /*----- Revision history --------------------------------------------------* * * $Log: mp-sqrt.c,v $ + * Revision 1.4 2004/03/27 17:54:11 mdw + * Standard curves and curve checking. + * + * Revision 1.3 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.2 2000/10/08 12:02:21 mdw * Use @MP_EQ@ instead of @MP_CMP@. * @@ -71,8 +78,7 @@ mp *mp_sqrt(mp *d, mp *a) MP_SHRINK(a); if (a->v == a->vl) { - if (d) - mp_drop(d); + mp_drop(d); return (MP_ZERO); } @@ -82,7 +88,6 @@ mp *mp_sqrt(mp *d, mp *a) z >>= 1; mp_copy(a); d = mp_lsr(d, a, z); - mp_drop(a); /* --- Main approximation --- * * @@ -115,9 +120,9 @@ mp *mp_sqrt(mp *d, mp *a) /* --- Finished, at last --- */ + mp_drop(a); mp_drop(q); - if (r) - mp_drop(r); + mp_drop(r); return (d); }