summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/AwesomePlayer.cpp
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2010-03-23 15:30:57 -0700
committerAndreas Huber <andih@google.com>2010-03-23 15:30:57 -0700
commit9584a0726582b6b7603032870c62b4fccd5ce076 (patch)
treea46482ea12f9c94c7821ab975221f249fdfd6df9 /media/libstagefright/AwesomePlayer.cpp
parent54b1a0550411c2fd2084d82d28934d505c37349a (diff)
downloadframeworks_av-9584a0726582b6b7603032870c62b4fccd5ce076.zip
frameworks_av-9584a0726582b6b7603032870c62b4fccd5ce076.tar.gz
frameworks_av-9584a0726582b6b7603032870c62b4fccd5ce076.tar.bz2
Clear the local prefetcher strong reference before signalling that prepare() was cancelled early in order to avoid a race condition that occasionally triggered an assertion from the main thread.
Change-Id: I0db198fe5fd0fbe9a6c90a8e5924a2df05432c4c related-to-bug: 2538486
Diffstat (limited to 'media/libstagefright/AwesomePlayer.cpp')
-rw-r--r--media/libstagefright/AwesomePlayer.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/media/libstagefright/AwesomePlayer.cpp b/media/libstagefright/AwesomePlayer.cpp
index 164df72..407fd57 100644
--- a/media/libstagefright/AwesomePlayer.cpp
+++ b/media/libstagefright/AwesomePlayer.cpp
@@ -1153,6 +1153,8 @@ void AwesomePlayer::onPrepareAsyncEvent() {
Mutex::Autolock autoLock(mLock);
if (mFlags & PREPARE_CANCELLED) {
LOGI("prepare was cancelled before preparing the prefetcher");
+
+ prefetcher.clear();
abortPrepare(UNKNOWN_ERROR);
return;
}