summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2011-05-31 23:52:50 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-06-09 22:42:08 +0100
commit899d45b90061eb3cf3e71029072eee42cd80930c (patch)
tree1cef6538b7ff613f4ad79c05640468b6c92fbdec
parentd000493c09ac5c1dcbab22d3a91296a9cb194ac0 (diff)
downloadbitbake-899d45b90061eb3cf3e71029072eee42cd80930c.tar.gz
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. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--lib/bb/data_smart.py4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/bb/data_smart.py b/lib/bb/data_smart.py
index 64a900c55..93c1b81ae 100644
--- a/lib/bb/data_smart.py
+++ b/lib/bb/data_smart.py
@@ -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")