vndk-def: Fix check-dep errors on vendor_libs

This commit fixes a check-dep bug introduced by 7e723126e4.  In
7e723126e4, graph.lib_pt[PT_VENDOR].values() was changed to return an
iterator instead of a set.  This means we can only traverse the iterator
once, thus vendor-to-vendor dependencies were treated as ineligible
dependencies.  This commit fixes the problem by creating a set() object
from the iterator, so that `vendor_libs` can be used several times.
This also makes it faster to lookup an object.

Bug: 37867089
Test: Run `vndk_definition_tool.py check-dep` against sailfish images
and vendor-to-vendor dependencies should not show up.

Merged-In: I3b36efa635220941278c491b83f308a65e9f0ffe
(cherry picked from commit ba097bb576)

Change-Id: I056ef0f9b5ddf684417cc080e53c0e4f07417496
This commit is contained in:
Logan Chien
2017-06-12 18:33:10 +08:00
parent 08d4dc40b6
commit 9c3458e73a

View File

@@ -2482,7 +2482,7 @@ class CheckDepCommand(ELFGraphCommand):
"""Check whether vendor libs are depending on non-eligible libs."""
num_errors = 0
vendor_libs = graph.lib_pt[PT_VENDOR].values()
vendor_libs = set(graph.lib_pt[PT_VENDOR].values())
eligible_libs = (tagged_libs.ll_ndk | tagged_libs.sp_ndk | \
tagged_libs.vndk_sp | tagged_libs.vndk_sp_indirect | \