diff options
Diffstat (limited to 'compiler/utils')
| -rw-r--r-- | compiler/utils/atomic_method_ref_map-inl.h | 9 | ||||
| -rw-r--r-- | compiler/utils/atomic_method_ref_map.h | 2 |
2 files changed, 11 insertions, 0 deletions
diff --git a/compiler/utils/atomic_method_ref_map-inl.h b/compiler/utils/atomic_method_ref_map-inl.h index 70ea028b17..d71c2fe997 100644 --- a/compiler/utils/atomic_method_ref_map-inl.h +++ b/compiler/utils/atomic_method_ref_map-inl.h @@ -78,6 +78,15 @@ inline void AtomicMethodRefMap<T>::Visit(const Visitor& visitor) { } } +template <typename T> +inline void AtomicMethodRefMap<T>::ClearEntries() { + for (auto& it : arrays_) { + for (auto& element : it.second) { + element.StoreRelaxed(nullptr); + } + } +} + } // namespace art #endif // ART_COMPILER_UTILS_ATOMIC_METHOD_REF_MAP_INL_H_ diff --git a/compiler/utils/atomic_method_ref_map.h b/compiler/utils/atomic_method_ref_map.h index 11ab211817..fed848f563 100644 --- a/compiler/utils/atomic_method_ref_map.h +++ b/compiler/utils/atomic_method_ref_map.h @@ -55,6 +55,8 @@ class AtomicMethodRefMap { template <typename Visitor> void Visit(const Visitor& visitor); + void ClearEntries(); + private: // Verified methods. The method array is fixed to avoid needing a lock to extend it. using ElementArray = dchecked_vector<Atomic<T>>; |