summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dex2oat/linker/image_writer.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/dex2oat/linker/image_writer.cc b/dex2oat/linker/image_writer.cc
index ecf4350f50..b69c750fd2 100644
--- a/dex2oat/linker/image_writer.cc
+++ b/dex2oat/linker/image_writer.cc
@@ -1641,7 +1641,8 @@ class ImageWriter::LayoutHelper::CollectClassesVisitor : public ClassVisitor {
size_t oat_index = pair.second;
DCHECK(image_writer->image_infos_[oat_index].class_table_.has_value());
ClassTable::ClassSet& class_table = *image_writer->image_infos_[oat_index].class_table_;
- bool inserted = class_table.insert(ClassTable::TableSlot(klass)).second;
+ uint32_t hash = ClassTable::TableSlot::HashDescriptor(klass);
+ bool inserted = class_table.InsertWithHash(ClassTable::TableSlot(klass, hash), hash).second;
DCHECK(inserted) << "Class " << klass->PrettyDescriptor()
<< " (" << klass.Ptr() << ") already inserted";
}
@@ -1656,7 +1657,8 @@ class ImageWriter::LayoutHelper::CollectClassesVisitor : public ClassVisitor {
DCHECK(image_info.class_table_.has_value());
ClassTable::ClassSet& table = *image_info.class_table_;
for (mirror::Class* klass : boot_image_classes) {
- bool inserted = table.insert(ClassTable::TableSlot(klass)).second;
+ uint32_t hash = ClassTable::TableSlot::HashDescriptor(klass);
+ bool inserted = table.InsertWithHash(ClassTable::TableSlot(klass, hash), hash).second;
DCHECK(inserted) << "Boot image class " << klass->PrettyDescriptor()
<< " (" << klass << ") already inserted";
}