X-Git-Url: https://git.xonotic.org/?p=xonotic%2Fgmqcc.git;a=blobdiff_plain;f=lexer.c;h=7722f4f5795f02ee6c355aa6ea1b172c89948440;hp=8d6f09442bb0d2b76e4ba6e314d923d17a2743ec;hb=3d8e8cd80d4f4afc076ad82f1b76dea1ebf92bef;hpb=18fad16a7d5bc7e981e2824c7a5ade68ce9a2064 diff --git a/lexer.c b/lexer.c index 8d6f094..7722f4f 100644 --- a/lexer.c +++ b/lexer.c @@ -58,7 +58,7 @@ static size_t num_keywords_fg = sizeof(keywords_fg) / sizeof(keywords_fg[0]); * Lexer code */ -char* *lex_filenames; +static char* *lex_filenames; void lexerror(lex_file *lex, const char *fmt, ...) { @@ -483,6 +483,9 @@ static bool lex_try_pragma(lex_file *lex) lex->line = line; while (ch != '\n' && ch != EOF) ch = lex_getch(lex); + vec_free(command); + vec_free(param); + vec_free(pragma); return true; unroll: @@ -495,13 +498,13 @@ unroll: vec_free(command); lex_ungetch(lex, ' '); } - if (command) { - vec_pop(command); - while (vec_size(command)) { - lex_ungetch(lex, (unsigned char)vec_last(command)); - vec_pop(command); + if (param) { + vec_pop(param); + while (vec_size(param)) { + lex_ungetch(lex, (unsigned char)vec_last(param)); + vec_pop(param); } - vec_free(command); + vec_free(param); lex_ungetch(lex, ' '); } if (pragma) { @@ -1232,7 +1235,7 @@ int lex_do(lex_file *lex) /* case '+': case '-': - */ + */ case '*': case '/': case '<':