]> git.sesse.net Git - vlc/blobdiff - src/playlist/loadsave.c
threads: Make sure we don't re-create a thread if the object has already one.
[vlc] / src / playlist / loadsave.c
index 181717e95fa97394e6a85b8d56be7c6ea380eaa3..10660f80cabbc0897d8bf9de114495e9b467c87b 100644 (file)
@@ -24,7 +24,7 @@
 # include "config.h"
 #endif
 
-#include <vlc/vlc.h>
+#include <vlc_common.h>
 #include <vlc_playlist.h>
 #include <vlc_events.h>
 #include "playlist_internal.h"
@@ -50,10 +50,7 @@ int playlist_Export( playlist_t * p_playlist, const char *psz_filename ,
     /* Prepare the playlist_export_t structure */
     p_export = (playlist_export_t *)malloc( sizeof(playlist_export_t) );
     if( !p_export)
-    {
-        msg_Err( p_playlist, "out of memory" );
         return VLC_ENOMEM;
-    }
     p_export->psz_filename = NULL;
     if ( psz_filename )
         p_export->psz_filename = strdup( psz_filename );
@@ -68,7 +65,7 @@ int playlist_Export( playlist_t * p_playlist, const char *psz_filename ,
     p_export->p_root = p_export_root;
 
     /* Lock the playlist */
-    vlc_mutex_lock( &p_playlist->object_lock );
+    vlc_object_lock( p_playlist );
     p_playlist->p_private = (void *)p_export;
 
     /* And call the module ! All work is done now */
@@ -76,7 +73,7 @@ int playlist_Export( playlist_t * p_playlist, const char *psz_filename ,
     if( !p_module )
     {
         msg_Warn( p_playlist, "exporting playlist failed" );
-        vlc_mutex_unlock( &p_playlist->object_lock );
+        vlc_object_unlock( p_playlist );
         return VLC_ENOOBJ;
     }
     module_Unneed( p_playlist , p_module );
@@ -86,7 +83,7 @@ int playlist_Export( playlist_t * p_playlist, const char *psz_filename ,
     free( p_export->psz_filename );
     free ( p_export );
     p_playlist->p_private = NULL;
-    vlc_mutex_unlock( &p_playlist->object_lock );
+    vlc_object_unlock( p_playlist );
 
     return VLC_SUCCESS;
 }
@@ -103,7 +100,7 @@ static void input_item_subitem_added( const vlc_event_t * p_event,
     /* playlist_AddInput() can fail, but we have no way to report that ..
      * Any way when it has failed, either the playlist is dying, either OOM */
     playlist_AddInput( p_playlist, p_item, PLAYLIST_APPEND, PLAYLIST_END,
-            false, false );
+            false, pl_Unlocked );
 }
 
 int playlist_MLLoad( playlist_t *p_playlist )