From 2bc4d35fb32defc59cd6ed1fc87e35924c201a5c Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Fri, 20 Jan 2017 11:28:04 +0000 Subject: data_smart: Fix unneeded variable manipulation If was pointed out that if we have: XXX = " A" XXX_remove_inactive-override = "YY" then XXX can become "A" and the leading space can be removed. This is because the remove override code changes the variable value even when there is no removals active. In the process it dirties the cache. We don't really need to do this so tweak the code accordingly. Signed-off-by: Richard Purdie --- lib/bb/data_smart.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/lib/bb/data_smart.py b/lib/bb/data_smart.py index 79d591a23..0cd41683d 100644 --- a/lib/bb/data_smart.py +++ b/lib/bb/data_smart.py @@ -784,13 +784,14 @@ class DataSmart(MutableMapping): if match: removes.extend(self.expand(r).split()) - filtered = filter(lambda v: v not in removes, - value.split()) - value = " ".join(filtered) - if expand and var in self.expand_cache: - # We need to ensure the expand cache has the correct value - # flag == "_content" here - self.expand_cache[var].value = value + if removes: + filtered = filter(lambda v: v not in removes, + value.split()) + value = " ".join(filtered) + if expand and var in self.expand_cache: + # We need to ensure the expand cache has the correct value + # flag == "_content" here + self.expand_cache[var].value = value return value def delVarFlag(self, var, flag, **loginfo): -- cgit 1.2.3-korg