From 899d45b90061eb3cf3e71029072eee42cd80930c Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Tue, 31 May 2011 23:52:50 +0100 Subject: 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 --- lib/bb/data_smart.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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") -- cgit 1.2.3-korg