From 70be18427b069cae7ffcfb84811ae268fa18afce Mon Sep 17 00:00:00 2001 From: Bryan Bishop Date: Sat, 31 Aug 2013 11:04:27 -0500 Subject: [PATCH] don't call load_pokecrystal_macros 2000 times Also, don't call make_macro_table 2000 times by only calling it once and passing the result. --- preprocessor.py | 7 ++++--- prequeue.py | 10 ++++++++-- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/preprocessor.py b/preprocessor.py index f5dd205b2..aef1ff220 100644 --- a/preprocessor.py +++ b/preprocessor.py @@ -642,9 +642,8 @@ def read_line(l, macro_table): if comment: sys.stdout.write(comment) -def preprocess(macros, lines=None): +def preprocess(macro_table, lines=None): """Main entry point for the preprocessor.""" - macro_table = make_macro_table(macros) if not lines: # read each line from stdin @@ -658,4 +657,6 @@ def preprocess(macros, lines=None): # only run against stdin when not included as a module if __name__ == "__main__": - preprocess(load_pokecrystal_macros()) + macros = load_pokecrystal_macros() + macro_table = make_macro_table(macros) + preprocess(macro_table) diff --git a/prequeue.py b/prequeue.py index 2c8f4cf5a..58790f702 100644 --- a/prequeue.py +++ b/prequeue.py @@ -9,9 +9,15 @@ import os import sys import preprocessor -if __name__ == '__main__': +def main(): + macros = preprocessor.load_pokecrystal_macros() + macro_table = preprocessor.make_macro_table(macros) + for source in sys.argv[1:]: dest = os.path.splitext(source)[0] + '.tx' sys.stdin = open(source, 'r') sys.stdout = open(dest, 'w') - preprocessor.preprocess(preprocessor.load_pokecrystal_macros()) + preprocessor.preprocess(macro_table) + +if __name__ == '__main__': + main()