summaryrefslogtreecommitdiff
path: root/runtime/entrypoints/entrypoint_utils.h
diff options
context:
space:
mode:
author Sebastien Hertz <shertz@google.com> 2014-06-11 12:32:31 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2014-06-10 21:26:11 +0000
commit3283ade469f515f89d70cf47b6ac6fe1814147f2 (patch)
tree6b730cbe56ded370d1b4293629826ad2c7b06f7f /runtime/entrypoints/entrypoint_utils.h
parentbc72903b909f5147b8cb207f3e5d02a8ef85e4e7 (diff)
parent9f1020305292a21fd14a402b189c765a125226ab (diff)
Merge "Fix exception reporting from interpreter"
Diffstat (limited to 'runtime/entrypoints/entrypoint_utils.h')
-rw-r--r--runtime/entrypoints/entrypoint_utils.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/runtime/entrypoints/entrypoint_utils.h b/runtime/entrypoints/entrypoint_utils.h
index 09899c05bd..3d8b29fd24 100644
--- a/runtime/entrypoints/entrypoint_utils.h
+++ b/runtime/entrypoints/entrypoint_utils.h
@@ -652,6 +652,7 @@ static inline void UnlockJniSynchronizedMethod(jobject locked, Thread* self)
// Save any pending exception over monitor exit call.
mirror::Throwable* saved_exception = NULL;
ThrowLocation saved_throw_location;
+ bool is_exception_reported = self->IsExceptionReportedToInstrumentation();
if (UNLIKELY(self->IsExceptionPending())) {
saved_exception = self->GetException(&saved_throw_location);
self->ClearException();
@@ -667,6 +668,7 @@ static inline void UnlockJniSynchronizedMethod(jobject locked, Thread* self)
// Restore pending exception.
if (saved_exception != NULL) {
self->SetException(saved_throw_location, saved_exception);
+ self->SetExceptionReportedToInstrumentation(is_exception_reported);
}
}