summaryrefslogtreecommitdiff
path: root/runtime/mirror/object-refvisitor-inl.h
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/mirror/object-refvisitor-inl.h')
-rw-r--r--runtime/mirror/object-refvisitor-inl.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/runtime/mirror/object-refvisitor-inl.h b/runtime/mirror/object-refvisitor-inl.h
index 72aff4b686..140ef9f93b 100644
--- a/runtime/mirror/object-refvisitor-inl.h
+++ b/runtime/mirror/object-refvisitor-inl.h
@@ -72,6 +72,7 @@ inline void Object::VisitReferences(const Visitor& visitor,
const uint32_t class_flags = klass->GetClassFlags<kVerifyNone>();
if (LIKELY(class_flags == kClassFlagNormal) || class_flags == kClassFlagRecord) {
CheckNormalClass<kVerifyFlags>(klass);
+ DCHECK(klass->IsInstantiableNonArray()) << klass->PrettyDescriptor();
VisitInstanceFieldsReferences<kVerifyFlags, kReadBarrierOption>(klass, visitor);
return;
}
@@ -84,6 +85,7 @@ inline void Object::VisitReferences(const Visitor& visitor,
DCHECK(!klass->IsStringClass<kVerifyFlags>());
if (class_flags == kClassFlagClass) {
DCHECK(klass->IsClassClass<kVerifyFlags>());
+ DCHECK(klass->IsInstantiableNonArray()) << klass->PrettyDescriptor();
ObjPtr<Class> as_klass = AsClass<kVerifyNone>();
as_klass->VisitReferences<kVisitNativeRoots, kVerifyFlags, kReadBarrierOption>(klass, visitor);
return;
@@ -96,12 +98,14 @@ inline void Object::VisitReferences(const Visitor& visitor,
}
if ((class_flags & kClassFlagReference) != 0) {
+ DCHECK(klass->IsInstantiableNonArray()) << klass->PrettyDescriptor();
VisitInstanceFieldsReferences<kVerifyFlags, kReadBarrierOption>(klass, visitor);
ref_visitor(klass, AsReference<kVerifyFlags, kReadBarrierOption>());
return;
}
if (class_flags == kClassFlagDexCache) {
+ DCHECK(klass->IsInstantiableNonArray()) << klass->PrettyDescriptor();
DCHECK(klass->IsDexCacheClass<kVerifyFlags>());
ObjPtr<mirror::DexCache> const dex_cache = AsDexCache<kVerifyFlags, kReadBarrierOption>();
dex_cache->VisitReferences<kVisitNativeRoots,
@@ -111,6 +115,7 @@ inline void Object::VisitReferences(const Visitor& visitor,
}
if (class_flags == kClassFlagClassLoader) {
+ DCHECK(klass->IsInstantiableNonArray()) << klass->PrettyDescriptor();
DCHECK(klass->IsClassLoaderClass<kVerifyFlags>());
ObjPtr<mirror::ClassLoader> const class_loader =
AsClassLoader<kVerifyFlags, kReadBarrierOption>();