]> code.bitgloo.com Git - clyne/interpreter.git/commitdiff
memory leak fix
authorClyne Sullivan <tullivan99@gmail.com>
Mon, 2 Apr 2018 21:32:29 +0000 (17:32 -0400)
committerClyne Sullivan <tullivan99@gmail.com>
Mon, 2 Apr 2018 21:32:29 +0000 (17:32 -0400)
parser.c

index 68104f65c8d917fd6345cd1d835ed3d3bbc803f9..691e296ca24f5907cbd9eeaa44da4c1e15ef4b6f 100644 (file)
--- 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;
        }