Revert "Make sure that const-class linkage is preserved, try again."
Reverting due to test failures as expected.
Bug: 30627598
Bug: 33231647
This reverts commit cb5ab35980a86b05586c402924d2e7ca9df25758.
Squashed revert "Additional debug logging for bug 33231647."
This reverts commit 00a441033db28d243fc33692d30eb2755fa81728.
Change-Id: I0c0ee1f70d47540fec99f8a797ce13571c16147c
diff --git a/runtime/class_table.cc b/runtime/class_table.cc
index 81cdce5..0fcce6b 100644
--- a/runtime/class_table.cc
+++ b/runtime/class_table.cc
@@ -83,29 +83,18 @@
#pragma clang diagnostic pop // http://b/31104323
-size_t ClassTable::CountDefiningLoaderClasses(ObjPtr<mirror::ClassLoader> defining_loader,
- const ClassSet& set) const {
- size_t count = 0;
- for (const GcRoot<mirror::Class>& klass : set) {
- if (klass.Read()->GetClassLoader() == defining_loader) {
- ++count;
- }
- }
- return count;
-}
-
-size_t ClassTable::NumZygoteClasses(ObjPtr<mirror::ClassLoader> defining_loader) const {
+size_t ClassTable::NumZygoteClasses() const {
ReaderMutexLock mu(Thread::Current(), lock_);
size_t sum = 0;
for (size_t i = 0; i < classes_.size() - 1; ++i) {
- sum += CountDefiningLoaderClasses(defining_loader, classes_[i]);
+ sum += classes_[i].Size();
}
return sum;
}
-size_t ClassTable::NumNonZygoteClasses(ObjPtr<mirror::ClassLoader> defining_loader) const {
+size_t ClassTable::NumNonZygoteClasses() const {
ReaderMutexLock mu(Thread::Current(), lock_);
- return CountDefiningLoaderClasses(defining_loader, classes_.back());
+ return classes_.back().Size();
}
mirror::Class* ClassTable::Lookup(const char* descriptor, size_t hash) {
@@ -113,7 +102,7 @@
for (ClassSet& class_set : classes_) {
auto it = class_set.FindWithHash(descriptor, hash);
if (it != class_set.end()) {
- return it->Read();
+ return it->Read();
}
}
return nullptr;
@@ -153,6 +142,7 @@
bool ClassTable::ClassDescriptorHashEquals::operator()(const GcRoot<mirror::Class>& a,
const GcRoot<mirror::Class>& b) const {
+ DCHECK_EQ(a.Read()->GetClassLoader(), b.Read()->GetClassLoader());
std::string temp;
return a.Read()->DescriptorEquals(b.Read()->GetDescriptor(&temp));
}