base.bbclass: in base_contains, check for var existance before using it
authorBrian Pomerantz <bapper@mvista.com>
Fri, 15 Jan 2010 07:36:58 +0000 (07:36 +0000)
committerMarcin Juszkiewicz <marcin@juszkiewicz.com.pl>
Mon, 1 Feb 2010 17:22:25 +0000 (18:22 +0100)
When using base_contains() to check for a string in a variable for a,
if the variable is not defined an exception occurs.  By checking the
existance of the variable and returning false if it isn't there,
a value can be checked for a variable regardless of whether or not it
is defined.

Signed-off-by: Brian Pomerantz <bapper@mvista.com>
Signed-off-by: Chris Larson <clarson@mvista.com>
Acked-by: Khem Raj <raj.khem@gmail.com>
Acked-by: Marcin Juszkiewicz <marcin@juszkiewicz.com.pl>
Signed-off-by: Marcin Juszkiewicz <marcin@juszkiewicz.com.pl>
classes/base.bbclass

index 8465286..9a24272 100644 (file)
@@ -244,14 +244,17 @@ def base_version_less_or_equal(variable, checkvalue, truevalue, falsevalue, d):
         return falsevalue
 
 def base_contains(variable, checkvalues, truevalue, falsevalue, d):
+       val = bb.data.getVar(variable,d,1)
+       if not val:
+               return falsevalue
        matches = 0
        if type(checkvalues).__name__ == "str":
                checkvalues = [checkvalues]
        for value in checkvalues:
-               if bb.data.getVar(variable,d,1).find(value) != -1:      
+               if val.find(value) != -1:
                        matches = matches + 1
        if matches == len(checkvalues):
-               return truevalue                
+               return truevalue
        return falsevalue
 
 def base_both_contain(variable1, variable2, checkvalue, d):