bitbake: data_smart: Ensure d.keys() doesn't list deleted variables

If you copy the datastore, then delete a variable, it still shows up
in d.keys() when it should not. This patch addresses the issue.

(Bitbake rev: f28ee1bb03cb32d3757fbef67c9fbe143e3dadfa)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie 2014-12-23 12:32:06 +00:00
parent 172ea4f79e
commit 544533922d
1 changed files with 4 additions and 0 deletions

View File

@ -740,12 +740,16 @@ class DataSmart(MutableMapping):
yield key
def __iter__(self):
deleted = set()
def keylist(d):
klist = set()
for key in d:
if key == "_data":
continue
if key in deleted:
continue
if not d[key]:
deleted.add(key)
continue
klist.add(key)