summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Treehugger Robot <treehugger-gerrit@google.com> 2017-05-16 16:27:43 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2017-05-16 16:27:45 +0000
commit6579b099786c8cac8fdb0c86d98ad4b232a52ea0 (patch)
tree305ca05714b8c3c9458d52a02861ece688f81ce2
parenta1633a7077781d9c64a77b27deb1707d1a56906d (diff)
parent39e673811d73ac09a822d9ee0082bba5d8e8cbad (diff)
Merge "ART: Fix iterator invalidation"
-rw-r--r--runtime/jit/jit_code_cache.cc8
1 files changed, 4 insertions, 4 deletions
diff --git a/runtime/jit/jit_code_cache.cc b/runtime/jit/jit_code_cache.cc
index 2bd1d646a1..56efd25a63 100644
--- a/runtime/jit/jit_code_cache.cc
+++ b/runtime/jit/jit_code_cache.cc
@@ -677,13 +677,13 @@ void JitCodeCache::NotifyMethodRedefined(ArtMethod* method) {
}
method->SetProfilingInfo(nullptr);
ScopedCodeCacheWrite ccw(code_map_.get());
- for (auto code_iter = method_code_map_.begin();
- code_iter != method_code_map_.end();
- ++code_iter) {
+ for (auto code_iter = method_code_map_.begin(); code_iter != method_code_map_.end();) {
if (code_iter->second == method) {
FreeCode(code_iter->first);
- method_code_map_.erase(code_iter);
+ code_iter = method_code_map_.erase(code_iter);
+ continue;
}
+ ++code_iter;
}
auto code_map = osr_code_map_.find(method);
if (code_map != osr_code_map_.end()) {