summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlf Magnusson <ulfalizer@gmail.com>2012-12-15 06:27:23 +0100
committerUlf Magnusson <ulfalizer@gmail.com>2012-12-15 06:27:23 +0100
commitd30fdfa573df553f361c427397773e9ebe9716f9 (patch)
treef80f0eb854e393830e92ceaadcacb2a8c8ce2b39
parentd6482f2bf798642990bba05cec10612c06a7b36f (diff)
Optimize Symbol._make_conf().
- Remove _should_write(). - Remove redundant get_value() calls.
-rw-r--r--kconfiglib.py26
1 files changed, 9 insertions, 17 deletions
diff --git a/kconfiglib.py b/kconfiglib.py
index 3d21c6a..34ec169 100644
--- a/kconfiglib.py
+++ b/kconfiglib.py
@@ -2910,35 +2910,27 @@ class Symbol(Item, _HasVisibility):
if self.is_choice_symbol_:
self.parent._unset_user_value()
- def _should_write(self):
- # Symbols defined in multiple locations only get one entry in the
- # .config.
- if self.already_written:
- return False
-
- # write_to_conf is determined in get_value(), so we need to call that
- # first
- self.get_value()
-
- return self.write_to_conf
-
def _make_conf(self):
- if not self._should_write():
+ if self.already_written:
return []
self.already_written = True
+ # Note: write_to_conf is determined in get_value()
+ val = self.get_value()
+ if not self.write_to_conf:
+ return []
+
if self.type == BOOL or self.type == TRISTATE:
- val = self.get_value()
if val == "m" or val == "y":
- return ["CONFIG_{0}={1}".format(self.name, self.get_value())]
+ return ["CONFIG_{0}={1}".format(self.name, val)]
return ["# CONFIG_{0} is not set".format(self.name)]
elif self.type == STRING:
- return ['CONFIG_{0}="{1}"'.format(self.name, self.get_value())]
+ return ['CONFIG_{0}="{1}"'.format(self.name, val)]
elif self.type == INT or self.type == HEX:
- return ["CONFIG_{0}={1}".format(self.name, self.get_value())]
+ return ["CONFIG_{0}={1}".format(self.name, val)]
else:
_internal_error('Internal error while creating .config: unknown type "{0}".'