From 8d6768d47b66a688d35399d524ad5a5450e9d9d4 Mon Sep 17 00:00:00 2001 From: Vladimir Marko Date: Tue, 14 Mar 2017 10:13:21 +0000 Subject: Revert^6 "Hash-based dex cache type array." Fixed ImageWriter to write class table also if it contains only boot class loader classes. Added a regression test and added extra checks for debug-build to verify that dex cache types from app image are also in the class table. Removed some unnecessary debug output. Test: 158-app-image-class-table Bug: 34839984 Bug: 30627598 Bug: 34659969 This reverts commit 0b66d6174bf1f6023f9d36dda8538490b79c2e9f. Change-Id: I6a747904940c6ebc297f4946feef99dc0adf930c --- runtime/class_table.cc | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'runtime/class_table.cc') diff --git a/runtime/class_table.cc b/runtime/class_table.cc index 7c3ad12b61..374b711aa8 100644 --- a/runtime/class_table.cc +++ b/runtime/class_table.cc @@ -113,6 +113,20 @@ size_t ClassTable::NumNonZygoteClasses(ObjPtr defining_load return CountDefiningLoaderClasses(defining_loader, classes_.back()); } +size_t ClassTable::NumReferencedZygoteClasses() const { + ReaderMutexLock mu(Thread::Current(), lock_); + size_t sum = 0; + for (size_t i = 0; i < classes_.size() - 1; ++i) { + sum += classes_[i].Size(); + } + return sum; +} + +size_t ClassTable::NumReferencedNonZygoteClasses() const { + ReaderMutexLock mu(Thread::Current(), lock_); + return classes_.back().Size(); +} + mirror::Class* ClassTable::Lookup(const char* descriptor, size_t hash) { DescriptorHashPair pair(descriptor, hash); ReaderMutexLock mu(Thread::Current(), lock_); -- cgit v1.2.3-59-g8ed1b