summaryrefslogtreecommitdiffstats
path: root/bitbake
diff options
context:
space:
mode:
authorBernhard Reutner-Fischer <rep.dot.nop@gmail.com>2010-06-04 14:04:40 +0200
committerRichard Purdie <rpurdie@linux.intel.com>2010-07-02 15:41:35 +0100
commit30216c65e59e7072bed5001598240dcc58017940 (patch)
treebbbe00b0888b3e8f6ef00b449444b1d70a19a316 /bitbake
parentcf79cf127b370160b59e088acec187b0f0212e7f (diff)
downloadpoky-30216c65e59e7072bed5001598240dcc58017940.tar.gz
cache: use a set() for __depends
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>
Diffstat (limited to 'bitbake')
-rw-r--r--bitbake/lib/bb/cache.py10
-rw-r--r--bitbake/lib/bb/parse/__init__.py4
2 files changed, 6 insertions, 8 deletions
diff --git a/bitbake/lib/bb/cache.py b/bitbake/lib/bb/cache.py
index 8c1e6922fb..59ea8cfc7b 100644
--- a/bitbake/lib/bb/cache.py
+++ b/bitbake/lib/bb/cache.py
@@ -106,8 +106,7 @@ class Cache:
106 if fn in self.clean: 106 if fn in self.clean:
107 return self.depends_cache[fn][var] 107 return self.depends_cache[fn][var]
108 108
109 if not fn in self.depends_cache: 109 self.depends_cache.setdefault(fn, {})
110 self.depends_cache[fn] = {}
111 110
112 if fn != self.data_fn: 111 if fn != self.data_fn:
113 # We're trying to access data in the cache which doesn't exist 112 # We're trying to access data in the cache which doesn't exist
@@ -131,13 +130,12 @@ class Cache:
131 # Make sure __depends makes the depends_cache 130 # Make sure __depends makes the depends_cache
132 # If we're a virtual class we need to make sure all our depends are appended 131 # If we're a virtual class we need to make sure all our depends are appended
133 # to the depends of fn. 132 # to the depends of fn.
134 depends = self.getVar("__depends", virtualfn) or [] 133 depends = self.getVar("__depends", virtualfn) or set()
135 self.depends_cache.setdefault(fn, {}) 134 self.depends_cache.setdefault(fn, {})
136 if "__depends" not in self.depends_cache[fn] or not self.depends_cache[fn]["__depends"]: 135 if "__depends" not in self.depends_cache[fn] or not self.depends_cache[fn]["__depends"]:
137 self.depends_cache[fn]["__depends"] = depends 136 self.depends_cache[fn]["__depends"] = depends
138 for dep in depends: 137 else:
139 if dep not in self.depends_cache[fn]["__depends"]: 138 self.depends_cache[fn]["__depends"].update(depends)
140 self.depends_cache[fn]["__depends"].append(dep)
141 139
142 # Make sure the variants always make it into the cache too 140 # Make sure the variants always make it into the cache too
143 self.getVar('__VARIANTS', virtualfn, True) 141 self.getVar('__VARIANTS', virtualfn, True)
diff --git a/bitbake/lib/bb/parse/__init__.py b/bitbake/lib/bb/parse/__init__.py
index fc06841d3f..95f372b00b 100644
--- a/bitbake/lib/bb/parse/__init__.py
+++ b/bitbake/lib/bb/parse/__init__.py
@@ -56,8 +56,8 @@ def update_mtime(f):
56def mark_dependency(d, f): 56def mark_dependency(d, f):
57 if f.startswith('./'): 57 if f.startswith('./'):
58 f = "%s/%s" % (os.getcwd(), f[2:]) 58 f = "%s/%s" % (os.getcwd(), f[2:])
59 deps = bb.data.getVar('__depends', d) or [] 59 deps = bb.data.getVar('__depends', d) or set()
60 deps.append( (f, cached_mtime(f)) ) 60 deps.update([(f, cached_mtime(f))])
61 bb.data.setVar('__depends', deps, d) 61 bb.data.setVar('__depends', deps, d)
62 62
63def supports(fn, data): 63def supports(fn, data):