[vlc-devel] [PATCH 03/18] gui/qt: prevent potential deadlock in PLModel::dropAppendCopy
Filip Roséen
filip at videolabs.io
Wed Jul 20 04:36:53 CEST 2016
Given that the function might return prematurely it could, prior to this
patch, result in a deadlock (since the playlist-lock will not be
unlocked correctly).
By introducing vlc_playlist_locker the implementation is safe.
---
modules/gui/qt/components/playlist/playlist_model.cpp | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/modules/gui/qt/components/playlist/playlist_model.cpp b/modules/gui/qt/components/playlist/playlist_model.cpp
index 2df4722..e9f0c52 100644
--- a/modules/gui/qt/components/playlist/playlist_model.cpp
+++ b/modules/gui/qt/components/playlist/playlist_model.cpp
@@ -172,7 +172,7 @@ bool PLModel::dropMimeData( const QMimeData *data, Qt::DropAction action,
void PLModel::dropAppendCopy( const PlMimeData *plMimeData, PLItem *target, int pos )
{
- PL_LOCK;
+ vlc_playlist_locker pl_lock ( THEPL );
playlist_item_t *p_parent =
playlist_ItemGetByInput( p_playlist, target->inputItem() );
@@ -188,8 +188,6 @@ void PLModel::dropAppendCopy( const PlMimeData *plMimeData, PLItem *target, int
if( !p_item ) continue;
pos = playlist_NodeAddCopy( p_playlist, p_item, p_parent, pos );
}
-
- PL_UNLOCK;
}
void PLModel::dropMove( const PlMimeData * plMimeData, PLItem *target, int row )
--
2.9.0
More information about the vlc-devel
mailing list