diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-07-05 11:02:04 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-07-05 11:02:04 +0100 |
commit | 32fee2e650dfdd3aa9a7572dad1251e0c24ca34b (patch) | |
tree | 221f10bb5c0fb39470ea7c6250b43c32a2bc5af1 /lib/bb/data_smart.py | |
parent | a8246ae5400c23df0d3ee29c36f4d9f257d1e6d1 (diff) | |
download | bitbake-32fee2e650dfdd3aa9a7572dad1251e0c24ca34b.tar.gz |
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 <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'lib/bb/data_smart.py')
-rw-r--r-- | lib/bb/data_smart.py | 12 |
1 files changed, 4 insertions, 8 deletions
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) |