bitbake: data_smart: Fix caching issue for double remove references
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 25 Mar 2014 22:23:09 +0000 (22:23 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 25 Mar 2014 22:28:42 +0000 (22:28 +0000)
FOO = "foo bar"
FOO_remove = "bar"
FOO_FOO = "${FOO} ${FOO}"

would show FOO_FOO = "foo foo bar" rather than the expected "foo foo".

This is actually a cache bug, this patch ensures the right value is
put into the cache. The preceeding patch adds a test case to ensure
we don't regress in future.

[YOCTO #6037]

(Bitbake rev: 2a80735183e8faa110b4c6d8d85c4707f28e03a1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
bitbake/lib/bb/data_smart.py

index 742c7fb..e4bdb2f 100644 (file)
@@ -614,6 +614,10 @@ class DataSmart(MutableMapping):
             filtered = filter(lambda v: v not in local_var["_removeactive"],
                               value.split(" "))
             value = " ".join(filtered)
+            if expand:
+                 # 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):