[2/3] data_smart: Avoid multiple getVarFlag calls

Message ID 20220317122225.996597-2-richard.purdie@linuxfoundation.org
State Accepted, archived
Commit 505a4dd34e822bdf902d9b348dbcdf5b2c94e784
Headers show
Series [1/3] data_smart: Skip commonly accessed variables from variable data context lookup | expand

Commit Message

Richard Purdie March 17, 2022, 12:22 p.m. UTC
We can call getVarFlags() instead of the multiple getVarFlag calls
which is a little more efficient. This reduces the number of overall
function calls so is good but probably isn't much faster (or slower).

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
 lib/bb/data_smart.py | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

Patch

diff --git a/lib/bb/data_smart.py b/lib/bb/data_smart.py
index ca78d84133..dd20ca557e 100644
--- a/lib/bb/data_smart.py
+++ b/lib/bb/data_smart.py
@@ -673,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)