diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-05-29 10:29:28 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-07-12 22:50:46 +0100 |
commit | a2599686112fca1c2a808fbea24bf10d5f89a74d (patch) | |
tree | 20bccd1a6c77f6ae6320ee22011821530610f010 /bitbake/lib/bb/data_smart.py | |
parent | 816acb6ee8ca8ac8791bf89c32aa45f808d5d52f (diff) | |
download | openembedded-core-contrib-a2599686112fca1c2a808fbea24bf10d5f89a74d.tar.gz |
bitbake: data_smart: Fix keys() missing overrides
d.keys() was not returning items which had no base content but the
variable came into existance through overrides. We have to process
self.overridedata to find these other variables.
(Bitbake rev: 77fc57c610d7f65f7e328ad555f525b2f8bdf1d7)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/data_smart.py')
-rw-r--r-- | bitbake/lib/bb/data_smart.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/bitbake/lib/bb/data_smart.py b/bitbake/lib/bb/data_smart.py index 941c158f7d..b9c5d1e5b7 100644 --- a/bitbake/lib/bb/data_smart.py +++ b/bitbake/lib/bb/data_smart.py @@ -809,6 +809,7 @@ class DataSmart(MutableMapping): def __iter__(self): deleted = set() + overrides = set() def keylist(d): klist = set() for key in d: @@ -816,6 +817,8 @@ class DataSmart(MutableMapping): continue if key in deleted: continue + if key in overrides: + continue if not d[key]: deleted.add(key) continue @@ -826,9 +829,21 @@ class DataSmart(MutableMapping): return klist + self.need_overrides() + for var in self.overridedata: + for (r, o) in self.overridedata[var]: + if o in self.overridesset: + overrides.add(var) + elif "_" in o: + if set(o.split("_")).issubset(self.overridesset): + overrides.add(var) + for k in keylist(self.dict): yield k + for k in overrides: + yield k + def __len__(self): return len(frozenset(self)) |