diff options
| author | Ulf Magnusson <ulfalizer@gmail.com> | 2018-06-14 12:00:44 +0200 |
|---|---|---|
| committer | Ulf Magnusson <ulfalizer@gmail.com> | 2018-06-14 18:42:01 +0200 |
| commit | fbf31fac751c0d76d2f55a0fe649ade5bafed292 (patch) | |
| tree | bd803ae1f8651a57e7d7a53f2b9757baf757e624 | |
| parent | c8801514d63aaa6ad78ee62930ca5160fb52f74a (diff) | |
Fix MenuNode.referenced() on Kconfig.top_node
The property lists weren't created for Kconfig.top_node, making
referenced() crash.
Add a MenuNode constructor and create the property lists there instead
of in _parse_properties().
| -rw-r--r-- | kconfiglib.py | 16 | ||||
| -rw-r--r-- | testsuite.py | 2 |
2 files changed, 11 insertions, 7 deletions
diff --git a/kconfiglib.py b/kconfiglib.py index af5415d..609ba7d 100644 --- a/kconfiglib.py +++ b/kconfiglib.py @@ -2114,13 +2114,6 @@ class Kconfig(object): # below. node.dep = self.y - # Properties added at this location. A local 'depends on' only applies - # to these, in case a symbol is defined in multiple locations. - node.defaults = [] - node.selects = [] - node.implies = [] - node.ranges = [] - while self._next_line(): t0 = self._next_token() if t0 is None: @@ -4171,6 +4164,15 @@ class MenuNode(object): "ranges" ) + def __init__(self): + # Properties defined on this particular menu node. A local 'depends on' + # only applies to these, in case a symbol is defined in multiple + # locations. + self.defaults = [] + self.selects = [] + self.implies = [] + self.ranges = [] + def referenced(self): """ Returns a set() of all symbols and choices referenced in the properties diff --git a/testsuite.py b/testsuite.py index c773b99..6d27040 100644 --- a/testsuite.py +++ b/testsuite.py @@ -1017,6 +1017,8 @@ g verify_equal(tuple(sorted(item.name for item in item.referenced())), dep_names) + verify_deps(c.top_node, "y") + verify_deps(c.syms["NO_REFS"].nodes[0], "y") verify_deps(c.syms["JUST_DEPENDS_ON_REFS"].nodes[0], "A", "B") |
