diff options
author | Dongwon Kang <dwkang@google.com> | 2018-05-23 17:38:35 -0700 |
---|---|---|
committer | Dongwon Kang <dwkang@google.com> | 2018-05-23 17:38:35 -0700 |
commit | 4480127cadd2a285f726c820d0169a6aa1846477 (patch) | |
tree | f5466cdf424dcae8966e17e8c006c3891cac9c67 /media/jni/android_media_MediaPlayer.cpp | |
parent | 76cb7fe2f6eec83f8cc1f7f19ed23ae76254bdb7 (diff) |
MediaPlayer: ensure that jni code returns after throwing exceptions.
Test: no crash on getPlaybackParams and pass post media CTS
Bug: 80200877
Change-Id: I7538967962acc2a23062615c0d39720b34505f17
Diffstat (limited to 'media/jni/android_media_MediaPlayer.cpp')
-rw-r--r-- | media/jni/android_media_MediaPlayer.cpp | 9 |
1 files changed, 9 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); |