From 1b5d7b59d330b49a25fe60aea22c2f3b59bfb5e1 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Fri, 17 Jun 2011 17:34:52 +0100 Subject: bitbake/data_smart: Don't track overrides in deleted variable names When we delete a variable we no longer expect it to override other variables. To do this we remove it from the list of active overrides at deletion time. It turns out we already had to do this at override expansion time so this cleans up the code to be more consistent as an added bonus. (Bitbake rev: d924ff9ede57c3dea6e1c738ba3633f18d460b14) Signed-off-by: Richard Purdie --- bitbake/lib/bb/data_smart.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'bitbake/lib') diff --git a/bitbake/lib/bb/data_smart.py b/bitbake/lib/bb/data_smart.py index bc359de4f1..8f67227bd6 100644 --- a/bitbake/lib/bb/data_smart.py +++ b/bitbake/lib/bb/data_smart.py @@ -178,7 +178,6 @@ class DataSmart(MutableMapping): try: self.setVar(name, self.getVar(var, False)) self.delVar(var) - self._seen_overrides[o].remove(var) except Exception: logger.info("Untracked delVar") @@ -301,6 +300,10 @@ class DataSmart(MutableMapping): def delVar(self, var): self.expand_cache = {} self.dict[var] = {} + if '_' in var: + override = var[var.rfind('_')+1:] + if override and override in self._seen_overrides and var in self._seen_overrides[override]: + self._seen_overrides[override].remove(var) def setVarFlag(self, var, flag, flagvalue): if not var in self.dict: -- cgit v1.2.3-54-g00ecf