summaryrefslogtreecommitdiffstats
path: root/dimension/parse.c
diff options
context:
space:
mode:
Diffstat (limited to 'dimension/parse.c')
-rw-r--r--dimension/parse.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/dimension/parse.c b/dimension/parse.c
index 6ff5628..bd40ff8 100644
--- a/dimension/parse.c
+++ b/dimension/parse.c
@@ -791,7 +791,9 @@ dmnsn_eval(dmnsn_astnode astnode, dmnsn_symbol_table *symtable)
case DMNSN_AST_NONE:
case DMNSN_AST_INTEGER:
case DMNSN_AST_FLOAT:
- ++*astnode.refcount;
+ do {
+ ++*astnode.refcount;
+ } while (*astnode.refcount <= 1);
return astnode;
case DMNSN_AST_VECTOR: