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:44 +0000 |
commit | ea12b673cfe5253c2c3baf3325718156b82cad1b (patch) | |
tree | 41a8561e62f07f3588c6dc4724fc3ed979bd2146 | |
parent | 663c259ffa3b013cb7cc3f4e1dc69aca917706b2 (diff) | |
download | poky-ea12b673cfe5253c2c3baf3325718156b82cad1b.tar.gz |
bitbake: 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.
(Bitbake rev: fcb64e1138a20eb19560af3fc5d1fa748cc9cf34)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | bitbake/lib/bb/data_smart.py | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/bitbake/lib/bb/data_smart.py b/bitbake/lib/bb/data_smart.py index e2c93597e5..c597dbade8 100644 --- a/bitbake/lib/bb/data_smart.py +++ b/bitbake/lib/bb/data_smart.py | |||
@@ -515,18 +515,18 @@ class DataSmart(MutableMapping): | |||
515 | dest = self.dict | 515 | dest = self.dict |
516 | while dest: | 516 | while dest: |
517 | if var in dest: | 517 | if var in dest: |
518 | return dest[var], self.overridedata.get(var, None) | 518 | return dest[var] |
519 | 519 | ||
520 | if "_data" not in dest: | 520 | if "_data" not in dest: |
521 | break | 521 | break |
522 | dest = dest["_data"] | 522 | dest = dest["_data"] |
523 | return None, self.overridedata.get(var, None) | 523 | return None |
524 | 524 | ||
525 | def _makeShadowCopy(self, var): | 525 | def _makeShadowCopy(self, var): |
526 | if var in self.dict: | 526 | if var in self.dict: |
527 | return | 527 | return |
528 | 528 | ||
529 | local_var, _ = self._findVar(var) | 529 | local_var = self._findVar(var) |
530 | 530 | ||
531 | if local_var: | 531 | if local_var: |
532 | self.dict[var] = copy.copy(local_var) | 532 | self.dict[var] = copy.copy(local_var) |
@@ -782,10 +782,12 @@ class DataSmart(MutableMapping): | |||
782 | if expand and cachename in self.expand_cache: | 782 | if expand and cachename in self.expand_cache: |
783 | return self.expand_cache[cachename].value | 783 | return self.expand_cache[cachename].value |
784 | 784 | ||
785 | local_var, overridedata = self._findVar(var) | 785 | local_var = self._findVar(var) |
786 | value = None | 786 | value = None |
787 | removes = set() | 787 | removes = set() |
788 | if flag == "_content" and overridedata is not None and not parsing: | 788 | if flag == "_content" and not parsing: |
789 | overridedata = self.overridedata.get(var, None) | ||
790 | if flag == "_content" and not parsing and overridedata is not None: | ||
789 | match = False | 791 | match = False |
790 | active = {} | 792 | active = {} |
791 | self.need_overrides() | 793 | self.need_overrides() |
@@ -900,7 +902,7 @@ class DataSmart(MutableMapping): | |||
900 | def delVarFlag(self, var, flag, **loginfo): | 902 | def delVarFlag(self, var, flag, **loginfo): |
901 | self.expand_cache = {} | 903 | self.expand_cache = {} |
902 | 904 | ||
903 | local_var, _ = self._findVar(var) | 905 | local_var = self._findVar(var) |
904 | if not local_var: | 906 | if not local_var: |
905 | return | 907 | return |
906 | if not var in self.dict: | 908 | if not var in self.dict: |
@@ -943,7 +945,7 @@ class DataSmart(MutableMapping): | |||
943 | self.dict[var][i] = flags[i] | 945 | self.dict[var][i] = flags[i] |
944 | 946 | ||
945 | def getVarFlags(self, var, expand = False, internalflags=False): | 947 | def getVarFlags(self, var, expand = False, internalflags=False): |
946 | local_var, _ = self._findVar(var) | 948 | local_var = self._findVar(var) |
947 | flags = {} | 949 | flags = {} |
948 | 950 | ||
949 | if local_var: | 951 | if local_var: |