diff options
Diffstat (limited to 'media/jni/android_media_MediaExtractor.cpp')
| -rw-r--r-- | media/jni/android_media_MediaExtractor.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/media/jni/android_media_MediaExtractor.cpp b/media/jni/android_media_MediaExtractor.cpp index b6b7a80..4e9b726 100644 --- a/media/jni/android_media_MediaExtractor.cpp +++ b/media/jni/android_media_MediaExtractor.cpp @@ -715,6 +715,11 @@ static void android_media_MediaExtractor_setDataSourceCallback( status_t err = extractor->setDataSource(bridge); if (err != OK) { + // Clear bridge so that JMediaDataSource::close() is called _before_ + // we throw the IOException. + // Otherwise close() gets called when we go out of scope, it calls + // Java with a pending exception and crashes the process. + bridge.clear(); jniThrowException( env, "java/io/IOException", |
