diff options
| author | Ulf Magnusson <ulfalizer@gmail.com> | 2017-09-25 19:10:39 +0200 |
|---|---|---|
| committer | Ulf Magnusson <ulfalizer@gmail.com> | 2017-09-25 19:29:23 +0200 |
| commit | cb3db6f85d5d2bc986fccb9568d85d1a7423d576 (patch) | |
| tree | 50fb04c837d8d0306e49e4bca1a9d1623a0b4878 /kconfiglib.py | |
| parent | fe17f546b5cd5fd8b9df7d53856efd7b207faa0e (diff) | |
Remove unhelpful invalidation comments
Probably not worthwhile to do anything overly fancy in the mentioned
cases. Add some more helpful comments instead.
Piggyback another comment nit.
Diffstat (limited to 'kconfiglib.py')
| -rw-r--r-- | kconfiglib.py | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/kconfiglib.py b/kconfiglib.py index 574dbae..c144283 100644 --- a/kconfiglib.py +++ b/kconfiglib.py @@ -445,13 +445,8 @@ class Config(object): .format(name, old_user_val, new_user_val), filename, linenr) - # Invalidate everything to keep things simple. It might be possible to - # improve performance for the case where multiple configurations are - # loaded by only invalidating a symbol (and its dependent symbols) if - # the new user value differs from the old. One complication would be - # that symbols not mentioned in the .config must lose their user value - # when replace = True, which is the usual case. if replace: + # This invalidates all symbols as a side effect self.unset_user_values() else: self._invalidate_all() @@ -563,6 +558,8 @@ class Config(object): """Resets the values of all symbols, as if Config.load_config() or Symbol.set_user_value() had never been called.""" for sym in self._syms_iter(): + # We're iterating over all symbols already, so no need for symbols + # to invalidate their dependent symbols sym._unset_user_value_no_recursive_invalidate() def set_print_warnings(self, print_warnings): @@ -2320,9 +2317,8 @@ class Symbol(Item): v: The user value to give to the symbol.""" self._set_user_value_no_invalidate(v, False) - # There might be something more efficient you could do here, but play - # it safe. if self._name == "MODULES": + # Changing MODULES has wide-ranging effects self._config._invalidate_all() return @@ -2495,6 +2491,8 @@ class Symbol(Item): def _invalidate(self): if self._is_special: + # Special symbols never change value and keep their value in + # _cached_val return if self._is_choice_sym: @@ -2618,7 +2616,7 @@ class Symbol(Item): if self._is_choice_sym: # Choice symbols also depend (recursively) on their siblings. The - # siblings are not included in '_dep' to avoid dependency loops. + # siblings are not included in _dep to avoid dependency loops. for sibling in self._parent._actual_symbols: if sibling is not self: res.add(sibling) |
