summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2018-05-24 01:59:09 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2018-05-24 01:59:09 +0000
commit1a9def3dc7d8c74d0dda2b93d21a0e90f36fa51b (patch)
tree7d139fe3677e183d30a065992d9d43324041599a
parentee9b570dceec414547b60c2a6033fcd4a657cc9e (diff)
parent4480127cadd2a285f726c820d0169a6aa1846477 (diff)
Merge "MediaPlayer: ensure that jni code returns after throwing exceptions." into pi-dev
-rw-r--r--media/jni/android_media_MediaPlayer.cpp9
-rw-r--r--media/jni/android_media_MediaPlayer2.cpp9
2 files changed, 18 insertions, 0 deletions
diff --git a/media/jni/android_media_MediaPlayer.cpp b/media/jni/android_media_MediaPlayer.cpp
index eda22d574fd7..5dd01b03274a 100644
--- a/media/jni/android_media_MediaPlayer.cpp
+++ b/media/jni/android_media_MediaPlayer.cpp
@@ -384,6 +384,9 @@ android_media_MediaPlayer_getBufferingParams(JNIEnv *env, jobject thiz)
process_media_player_call(
env, thiz, mp->getBufferingSettings(&settings),
"java/lang/IllegalStateException", "unexpected error");
+ if (env->ExceptionCheck()) {
+ return nullptr;
+ }
ALOGV("getBufferingSettings:{%s}", settings.toString().string());
return bp.asJobject(env, gBufferingParamsFields);
@@ -555,6 +558,9 @@ android_media_MediaPlayer_getPlaybackParams(JNIEnv *env, jobject thiz)
process_media_player_call(
env, thiz, mp->getPlaybackSettings(&audioRate),
"java/lang/IllegalStateException", "unexpected error");
+ if (env->ExceptionCheck()) {
+ return nullptr;
+ }
ALOGV("getPlaybackSettings: %f %f %d %d",
audioRate.mSpeed, audioRate.mPitch, audioRate.mFallbackMode, audioRate.mStretchMode);
@@ -623,6 +629,9 @@ android_media_MediaPlayer_getSyncParams(JNIEnv *env, jobject thiz)
process_media_player_call(
env, thiz, mp->getSyncSettings(&scp.sync, &scp.frameRate),
"java/lang/IllegalStateException", "unexpected error");
+ if (env->ExceptionCheck()) {
+ return nullptr;
+ }
ALOGV("getSyncSettings: %d %d %f %f",
scp.sync.mSource, scp.sync.mAudioAdjustMode, scp.sync.mTolerance, scp.frameRate);
diff --git a/media/jni/android_media_MediaPlayer2.cpp b/media/jni/android_media_MediaPlayer2.cpp
index 918a375a6e83..6546cf024ac8 100644
--- a/media/jni/android_media_MediaPlayer2.cpp
+++ b/media/jni/android_media_MediaPlayer2.cpp
@@ -495,6 +495,9 @@ android_media_MediaPlayer2_getBufferingParams(JNIEnv *env, jobject thiz)
process_media_player_call(
env, thiz, mp->getBufferingSettings(&settings),
"java/lang/IllegalStateException", "unexpected error");
+ if (env->ExceptionCheck()) {
+ return nullptr;
+ }
ALOGV("getBufferingSettings:{%s}", settings.toString().string());
return bp.asJobject(env, gBufferingParamsFields);
@@ -662,6 +665,9 @@ android_media_MediaPlayer2_getPlaybackParams(JNIEnv *env, jobject thiz)
process_media_player_call(
env, thiz, mp->getPlaybackSettings(&audioRate),
"java/lang/IllegalStateException", "unexpected error");
+ if (env->ExceptionCheck()) {
+ return nullptr;
+ }
ALOGV("getPlaybackSettings: %f %f %d %d",
audioRate.mSpeed, audioRate.mPitch, audioRate.mFallbackMode, audioRate.mStretchMode);
@@ -730,6 +736,9 @@ android_media_MediaPlayer2_getSyncParams(JNIEnv *env, jobject thiz)
process_media_player_call(
env, thiz, mp->getSyncSettings(&scp.sync, &scp.frameRate),
"java/lang/IllegalStateException", "unexpected error");
+ if (env->ExceptionCheck()) {
+ return nullptr;
+ }
ALOGV("getSyncSettings: %d %d %f %f",
scp.sync.mSource, scp.sync.mAudioAdjustMode, scp.sync.mTolerance, scp.frameRate);