]> code.ossystems Code Review - openembedded-core.git/commitdiff
cache: use a set() for __depends
authorBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Fri, 4 Jun 2010 12:04:40 +0000 (14:04 +0200)
committerRichard Purdie <rpurdie@linux.intel.com>
Fri, 2 Jul 2010 14:41:35 +0000 (15:41 +0100)
to make updating depends easier/more intuitive/eventually faster

(Bitbake rev: f7c69462b8ba726861898817cc5b13174c78e35a)

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
bitbake/lib/bb/cache.py
bitbake/lib/bb/parse/__init__.py

index 8c1e6922fb632e47fee617910b1c9c7ef624c2cc..59ea8cfc7bca6258a519013a8c8f5658c5c42c0f 100644 (file)
@@ -106,8 +106,7 @@ class Cache:
         if fn in self.clean:
             return self.depends_cache[fn][var]
 
-        if not fn in self.depends_cache:
-            self.depends_cache[fn] = {}
+        self.depends_cache.setdefault(fn, {})
 
         if fn != self.data_fn:
             # We're trying to access data in the cache which doesn't exist
@@ -131,13 +130,12 @@ class Cache:
         # Make sure __depends makes the depends_cache
         # If we're a virtual class we need to make sure all our depends are appended
         # to the depends of fn.
-        depends = self.getVar("__depends", virtualfn) or []
+        depends = self.getVar("__depends", virtualfn) or set()
         self.depends_cache.setdefault(fn, {})
         if "__depends" not in self.depends_cache[fn] or not self.depends_cache[fn]["__depends"]:
             self.depends_cache[fn]["__depends"] = depends
-        for dep in depends:
-            if dep not in self.depends_cache[fn]["__depends"]:
-                self.depends_cache[fn]["__depends"].append(dep)
+        else:
+            self.depends_cache[fn]["__depends"].update(depends)
 
         # Make sure the variants always make it into the cache too
         self.getVar('__VARIANTS', virtualfn, True)
index fc06841d3f7f68bca2b65514b53db746d6b5bf81..95f372b00b8bd6b8e2585a5da7518781d867358e 100644 (file)
@@ -56,8 +56,8 @@ def update_mtime(f):
 def mark_dependency(d, f):
     if f.startswith('./'):
         f = "%s/%s" % (os.getcwd(), f[2:])
-    deps = bb.data.getVar('__depends', d) or []
-    deps.append( (f, cached_mtime(f)) )
+    deps = bb.data.getVar('__depends', d) or set()
+    deps.update([(f, cached_mtime(f))])
     bb.data.setVar('__depends', deps, d)
 
 def supports(fn, data):