diff options
| author | 2014-08-15 22:35:46 -0700 | |
|---|---|---|
| committer | 2014-08-18 09:38:39 -0700 | |
| commit | e98c8899ba2ae36d52aa7152a29469c314fdc20d (patch) | |
| tree | 087cb6143c044fb8f32de770403ef07d99ae9dd0 /compiler/driver/compiler_driver.cc | |
| parent | 078f4ea927b3259d698ca3dd542a096943e2cccd (diff) | |
ART: Avoid expensive class lookup in compiler driver
When we are not compiling multidex, avoid an expensive by-descriptor
lookup for classes when deciding whether to skip compilation.
Bug: 17072698
(cherry picked from commit d84f916d35bb0dc74d7daa075b883e5ee1ce1109)
Change-Id: I19bcb2a2928207fcae0badd466cdc52945bd37c4
Diffstat (limited to 'compiler/driver/compiler_driver.cc')
| -rw-r--r-- | compiler/driver/compiler_driver.cc | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/compiler/driver/compiler_driver.cc b/compiler/driver/compiler_driver.cc index 645fc1c155..1dd98fefcf 100644 --- a/compiler/driver/compiler_driver.cc +++ b/compiler/driver/compiler_driver.cc @@ -1524,7 +1524,13 @@ static bool SkipClass(ClassLinker* class_linker, jobject class_loader, const Dex return true; } - return SkipClassCheckClassPath(descriptor, dex_file, dex_files); + if (dex_files.size() > 1) { + // Multi-dex compilation, only take first class. + return SkipClassCheckClassPath(descriptor, dex_file, dex_files); + } else { + // Single dex, take everything. + return false; + } } // A fast version of SkipClass above if the class pointer is available |