diff options
| -rw-r--r-- | media/jni/android_media_MediaCodec.cpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/media/jni/android_media_MediaCodec.cpp b/media/jni/android_media_MediaCodec.cpp index d8705a7ce9ca..5b0c2a203022 100644 --- a/media/jni/android_media_MediaCodec.cpp +++ b/media/jni/android_media_MediaCodec.cpp @@ -2432,13 +2432,12 @@ static void android_media_MediaCodec_native_queueLinearBlock( throwExceptionAsNecessary(env, BAD_VALUE); return; } - NativeCryptoInfo cryptoInfo = [env, cryptoInfoObj, size]{ - if (cryptoInfoObj == nullptr) { - return NativeCryptoInfo{size}; - } else { - return NativeCryptoInfo{env, cryptoInfoObj}; - } - }(); + auto cryptoInfo = + cryptoInfoObj ? NativeCryptoInfo{size} : NativeCryptoInfo{env, cryptoInfoObj}; + if (env->ExceptionCheck()) { + // Creation of cryptoInfo failed. Let the exception bubble up. + return; + } err = codec->queueEncryptedLinearBlock( index, memory, |