bitbake: taskdata: refactor get_providermap

Added optional parameter 'prefix' to filter out names that
don't start with specified prefix. Changed existing call
of get_providermap according to changed API.

Optimized the code: got rid of extra loop and temporary
list variable virts.

(Bitbake rev: df5a1392d6f91ccb44a99721c7d847da242121bb)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Elliot Smith <elliot.smith@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ed Bartosh
2016-01-08 11:17:15 +00:00
committed by Richard Purdie
parent 46731daa5f
commit 7e380d460c
2 changed files with 8 additions and 11 deletions

View File

@@ -808,7 +808,7 @@ class RunQueueData:
invalidate_task(fn, st, True)
# Create and print to the logs a virtual/xxxx -> PN (fn) table
virtmap = taskData.get_providermap()
virtmap = taskData.get_providermap(prefix="virtual/")
virtpnmap = {}
for v in virtmap:
virtpnmap[v] = self.dataCache.pkg_fn[virtmap[v]]

View File

@@ -612,17 +612,14 @@ class TaskData:
break
# self.dump_data()
def get_providermap(self):
virts = []
virtmap = {}
def get_providermap(self, prefix=None):
provmap = {}
for name in self.build_names_index:
if name.startswith("virtual/"):
virts.append(name)
for v in virts:
if self.have_build_target(v):
virtmap[v] = self.fn_index[self.get_provider(v)[0]]
return virtmap
if prefix and not name.startswith(prefix):
continue
if self.have_build_target(name):
provmap[name] = self.fn_index[self.get_provider(name)[0]]
return provmap
def dump_data(self):
"""