From 0902850e979511b27a4c452b39b9557d57cbb039 Mon Sep 17 00:00:00 2001 From: Alexandru DAMIAN Date: Mon, 16 Sep 2013 07:40:20 +0000 Subject: bitbake: data_smart: Add explict None checks Simple if xxx checks end up calling len(xxx). We're interested in the specific case of None which means we can break out the iterator much earlier after the first item. This adds in the specific tests for None in what is a hot path in the data store code which gives small performance gains. (Bitbake rev: a4d81e44a7cd3dafb0bf12f7cac5ff511db18e60) Signed-off-by: Richard Purdie --- bitbake/lib/bb/data_smart.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'bitbake') diff --git a/bitbake/lib/bb/data_smart.py b/bitbake/lib/bb/data_smart.py index 1bb186e100..970e404b17 100644 --- a/bitbake/lib/bb/data_smart.py +++ b/bitbake/lib/bb/data_smart.py @@ -588,7 +588,7 @@ class DataSmart(MutableMapping): def getVarFlag(self, var, flag, expand=False, noweakdefault=False): local_var = self._findVar(var) value = None - if local_var: + if local_var is not None: if flag in local_var: value = copy.copy(local_var[flag]) elif flag == "_content" and "defaultval" in local_var and not noweakdefault: @@ -599,7 +599,7 @@ class DataSmart(MutableMapping): if flag == "_content": cachename = var value = self.expand(value, cachename) - if value and flag == "_content" and local_var and "_removeactive" in local_var: + if value is not None and flag == "_content" and local_var is not None and "_removeactive" in local_var: filtered = filter(lambda v: v not in local_var["_removeactive"], value.split(" ")) value = " ".join(filtered) -- cgit v1.2.3-54-g00ecf