diff options
Diffstat (limited to 'bitbake/lib')
-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): | |||
809 | 809 | ||
810 | def __iter__(self): | 810 | def __iter__(self): |
811 | deleted = set() | 811 | deleted = set() |
812 | overrides = set() | ||
812 | def keylist(d): | 813 | def keylist(d): |
813 | klist = set() | 814 | klist = set() |
814 | for key in d: | 815 | for key in d: |
@@ -816,6 +817,8 @@ class DataSmart(MutableMapping): | |||
816 | continue | 817 | continue |
817 | if key in deleted: | 818 | if key in deleted: |
818 | continue | 819 | continue |
820 | if key in overrides: | ||
821 | continue | ||
819 | if not d[key]: | 822 | if not d[key]: |
820 | deleted.add(key) | 823 | deleted.add(key) |
821 | continue | 824 | continue |
@@ -826,9 +829,21 @@ class DataSmart(MutableMapping): | |||
826 | 829 | ||
827 | return klist | 830 | return klist |
828 | 831 | ||
832 | self.need_overrides() | ||
833 | for var in self.overridedata: | ||
834 | for (r, o) in self.overridedata[var]: | ||
835 | if o in self.overridesset: | ||
836 | overrides.add(var) | ||
837 | elif "_" in o: | ||
838 | if set(o.split("_")).issubset(self.overridesset): | ||
839 | overrides.add(var) | ||
840 | |||
829 | for k in keylist(self.dict): | 841 | for k in keylist(self.dict): |
830 | yield k | 842 | yield k |
831 | 843 | ||
844 | for k in overrides: | ||
845 | yield k | ||
846 | |||
832 | def __len__(self): | 847 | def __len__(self): |
833 | return len(frozenset(self)) | 848 | return len(frozenset(self)) |
834 | 849 | ||