]> git.sesse.net Git - vlc/blobdiff - src/playlist/tree.c
Rename the sdi module to decklink.
[vlc] / src / playlist / tree.c
index 46144a88292ebdc167fc86421db76fe2509e7a66..196ab807f05c0e8417b17cc6f818fd8bbaa0df14 100644 (file)
@@ -220,17 +220,17 @@ int playlist_NodeInsert( playlist_t *p_playlist,
                          int i_position )
 {
     PL_ASSERT_LOCKED;
-   (void)p_playlist;
-   assert( p_parent && p_parent->i_children != -1 );
-   if( i_position == -1 ) i_position = p_parent->i_children ;
-   assert( i_position <= p_parent->i_children);
-
-   INSERT_ELEM( p_parent->pp_children,
-                p_parent->i_children,
-                i_position,
-                p_item );
-   p_item->p_parent = p_parent;
-   return VLC_SUCCESS;
+    (void)p_playlist;
+    assert( p_parent && p_parent->i_children != -1 );
+    if( i_position == -1 ) i_position = p_parent->i_children ;
+    assert( i_position <= p_parent->i_children);
+
+    INSERT_ELEM( p_parent->pp_children,
+                 p_parent->i_children,
+                 i_position,
+                 p_item );
+    p_item->p_parent = p_parent;
+    return VLC_SUCCESS;
 }
 
 /**
@@ -246,17 +246,25 @@ int playlist_NodeRemoveItem( playlist_t *p_playlist,
                         playlist_item_t *p_parent )
 {
     PL_ASSERT_LOCKED;
-   (void)p_playlist;
+    (void)p_playlist;
 
-   for(int i= 0; i< p_parent->i_children ; i++ )
-   {
-       if( p_parent->pp_children[i] == p_item )
-       {
-           REMOVE_ELEM( p_parent->pp_children, p_parent->i_children, i );
-       }
-   }
+    int ret = VLC_EGENERIC;
+
+    for(int i= 0; i< p_parent->i_children ; i++ )
+    {
+        if( p_parent->pp_children[i] == p_item )
+        {
+            REMOVE_ELEM( p_parent->pp_children, p_parent->i_children, i );
+            ret = VLC_SUCCESS;
+        }
+    }
+
+    if( ret == VLC_SUCCESS ) {
+        assert( p_item->p_parent == p_parent );
+        p_item->p_parent = NULL;
+    }
 
-   return VLC_SUCCESS;
+    return ret;
 }
 
 /**