summaryrefslogtreecommitdiffstats
path: root/compiler/dex
diff options
context:
space:
mode:
authorMathieu Chartier <mathieuc@google.com>2015-02-26 00:34:11 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2015-02-26 00:34:11 +0000
commit4f9bbe2a654165aedab62041101ae41d54c04e39 (patch)
tree04408947669116247ae202cace66d760004d08c5 /compiler/dex
parentb491375af0ffa7f0ee534b30d606d8748f7ad15f (diff)
parentc0d5f89d99c55ab63d6757fbd71dbfe95d347c1f (diff)
downloadart-4f9bbe2a654165aedab62041101ae41d54c04e39.zip
art-4f9bbe2a654165aedab62041101ae41d54c04e39.tar.gz
art-4f9bbe2a654165aedab62041101ae41d54c04e39.tar.bz2
Merge "Fix JIT for vmdebug test 99"
Diffstat (limited to 'compiler/dex')
-rw-r--r--compiler/dex/verification_results.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/compiler/dex/verification_results.cc b/compiler/dex/verification_results.cc
index 51a3d84..150bdac 100644
--- a/compiler/dex/verification_results.cc
+++ b/compiler/dex/verification_results.cc
@@ -71,8 +71,11 @@ bool VerificationResults::ProcessVerifiedMethod(verifier::MethodVerifier* method
DCHECK_EQ(it->second->GetSafeCastSet().size(), verified_method->GetSafeCastSet().size());
}
DCHECK_EQ(it->second->GetDexGcMap().size(), verified_method->GetDexGcMap().size());
- delete it->second;
- verified_methods_.erase(it);
+ // Delete the new verified method since there was already an existing one registered. It
+ // is unsafe to replace the existing one since the JIT may be using it to generate a
+ // native GC map.
+ delete verified_method;
+ return true;
}
verified_methods_.Put(ref, verified_method);
DCHECK(verified_methods_.find(ref) != verified_methods_.end());