diff --git a/src/apps/mediaplayer/playlist/PlaylistItem.cpp b/src/apps/mediaplayer/playlist/PlaylistItem.cpp index e6c1003122..1ed5fdc040 100644 --- a/src/apps/mediaplayer/playlist/PlaylistItem.cpp +++ b/src/apps/mediaplayer/playlist/PlaylistItem.cpp @@ -199,6 +199,7 @@ bigtime_t PlaylistItem::_CalculateDuration() delete vi; delete au; + ReleaseTrackSupplier(); return duration; } diff --git a/src/apps/mediaplayer/playlist/UrlPlaylistItem.cpp b/src/apps/mediaplayer/playlist/UrlPlaylistItem.cpp index cc28d81035..f14622e1bd 100644 --- a/src/apps/mediaplayer/playlist/UrlPlaylistItem.cpp +++ b/src/apps/mediaplayer/playlist/UrlPlaylistItem.cpp @@ -139,12 +139,11 @@ UrlPlaylistItem::_CreateTrackSupplier() const return NULL; BMediaFile* mediaFile = new(std::nothrow) BMediaFile(fUrl); - if (mediaFile == NULL) { + if (mediaFile == NULL || supplier->AddMediaFile(mediaFile) != B_OK) { + delete mediaFile; delete supplier; return NULL; } - if (supplier->AddMediaFile(mediaFile) != B_OK) - delete mediaFile; return supplier; }