-static void vlc_object_detach_unlocked (vlc_object_t *p_this)
-{
- assert (p_this->p_parent != NULL);
-
- vlc_object_internals_t *pap = vlc_internals (p_this->p_parent);
- vlc_object_internals_t *priv = vlc_internals (p_this);
-
- /* Unlink */
- if (priv->prev != NULL)
- priv->prev->next = priv->next;
- else
- pap->first = priv->next;
- if (priv->next != NULL)
- priv->next->prev = priv->prev;
-
- /* Remove p_this's parent */
- p_this->p_parent = NULL;
-}
-
-
-/**
- ****************************************************************************
- * detach object from its parent
- *****************************************************************************
- * This function removes all links between an object and its parent.
- *****************************************************************************/
-void __vlc_object_detach( vlc_object_t *p_this )
-{
- vlc_object_t *p_parent;
- if( !p_this ) return;
-
- libvlc_lock (p_this->p_libvlc);
- p_parent = p_this->p_parent;
- if (p_parent)
- vlc_object_detach_unlocked( p_this );
- libvlc_unlock (p_this->p_libvlc);
-
- if (p_parent)
- vlc_object_release (p_parent);
-}
-