projects
/
u
/
mdw
/
catacomb
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
General robustification.
[u/mdw/catacomb]
/
mparena.c
diff --git
a/mparena.c
b/mparena.c
index
95f88d5
..
b9b1f84
100644
(file)
--- a/
mparena.c
+++ b/
mparena.c
@@
-1,6
+1,6
@@
/* -*-c-*-
*
/* -*-c-*-
*
- * $Id: mparena.c,v 1.
5 2000/06/17 11:35:48
mdw Exp $
+ * $Id: mparena.c,v 1.
6 2004/04/03 03:32:05
mdw Exp $
*
* Allocation and freeing of MP buffers
*
*
* Allocation and freeing of MP buffers
*
@@
-30,6
+30,9
@@
/*----- Revision history --------------------------------------------------*
*
* $Log: mparena.c,v $
/*----- Revision history --------------------------------------------------*
*
* $Log: mparena.c,v $
+ * Revision 1.6 2004/04/03 03:32:05 mdw
+ * General robustification.
+ *
* Revision 1.5 2000/06/17 11:35:48 mdw
* Overhaul to use mLib's arena system underneath.
*
* Revision 1.5 2000/06/17 11:35:48 mdw
* Overhaul to use mLib's arena system underneath.
*
@@
-214,6
+217,8
@@
unsigned mparena_count(mparena *a)
mpw *mpalloc(mparena *a, size_t sz)
{
mpw *v;
mpw *mpalloc(mparena *a, size_t sz)
{
mpw *v;
+ if (!sz) return (0);
+ a->n++;
v = A_ALLOC(a->a, MPWS(sz));
if (!v)
THROW(EXC_NOMEM);
v = A_ALLOC(a->a, MPWS(sz));
if (!v)
THROW(EXC_NOMEM);
@@
-314,6
+319,8
@@
again:
void mpfree(mparena *a, mpw *v)
{
void mpfree(mparena *a, mpw *v)
{
+ if (!v) return;
+ a->n--;
A_FREE(a->a, v);
}
A_FREE(a->a, v);
}