diff options
| author | 2018-05-24 01:59:09 +0000 | |
|---|---|---|
| committer | 2018-05-24 01:59:09 +0000 | |
| commit | 1a9def3dc7d8c74d0dda2b93d21a0e90f36fa51b (patch) | |
| tree | 7d139fe3677e183d30a065992d9d43324041599a | |
| parent | ee9b570dceec414547b60c2a6033fcd4a657cc9e (diff) | |
| parent | 4480127cadd2a285f726c820d0169a6aa1846477 (diff) | |
Merge "MediaPlayer: ensure that jni code returns after throwing exceptions." into pi-dev
| -rw-r--r-- | media/jni/android_media_MediaPlayer.cpp | 9 | ||||
| -rw-r--r-- | media/jni/android_media_MediaPlayer2.cpp | 9 |
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); |