bitbake/data_smart: Change overrides behaviour to remove expanded variables from the datastore

Currently if you do:

OVERRIDES = "z"
DEPENDS_prepend = "a "
DEPENDS = "b"
DEPENDS_z = "c"

d.update_data()
d.getVar("DEPENDS")

gives "a c"

d.update_data()
d.getVar("DEPENDS")

then gives "c"

This patch changes the behaviour such that at the time bitbake expands the DEPENDS_z
override, it removes "DEPENDS_z" from the data store. In the above example this would
mean that it wouldn't matter how often you call d.update_data(), you'd always get
"a c" back.

See the bitbake-devel mailing list for further discussion and analysis of the
potential impact of this change.

(Bitbake rev: 899d45b90061eb3cf3e71029072eee42cd80930c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie
2011-05-31 23:52:50 +01:00
parent 73871c2712
commit eda23733f0

View File

@@ -172,11 +172,13 @@ class DataSmart(MutableMapping):
if o not in self._seen_overrides:
continue
vars = self._seen_overrides[o]
vars = self._seen_overrides[o].copy()
for var in vars:
name = var[:-l]
try:
self.setVar(name, self.getVar(var, False))
self.delVar(var)
self._seen_overrides[o].remove(var)
except Exception:
logger.info("Untracked delVar")