From a2599686112fca1c2a808fbea24bf10d5f89a74d Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Fri, 29 May 2015 10:29:28 +0000 Subject: 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 --- bitbake/lib/bb/data_smart.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'bitbake/lib/bb/data_smart.py') 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)) -- cgit v1.2.3-54-g00ecf