tempzone_ptr= tempzones_head->buf;
}
+static void record_tempzone_freeall(void) {
+ record_tempzone_clear();
+ free(tempzones_head);
+ tempzones_head= 0;
+ tempzone_ptr= 0;
+ tempzone_remain= tempzone_head_len= 0;
+}
+
/*---------- semantic actions ----------*/
/*
* These are all called only during the second pass, when trains is non-0.
record_yylineno= 0;
r= record_yyparse();
assert(!r); /* we're supposed to call yyerror which dies */
+ fclose(f);
}
static void parse_pass(const char **argv) {
parse_pass(argv); /* trains!=0: populates data area */
record_tempzone_clear();
speeds_postprocess();
+ record_tempzone_freeall();
+ record_yylex_destroy();
}