diff options
author | 2018-02-01 19:09:59 +0300 | |
---|---|---|
committer | 2018-03-13 17:01:21 +0300 | |
commit | be4c2bd892bd167a50b4dfa7133e70a809197698 (patch) | |
tree | 150898533382fb98c160e265a5f31f66ded754f0 /runtime/class_table-inl.h | |
parent | bfce631960ae2ab381180beb55cf34ab3b445aaa (diff) |
Fix dangling SingleImplementations left after class unloading
Test: make test-art-host, manual using sample code
bug: 73143991
Change-Id: I4d56b39c69d4ed60266a8b90b9e9d18fba7b8227
Diffstat (limited to 'runtime/class_table-inl.h')
-rw-r--r-- | runtime/class_table-inl.h | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/runtime/class_table-inl.h b/runtime/class_table-inl.h index 718e93a97d..c59e2e881d 100644 --- a/runtime/class_table-inl.h +++ b/runtime/class_table-inl.h @@ -60,12 +60,12 @@ void ClassTable::VisitRoots(const Visitor& visitor) { } } -template <typename Visitor> +template <typename Visitor, ReadBarrierOption kReadBarrierOption> bool ClassTable::Visit(Visitor& visitor) { ReaderMutexLock mu(Thread::Current(), lock_); for (ClassSet& class_set : classes_) { for (TableSlot& table_slot : class_set) { - if (!visitor(table_slot.Read())) { + if (!visitor(table_slot.Read<kReadBarrierOption>())) { return false; } } @@ -73,12 +73,12 @@ bool ClassTable::Visit(Visitor& visitor) { return true; } -template <typename Visitor> +template <typename Visitor, ReadBarrierOption kReadBarrierOption> bool ClassTable::Visit(const Visitor& visitor) { ReaderMutexLock mu(Thread::Current(), lock_); for (ClassSet& class_set : classes_) { for (TableSlot& table_slot : class_set) { - if (!visitor(table_slot.Read())) { + if (!visitor(table_slot.Read<kReadBarrierOption>())) { return false; } } |