OSDN Git Service
(root)
/
android-x86
/
art.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
2048b01
)
ART: Fix assumption in class profile collection
author
Andreas Gampe
<agampe@google.com>
Wed, 9 Mar 2016 23:52:21 +0000
(15:52 -0800)
committer
Andreas Gampe
<agampe@google.com>
Thu, 10 Mar 2016 00:19:07 +0000
(16:19 -0800)
The dex cache may contain erroneous classes. Filter, instead of
DCHECK.
Bug:
27500691
(cherry picked from commit
4309f6129795ade42591b872e44a33cec95f4e79
)
Change-Id: Ic99bca3a7e54a5e7893c801ec5ac92cbf690cd67
runtime/class_linker.cc
patch
|
blob
|
history
diff --git
a/runtime/class_linker.cc
b/runtime/class_linker.cc
index
01d140a
..
d51a1f7
100644
(file)
--- a/
runtime/class_linker.cc
+++ b/
runtime/class_linker.cc
@@
-7714,7
+7714,10
@@
std::set<DexCacheResolvedClasses> ClassLinker::GetResolvedClasses(bool ignore_bo
}
++num_resolved;
DCHECK(!klass->IsProxyClass());
- DCHECK(klass->IsResolved());
+ if (!klass->IsResolved()) {
+ DCHECK(klass->IsErroneous());
+ continue;
+ }
mirror::DexCache* klass_dex_cache = klass->GetDexCache();
if (klass_dex_cache == dex_cache) {
const size_t class_def_idx = klass->GetDexClassDefIndex();