diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2023-01-21 12:24:49 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2023-01-24 21:59:31 +0000 |
commit | fcb64e1138a20eb19560af3fc5d1fa748cc9cf34 (patch) | |
tree | f50bfcb8f8ae399011432f0fa7a6416e8931a2ad | |
parent | f24bbaaddb36f479a59a958e7fc90ef454c19473 (diff) | |
download | bitbake-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.py | 16 |
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: |