Re-add missing read barriers
Also added DCHECKS
Change-Id: Ie4c43432479e0e8db197f7a6568a33126e38ccdb
diff --git a/runtime/reference_table.cc b/runtime/reference_table.cc
index 17eb7ed..366b1f0 100644
--- a/runtime/reference_table.cc
+++ b/runtime/reference_table.cc
@@ -78,6 +78,11 @@
Locks::mutator_lock_->AssertSharedHeld(Thread::Current());
mirror::Object* obj1 = root1.Read<kWithoutReadBarrier>();
mirror::Object* obj2 = root2.Read<kWithoutReadBarrier>();
+ DCHECK(obj1 != nullptr);
+ DCHECK(obj2 != nullptr);
+ Runtime* runtime = Runtime::Current();
+ DCHECK(!runtime->IsClearedJniWeakGlobal(obj1));
+ DCHECK(!runtime->IsClearedJniWeakGlobal(obj2));
// Sort by class...
if (obj1->GetClass() != obj2->GetClass()) {
return obj1->GetClass()->IdentityHashCode() < obj2->IdentityHashCode();
@@ -153,7 +158,7 @@
os << " Last " << (count - first) << " entries (of " << count << "):\n";
Runtime* runtime = Runtime::Current();
for (int idx = count - 1; idx >= first; --idx) {
- mirror::Object* ref = entries[idx].Read<kWithoutReadBarrier>();
+ mirror::Object* ref = entries[idx].Read();
if (ref == nullptr) {
continue;
}
@@ -189,7 +194,7 @@
// Make a copy of the table and sort it, only adding non null and not cleared elements.
Table sorted_entries;
for (GcRoot<mirror::Object>& root : entries) {
- if (!root.IsNull() && !runtime->IsClearedJniWeakGlobal(root.Read<kWithoutReadBarrier>())) {
+ if (!root.IsNull() && !runtime->IsClearedJniWeakGlobal(root.Read())) {
sorted_entries.push_back(root);
}
}