diff options
author | 2023-06-28 09:36:04 +0000 | |
---|---|---|
committer | 2023-06-28 15:11:35 +0000 | |
commit | 7396ac0c613253f41fed79d3a53f9c33e754e52d (patch) | |
tree | f03ed6c86ba7ab1b3d75826041323d3a4f871ff4 /runtime/class_linker.cc | |
parent | b851c021cde9100ecb780beccb833494c57a1f46 (diff) |
Fix new bss roots assertion during marking phase
Earlier we are asserting that a bss root can only be a class. But it's
also possible to be a string.
Also enables 092-locale art-test.
Bug: 288532125
Bug: 288603111
Test: art/test/testrunner/testrunner.py --host -t 092-locale
Change-Id: I1e64f571b4ab7121b75c0902b2b4477dc086f13b
Diffstat (limited to 'runtime/class_linker.cc')
-rw-r--r-- | runtime/class_linker.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/runtime/class_linker.cc b/runtime/class_linker.cc index 687ab09265..9aa29b8a44 100644 --- a/runtime/class_linker.cc +++ b/runtime/class_linker.cc @@ -2424,7 +2424,7 @@ void ClassLinker::VisitClassRoots(RootVisitor* visitor, VisitRootFlags flags) { for (GcRoot<mirror::Object>& root : oat_file->GetBssGcRoots()) { ObjPtr<mirror::Object> old_ref = root.Read<kWithoutReadBarrier>(); if (old_ref != nullptr) { - DCHECK(old_ref->IsClass()); + DCHECK(old_ref->IsClass() || old_ref->IsString()); root.VisitRoot(visitor, RootInfo(kRootStickyClass)); ObjPtr<mirror::Object> new_ref = root.Read<kWithoutReadBarrier>(); // Concurrent moving GC marked new roots through the to-space invariant. |