aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--parser.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/parser.c b/parser.c
index 68104f6..691e296 100644
--- a/parser.c
+++ b/parser.c
@@ -230,13 +230,13 @@ loop:
} else {
// move result global variable "ANS"
variable *ret = igetvar(it, "ANS");
- ret->type = it->ret->type;
- if (ret->type == STRING) {
+ if (ret->type == STRING)
free((void *)ret->value.p);
+ ret->type = it->ret->type;
+ if (ret->type == STRING)
ret->value.p = (uint32_t)strclone((char *)it->ret->value.p);
- } else {
+ else
ret->value.p = it->ret->value.p;
- }
itryfree(it->ret);
it->ret = ret;
}