From 32fee2e650dfdd3aa9a7572dad1251e0c24ca34b Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Tue, 5 Jul 2011 11:02:04 +0100 Subject: bitbake/ast: Fix ??= vs. ?= handling As the code stands, setting a variable with ??= could result in a ?= variable not overriding it. This patch fixes the issue by allowing the ast to make lookups that ignore any ??= set variables. Signed-off-by: Richard Purdie --- lib/bb/data_smart.py | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) (limited to 'lib/bb/data_smart.py') diff --git a/lib/bb/data_smart.py b/lib/bb/data_smart.py index 8f67227bd..301f9e372 100644 --- a/lib/bb/data_smart.py +++ b/lib/bb/data_smart.py @@ -267,12 +267,8 @@ class DataSmart(MutableMapping): # setting var self.dict[var]["content"] = value - def getVar(self, var, exp): - value = self.getVarFlag(var, "content") - - if exp and value: - return self.expand(value, var) - return value + def getVar(self, var, expand=False, noweakdefault=False): + return self.getVarFlag(var, "content", expand, noweakdefault) def renameVar(self, key, newkey): """ @@ -310,13 +306,13 @@ class DataSmart(MutableMapping): self._makeShadowCopy(var) self.dict[var][flag] = flagvalue - def getVarFlag(self, var, flag, expand=False): + def getVarFlag(self, var, flag, expand=False, noweakdefault=False): local_var = self._findVar(var) value = None if local_var: if flag in local_var: value = copy.copy(local_var[flag]) - elif flag == "content" and "defaultval" in local_var: + elif flag == "content" and "defaultval" in local_var and not noweakdefault: value = copy.copy(local_var["defaultval"]) if expand and value: value = self.expand(value, None) -- cgit 1.2.3-korg