aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2023-01-21 12:24:49 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2023-01-24 21:59:31 +0000
commitfcb64e1138a20eb19560af3fc5d1fa748cc9cf34 (patch)
treef50bfcb8f8ae399011432f0fa7a6416e8931a2ad
parentf24bbaaddb36f479a59a958e7fc90ef454c19473 (diff)
downloadbitbake-fcb64e1138a20eb19560af3fc5d1fa748cc9cf34.tar.gz
data_smart: Small optimisation to _findVar()
Some users of _findVar don't need the override data and even getVarFlag doesn't need it in some common cases (parsing=True). Rearrange the code as the current overridedata approach doesn't need to be in the _findVar code anyway. This removes some search overhead from a critical path. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--lib/bb/data_smart.py16
1 files changed, 9 insertions, 7 deletions
diff --git a/lib/bb/data_smart.py b/lib/bb/data_smart.py
index e2c93597e..c597dbade 100644
--- a/lib/bb/data_smart.py
+++ b/lib/bb/data_smart.py
@@ -515,18 +515,18 @@ class DataSmart(MutableMapping):
dest = self.dict
while dest:
if var in dest:
- return dest[var], self.overridedata.get(var, None)
+ return dest[var]
if "_data" not in dest:
break
dest = dest["_data"]
- return None, self.overridedata.get(var, None)
+ return None
def _makeShadowCopy(self, var):
if var in self.dict:
return
- local_var, _ = self._findVar(var)
+ local_var = self._findVar(var)
if local_var:
self.dict[var] = copy.copy(local_var)
@@ -782,10 +782,12 @@ class DataSmart(MutableMapping):
if expand and cachename in self.expand_cache:
return self.expand_cache[cachename].value
- local_var, overridedata = self._findVar(var)
+ local_var = self._findVar(var)
value = None
removes = set()
- if flag == "_content" and overridedata is not None and not parsing:
+ if flag == "_content" and not parsing:
+ overridedata = self.overridedata.get(var, None)
+ if flag == "_content" and not parsing and overridedata is not None:
match = False
active = {}
self.need_overrides()
@@ -900,7 +902,7 @@ class DataSmart(MutableMapping):
def delVarFlag(self, var, flag, **loginfo):
self.expand_cache = {}
- local_var, _ = self._findVar(var)
+ local_var = self._findVar(var)
if not local_var:
return
if not var in self.dict:
@@ -943,7 +945,7 @@ class DataSmart(MutableMapping):
self.dict[var][i] = flags[i]
def getVarFlags(self, var, expand = False, internalflags=False):
- local_var, _ = self._findVar(var)
+ local_var = self._findVar(var)
flags = {}
if local_var: