summaryrefslogtreecommitdiffstats
path: root/grammar/lexer.l
diff options
context:
space:
mode:
Diffstat (limited to 'grammar/lexer.l')
-rw-r--r--grammar/lexer.l3
1 files changed, 3 insertions, 0 deletions
diff --git a/grammar/lexer.l b/grammar/lexer.l
index d761003a..347a2a7a 100644
--- a/grammar/lexer.l
+++ b/grammar/lexer.l
@@ -72,6 +72,7 @@ struct bufstack {
YY_BUFFER_STATE bs;
int lineno;
char *fn;
+ es_str_t *estr;
} *currbs = NULL;
char *currfn; /* name of currently processed file */
@@ -228,6 +229,7 @@ cnfSetLexFile(char *fname)
bs->prev = currbs;
bs->fn = strdup(fname == NULL ? "stdin" : fname);
bs->bs = yy_scan_buffer((char*)es_getBufAddr(str), es_strlen(str));
+ bs->estr = str; /* needed so we can free it later */
currbs = bs;
currfn = bs->fn;
yylineno = 1;
@@ -253,6 +255,7 @@ popfile(void)
/* delte current entry */
yy_delete_buffer(bs->bs);
free(bs->fn);
+ free(bs->estr);
/* switch back to previous */
currbs = bs->prev;