diff options
author | Mathieu Chartier <mathieuc@google.com> | 2013-12-10 23:19:30 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2013-12-10 23:19:30 +0000 |
commit | 76f552307ee980221626d1dff0ada56c989d24ca (patch) | |
tree | b420fbe97cdf75e52944004d49b161caace4f109 /runtime/entrypoints | |
parent | 3d0ecf950d67bd272a979adb5988b9a977b44fac (diff) | |
parent | f043de4fbcf8eaa72b55597ccc6b2ea5b26a24d2 (diff) | |
download | art-76f552307ee980221626d1dff0ada56c989d24ca.zip art-76f552307ee980221626d1dff0ada56c989d24ca.tar.gz art-76f552307ee980221626d1dff0ada56c989d24ca.tar.bz2 |
Merge "Add missing push/pop shadow frame to artInterpreterToCompiledCodeBridge."
Diffstat (limited to 'runtime/entrypoints')
-rw-r--r-- | runtime/entrypoints/interpreter/interpreter_entrypoints.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/runtime/entrypoints/interpreter/interpreter_entrypoints.cc b/runtime/entrypoints/interpreter/interpreter_entrypoints.cc index 05c02f2..df4ec3a 100644 --- a/runtime/entrypoints/interpreter/interpreter_entrypoints.cc +++ b/runtime/entrypoints/interpreter/interpreter_entrypoints.cc @@ -33,11 +33,14 @@ extern "C" void artInterpreterToCompiledCodeBridge(Thread* self, MethodHelper& m if (method->IsStatic()) { mirror::Class* declaringClass = method->GetDeclaringClass(); if (UNLIKELY(!declaringClass->IsInitializing())) { + self->PushShadowFrame(shadow_frame); if (UNLIKELY(!Runtime::Current()->GetClassLinker()->EnsureInitialized(declaringClass, true, true))) { - DCHECK(Thread::Current()->IsExceptionPending()); + self->PopShadowFrame(); + DCHECK(self->IsExceptionPending()); return; } + self->PopShadowFrame(); CHECK(declaringClass->IsInitializing()); } } |