]> git.xonotic.org Git - xonotic/gmqcc.git/blobdiff - parser.c
don't call correct_edit anew for each scope
[xonotic/gmqcc.git] / parser.c
index 6ba90cd50a4ec0280dfe83bf005e29930d7d81a7..3496437ad1e887ae440edf6e9ca701c156624d17 100644 (file)
--- a/parser.c
+++ b/parser.c
@@ -1644,8 +1644,11 @@ static ast_expression* parse_expression_leave(parser_t *parser, bool stopatcomma
                      * other things as well.
                      */
                     if (OPTS_FLAG(ENHANCED_DIAGNOSTICS)) {
+                        correction_t corr;
+                        correct_init(&corr);
+
                         for (i = 0; i < vec_size(parser->correct_variables); i++) {
-                            correct = correct_str(parser->correct_variables[i], parser_tokval(parser));
+                            correct = correct_str(&corr, parser->correct_variables[i], parser_tokval(parser));
                             if (strcmp(correct, parser_tokval(parser))) {
                                 break;
                             } else if (correct) {
@@ -1653,6 +1656,7 @@ static ast_expression* parse_expression_leave(parser_t *parser, bool stopatcomma
                                 correct = NULL;
                             }
                         }
+                        correct_free(&corr);
 
                         if (correct) {
                             parseerror(parser, "unexpected ident: %s (did you mean %s?)", parser_tokval(parser), correct);