summaryrefslogtreecommitdiff
path: root/runtime/class_linker.cc
diff options
context:
space:
mode:
author Nicolas Geoffray <ngeoffray@google.com> 2025-02-26 23:34:49 +0000
committer Nicolas Geoffray <ngeoffray@google.com> 2025-03-03 00:27:06 -0800
commite280e935f1faa066ab8c0e2ab5bf87d064065412 (patch)
treec1a5c20389213f51f4d06c6da69901b28f870bc7 /runtime/class_linker.cc
parent3477cfd772c29976a705e70a9cbc20f6c3ecfc81 (diff)
Flag classes that have unresolved type checks.
This allows skipping resolving the field type when setting a field. Test: test.py Change-Id: I1945deca5fdcccca7e67297eca8765b1f2f516f3
Diffstat (limited to 'runtime/class_linker.cc')
-rw-r--r--runtime/class_linker.cc3
1 files changed, 3 insertions, 0 deletions
diff --git a/runtime/class_linker.cc b/runtime/class_linker.cc
index b4720c2dbc..70eea2d268 100644
--- a/runtime/class_linker.cc
+++ b/runtime/class_linker.cc
@@ -5311,6 +5311,9 @@ verifier::FailureKind ClassLinker::VerifyClass(Thread* self,
Runtime::Current()->GetCompilerCallbacks()->UpdateClassState(
ClassReference(&klass->GetDexFile(), klass->GetDexClassDefIndex()), klass->GetStatus());
} else {
+ if (verifier_failure == verifier::FailureKind::kTypeChecksFailure) {
+ klass->SetHasTypeChecksFailure();
+ }
mirror::Class::SetStatus(klass, ClassStatus::kVerified, self);
}