summaryrefslogtreecommitdiffstats
path: root/runtime/entrypoints
diff options
context:
space:
mode:
authorMathieu Chartier <mathieuc@google.com>2013-12-10 23:19:30 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2013-12-10 23:19:30 +0000
commit76f552307ee980221626d1dff0ada56c989d24ca (patch)
treeb420fbe97cdf75e52944004d49b161caace4f109 /runtime/entrypoints
parent3d0ecf950d67bd272a979adb5988b9a977b44fac (diff)
parentf043de4fbcf8eaa72b55597ccc6b2ea5b26a24d2 (diff)
downloadart-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.cc5
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());
}
}