From f393413c3f823ef4a60acfcc41c3920933510fc1 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Fri, 22 Jul 2011 15:59:13 -0700 Subject: LinkageMapELF: add getOwners() method and use it This preserves the owner information inside LinkageMap.rebuild() and uses it to implement a getOwners() method, which makes it possible to efficiently lookup owners of library providers and consumers. --- pym/_emerge/actions.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'pym/_emerge/actions.py') diff --git a/pym/_emerge/actions.py b/pym/_emerge/actions.py index 219ed7101..610fc73d1 100644 --- a/pym/_emerge/actions.py +++ b/pym/_emerge/actions.py @@ -992,7 +992,15 @@ def calc_depclean(settings, trees, ldpath_mtimes, search_files.update(providers) writemsg_level(">>> Assigning files to packages...\n") - file_owners = real_vardb._owners.getFileOwnerMap(search_files) + file_owners = {} + for f in search_files: + owner_set = set() + for owner in linkmap.getOwners(f): + owner_dblink = real_vardb._dblink(owner) + if owner_dblink.exists(): + owner_set.add(owner_dblink) + if owner_set: + file_owners[f] = owner_set for pkg, consumers in list(consumer_map.items()): for lib, consumer_providers in list(consumers.items()): -- cgit v1.2.3-1-g7c22