diff options
| -rw-r--r-- | dex2oat/linker/image_writer.cc | 8 | ||||
| -rw-r--r-- | imgdiag/imgdiag.cc | 3 |
2 files changed, 8 insertions, 3 deletions
diff --git a/dex2oat/linker/image_writer.cc b/dex2oat/linker/image_writer.cc index d8973d4eda..ecf4350f50 100644 --- a/dex2oat/linker/image_writer.cc +++ b/dex2oat/linker/image_writer.cc @@ -681,8 +681,12 @@ ImageWriter::Bin ImageWriter::AssignImageBinSlot(mirror::Object* object, size_t // Move known dirty objects into their own sections. This includes: // - classes with dirty static fields. - if (dirty_image_objects_ != nullptr && - dirty_image_objects_->find(klass->PrettyDescriptor()) != dirty_image_objects_->end()) { + auto is_dirty = [&](ObjPtr<mirror::Class> k) REQUIRES_SHARED(Locks::mutator_lock_) { + std::string temp; + std::string_view descriptor = k->GetDescriptor(&temp); + return dirty_image_objects_->find(descriptor) != dirty_image_objects_->end(); + }; + if (dirty_image_objects_ != nullptr && is_dirty(klass)) { bin = Bin::kKnownDirty; } else if (klass->GetStatus() == ClassStatus::kVisiblyInitialized) { bin = Bin::kClassInitialized; diff --git a/imgdiag/imgdiag.cc b/imgdiag/imgdiag.cc index 94ac8a8e03..e8f4d05f10 100644 --- a/imgdiag/imgdiag.cc +++ b/imgdiag/imgdiag.cc @@ -514,7 +514,8 @@ class RegionSpecializedBase<mirror::Object> : public RegionCommon<mirror::Object void DumpDirtyObjects() REQUIRES_SHARED(Locks::mutator_lock_) { for (mirror::Object* obj : dirty_objects_) { if (obj->IsClass()) { - os_ << "Private dirty object: " << obj->AsClass()->PrettyDescriptor() << "\n"; + std::string temp; + os_ << "Private dirty object: " << obj->AsClass()->GetDescriptor(&temp) << "\n"; } } } |