summaryrefslogtreecommitdiff
path: root/runtime/class_table-inl.h
diff options
context:
space:
mode:
author Nicolas Geoffray <ngeoffray@google.com> 2023-01-30 14:29:11 +0000
committer Nicolas Geoffray <ngeoffray@google.com> 2023-02-01 09:52:45 +0000
commit0f6af5e3b51a7f5905d09a98ec8d531541666015 (patch)
tree7ed720cc521bb7f6e3b092cf6900a34d050c3aba /runtime/class_table-inl.h
parentd04ed700190056ecd367ee41e6b7f3b87dc7f901 (diff)
Reland "Write classes in runtime-generated app image."
This reverts commit 24b3d648ff6c2c200003f55ac63fc910d7bfd40f. Bug: 260557058 Reason for revert: - Encode class loader context in image, and check it at load time. - Set nterp entrypoint to methods that can. Test: test.py Test: atest com.android.bluetooth.opp.BluetoothOppObexServerSessionTest#onPut_withUnsupportedMimeTypeInHeader_returnsHttpBadRequest Change-Id: Ibf4a8604c4a226d1acc021103668e211446bb53c
Diffstat (limited to 'runtime/class_table-inl.h')
-rw-r--r--runtime/class_table-inl.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/runtime/class_table-inl.h b/runtime/class_table-inl.h
index 67eeb553a4..ecc8a0a620 100644
--- a/runtime/class_table-inl.h
+++ b/runtime/class_table-inl.h
@@ -213,6 +213,11 @@ inline ClassTable::TableSlot::TableSlot(ObjPtr<mirror::Class> klass, uint32_t de
DCHECK_EQ(descriptor_hash, klass->DescriptorHash());
}
+inline ClassTable::TableSlot::TableSlot(uint32_t ptr, uint32_t descriptor_hash)
+ : data_(ptr | MaskHash(descriptor_hash)) {
+ DCHECK_ALIGNED(ptr, kObjectAlignment);
+}
+
template <typename Filter>
inline void ClassTable::RemoveStrongRoots(const Filter& filter) {
WriterMutexLock mu(Thread::Current(), lock_);
@@ -227,6 +232,11 @@ inline ObjPtr<mirror::Class> ClassTable::LookupByDescriptor(ObjPtr<mirror::Class
return Lookup(descriptor, hash);
}
+inline size_t ClassTable::Size() const {
+ ReaderMutexLock mu(Thread::Current(), lock_);
+ return classes_.size();
+}
+
} // namespace art
#endif // ART_RUNTIME_CLASS_TABLE_INL_H_