Improve error-checking.
authormdw <mdw>
Fri, 10 Dec 1999 23:19:02 +0000 (23:19 +0000)
committermdw <mdw>
Fri, 10 Dec 1999 23:19:02 +0000 (23:19 +0000)
mp-jacobi.c
mp-mem.c

index 69f697e..2a1e109 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-c-*-
  *
- * $Id: mp-jacobi.c,v 1.1 1999/11/22 20:50:37 mdw Exp $
+ * $Id: mp-jacobi.c,v 1.2 1999/12/10 23:19:02 mdw Exp $
  *
  * Compute Jacobi symbol
  *
@@ -30,6 +30,9 @@
 /*----- Revision history --------------------------------------------------* 
  *
  * $Log: mp-jacobi.c,v $
+ * Revision 1.2  1999/12/10 23:19:02  mdw
+ * Improve error-checking.
+ *
  * Revision 1.1  1999/11/22 20:50:37  mdw
  * Add support for computing Jacobi symbols.
  *
@@ -147,6 +150,7 @@ static int verify(dstr *v)
 
   mp_drop(a);
   mp_drop(n);
+  assert(mparena_count(MPARENA_GLOBAL) == 0);
   return (ok);
 }
 
index 2f75365..833874d 100644 (file)
--- a/mp-mem.c
+++ b/mp-mem.c
@@ -1,6 +1,6 @@
 /* -*-c-*-
  *
- * $Id: mp-mem.c,v 1.1 1999/11/17 18:02:16 mdw Exp $
+ * $Id: mp-mem.c,v 1.2 1999/12/10 23:19:02 mdw Exp $
  *
  * Memory management for multiprecision numbers
  *
@@ -30,6 +30,9 @@
 /*----- Revision history --------------------------------------------------* 
  *
  * $Log: mp-mem.c,v $
+ * Revision 1.2  1999/12/10 23:19:02  mdw
+ * Improve error-checking.
+ *
  * Revision 1.1  1999/11/17 18:02:16  mdw
  * New multiprecision integer arithmetic suite.
  *
@@ -99,11 +102,12 @@ void mp_build(mp *m, mpw *v, mpw *vl)
 
 void mp_destroy(mp *m)
 {
-  if (m->f & MP_CONST)
-    return;
+  assert(((void)"Destroying a free integer", !(m->f & MP_DESTROYED)));
+  assert(((void)"Attempted to destroy a constant", !(m->f & MP_CONST)));
   if (m->f & MP_BURN)
     memset(m->v, 0, MPWS(m->sz));
   MP_FREE(m->v);
+  m->f |= MP_DESTROYED;
   DESTROY(m);
 }