summaryrefslogtreecommitdiff
path: root/poky/bitbake/lib/bb/data_smart.py
diff options
context:
space:
mode:
Diffstat (limited to 'poky/bitbake/lib/bb/data_smart.py')
-rw-r--r--poky/bitbake/lib/bb/data_smart.py10
1 files changed, 7 insertions, 3 deletions
diff --git a/poky/bitbake/lib/bb/data_smart.py b/poky/bitbake/lib/bb/data_smart.py
index 8d3825f398..dd20ca557e 100644
--- a/poky/bitbake/lib/bb/data_smart.py
+++ b/poky/bitbake/lib/bb/data_smart.py
@@ -152,6 +152,9 @@ class DataContext(dict):
self['d'] = metadata
def __missing__(self, key):
+ # Skip commonly accessed invalid variables
+ if key in ['bb', 'oe', 'int', 'bool', 'time', 'str', 'os']:
+ raise KeyError(key)
value = self.metadata.getVar(key)
if value is None or self.metadata.getVarFlag(key, 'func', False):
raise KeyError(key)
@@ -670,10 +673,11 @@ class DataSmart(MutableMapping):
self.varhistory.record(**loginfo)
self.setVar(newkey, val, ignore=True, parsing=True)
- for i in (__setvar_keyword__):
- src = self.getVarFlag(key, i, False)
- if src is None:
+ srcflags = self.getVarFlags(key, False, True) or {}
+ for i in srcflags:
+ if i not in (__setvar_keyword__):
continue
+ src = srcflags[i]
dest = self.getVarFlag(newkey, i, False) or []
dest.extend(src)