Add an internal-representation no-op function.
[u/mdw/catacomb] / mpmul.c
diff --git a/mpmul.c b/mpmul.c
index e5d6a4a..4dd6a68 100644 (file)
--- 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
  *
 /*----- 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);