diff options
author | H. Peter Anvin <hpa@zytor.com> | 2008-06-15 17:39:45 -0700 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2008-06-15 17:39:45 -0700 |
commit | 2aa77394b7b5523fb031a0c059f0db7b93e565d5 (patch) | |
tree | 882ea67aeacb1e45ee9a449336d4b8a8889409db | |
parent | a0b91037e21428682c29464a473cbcb13ed07c49 (diff) | |
download | nasm-2aa77394b7b5523fb031a0c059f0db7b93e565d5.tar.gz nasm-2aa77394b7b5523fb031a0c059f0db7b93e565d5.tar.bz2 nasm-2aa77394b7b5523fb031a0c059f0db7b93e565d5.zip |
Free EOT_DB_STRING_FREE in cleanup_insn()
Free EOT_DB_STRING_FREE data in cleanup_insn(), which is where we free
all the other extop data.
-rw-r--r-- | assemble.c | 2 | ||||
-rw-r--r-- | parser.c | 7 |
2 files changed, 4 insertions, 5 deletions
@@ -349,8 +349,6 @@ int64_t assemble(int32_t segment, int64_t offset, int bits, uint32_t cp, OUT_RAWDATA, align, NO_SEG, NO_SEG); } offset += e->stringlen + align; - if (e->type == EOT_DB_STRING_FREE) - nasm_free(e->stringval); } } if (t > 0 && t == instruction->times - 1) { @@ -947,9 +947,10 @@ void cleanup_insn(insn * i) { extop *e; - while (i->eops) { - e = i->eops; - i->eops = i->eops->next; + while ((e = i->eops)) { + i->eops = e->next; + if (e->type == EOT_DB_STRING_FREE) + nasm_free(e->stringval); nasm_free(e); } } |