summaryrefslogtreecommitdiff
path: root/src/compiler.cc
diff options
context:
space:
mode:
author Ian Rogers <irogers@google.com> 2011-10-27 15:19:26 -0700
committer Ian Rogers <irogers@google.com> 2011-10-28 23:14:15 -0700
commit28ad40dc3ec2f09b0ffd4f6d6787bf1b532ccd5d (patch)
treef5628e47948a0d255112a3a7a01b67db41c8d424 /src/compiler.cc
parente0918556e7551de638870dcad3f2023f94f85a50 (diff)
Support for unresolved types in new-instance during verification.
Also, ensure that classes that don't load are erroneous, warn early about exceptions left on a thread by the verifier/compiler, factor out slowpath checks for the compiler and fix the slowpath selector for const-class. This change causes more dex cache misses at runtime (more slowpath execution). It also requires a "mm clean-oat". Change-Id: I014b49ebdd7d8f7dd2e39cc0958fc0b708d58c4c
Diffstat (limited to 'src/compiler.cc')
-rw-r--r--src/compiler.cc3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/compiler.cc b/src/compiler.cc
index cbfd35cfcd..ba61b4d968 100644
--- a/src/compiler.cc
+++ b/src/compiler.cc
@@ -333,6 +333,9 @@ void Compiler::CompileMethod(const Method* method) {
// TODO: this fails if we have an abstract method defined in more than one input dex file.
CHECK(compiled_invoke_stubs_.find(method) == compiled_invoke_stubs_.end()) << PrettyMethod(method);
compiled_invoke_stubs_[method] = compiled_invoke_stub;
+
+ Thread* self = Thread::Current();
+ CHECK(!self->IsExceptionPending()) << PrettyMethod(method);
}
const CompiledMethod* Compiler::GetCompiledMethod(const Method* method) const {