summaryrefslogtreecommitdiff
path: root/runtime/class_linker_test.cc
diff options
context:
space:
mode:
author Lokesh Gidra <lokeshgidra@google.com> 2024-06-27 20:20:04 +0000
committer Lokesh Gidra <lokeshgidra@google.com> 2024-08-08 15:25:11 +0000
commit6f40f3867459b66ec315dd4f70f4474171065aab (patch)
treedb2ddff187f04ee0a4238de6101ebbaab15c1bed /runtime/class_linker_test.cc
parentf067186db77c8cca5d17a1253d9a87b2088b0c4b (diff)
Use variable sized ref-offset bitmap for fast VisitReferences()
Bug: 304325190 Test: art/test/testrunner/testrunner.py --host Change-Id: I6e25143b827acaa12ff5bd94e6196faaed461f4a
Diffstat (limited to 'runtime/class_linker_test.cc')
-rw-r--r--runtime/class_linker_test.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/runtime/class_linker_test.cc b/runtime/class_linker_test.cc
index 932341d895..18f4b297ac 100644
--- a/runtime/class_linker_test.cc
+++ b/runtime/class_linker_test.cc
@@ -395,7 +395,8 @@ class ClassLinkerTest : public CommonRuntimeTest {
k = k->GetSuperClass();
}
EXPECT_GE(total_num_reference_instance_fields, 1U); // Should always have Object's class.
- if (klass->GetReferenceInstanceOffsets() != mirror::Class::kClassWalkSuper) {
+ if ((klass->GetReferenceInstanceOffsets() & mirror::Class::kVisitReferencesSlowpathMask) == 0 &&
+ klass->ShouldHaveEmbeddedVTable()) {
// The reference instance offsets have a bit set for each reference offset.
// +1 for Object's class.
EXPECT_EQ(static_cast<uint32_t>(POPCOUNT(klass->GetReferenceInstanceOffsets())) + 1,