From d890343fda6249db5a75efae3b7fddc11f9ace4d Mon Sep 17 00:00:00 2001 From: Ulf Magnusson Date: Sat, 11 Nov 2017 10:27:48 +0100 Subject: Micro-optimize write_config() a bit Shaves a few % in line_profiler with no loss in readability. Menus and comments are rare relatively speaking (~10% of all items written out for alldefconfig), so optimize for the symbol case. --- kconfiglib.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/kconfiglib.py b/kconfiglib.py index c7480bd..2a351ca 100644 --- a/kconfiglib.py +++ b/kconfiglib.py @@ -859,17 +859,17 @@ class Kconfig(object): return while 1: - if isinstance(node.item, Symbol): - sym = node.item - if not sym._written: - config_string = sym.config_string + item = node.item + if isinstance(item, Symbol): + if not item._written: + config_string = item.config_string if config_string: write(config_string) - sym._written = True + item._written = True elif expr_value(node.dep) and \ - ((node.item == MENU and expr_value(node.visibility)) or - node.item == COMMENT): + ((item == MENU and expr_value(node.visibility)) or + item == COMMENT): write("\n#\n# {}\n#\n".format(node.prompt[0])) -- cgit v1.2.3