diff options
Diffstat (limited to 'dex2oat/dex2oat.cc')
-rw-r--r-- | dex2oat/dex2oat.cc | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/dex2oat/dex2oat.cc b/dex2oat/dex2oat.cc index 2e1b7ae..10949e4 100644 --- a/dex2oat/dex2oat.cc +++ b/dex2oat/dex2oat.cc @@ -1503,11 +1503,16 @@ class Dex2Oat FINAL { return failure_count; } - // Returns true if dex_files has a dex with the named location. + // Returns true if dex_files has a dex with the named location. We compare canonical locations, + // so that relative and absolute paths will match. Not caching for the dex_files isn't very + // efficient, but under normal circumstances the list is neither large nor is this part too + // sensitive. static bool DexFilesContains(const std::vector<const DexFile*>& dex_files, const std::string& location) { + std::string canonical_location(DexFile::GetDexCanonicalLocation(location.c_str())); for (size_t i = 0; i < dex_files.size(); ++i) { - if (dex_files[i]->GetLocation() == location) { + if (DexFile::GetDexCanonicalLocation(dex_files[i]->GetLocation().c_str()) == + canonical_location) { return true; } } |