aboutsummaryrefslogtreecommitdiffstats
path: root/awk.h
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2020-06-10 06:10:04 +0300
committerArnold D. Robbins <arnold@skeeve.com>2020-06-10 17:48:50 +0300
commit17d03a4deb7ed18abb4e0e590e6315050d9c29fd (patch)
tree324feeb1e3568042fe9e2f73ebd6d63296781cf7 /awk.h
parent5aae00200fc44bdfefbb497cf57eb23a9d2517be (diff)
downloadegawk-17d03a4deb7ed18abb4e0e590e6315050d9c29fd.tar.gz
egawk-17d03a4deb7ed18abb4e0e590e6315050d9c29fd.tar.bz2
egawk-17d03a4deb7ed18abb4e0e590e6315050d9c29fd.zip
Add mbuilov fixes. Still needs review.
Diffstat (limited to 'awk.h')
-rw-r--r--awk.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/awk.h b/awk.h
index 283817a1..9005ff34 100644
--- a/awk.h
+++ b/awk.h
@@ -1267,8 +1267,11 @@ static inline void
DEREF(NODE *r)
{
assert(r->valref > 0);
- if (--r->valref == 0)
- r_unref(r);
+#ifndef GAWKDEBUG
+ if (--r->valref > 0)
+ return;
+#endif
+ r_unref(r);
}
#define POP_NUMBER() force_number(POP_SCALAR())
@@ -1926,6 +1929,7 @@ force_string_fmt(NODE *s, const char *fmtstr, int fmtidx)
static inline void
unref(NODE *r)
{
+ assert(r == NULL || r->valref > 0);
if (r != NULL && --r->valref <= 0)
r_unref(r);
}