Changeset 061224eb63c7f2566e470510bd2b2edbba0d536a

Show
Ignore:
Timestamp:
05/08/08 19:06:10 (2 months ago)
Author:
Rémi Denis-Courmont <rem@videolan.org>
git-committer:
Rémi Denis-Courmont <rem@videolan.org> 1210266370 +0300
git-parent:

[af5905c72fccbe87f3730d64499d06d69b5a89ae]

git-author:
Rémi Denis-Courmont <rem@videolan.org> 1210266370 +0300
Message:

Fix yesterday's VLM bug

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • src/input/vlm.c

    ref8e2bc r061224e  
    179179void vlm_Delete( vlm_t *p_vlm ) 
    180180{ 
    181     /* FIXME XXX: we need to set libvlc_priv->p_vlm bacl to NULL */ 
     181    vlc_value_t lockval; 
     182 
     183    /* vlm_Delete() is serialized against itself, and against vlm_New(). 
     184     * This way, vlm_Destructor () (called from vlc_objet_release() above) 
     185     * is serialized against setting libvlc_priv->p_vlm from vlm_New(). */ 
     186    var_Get( p_vlm->p_libvlc, "vlm_mutex", &lockval ); 
     187    vlc_mutex_lock( lockval.p_address ); 
    182188    vlc_object_release( p_vlm ); 
     189    vlc_mutex_unlock( lockval.p_address ); 
    183190} 
    184191 
     
    188195static void vlm_Destructor( vlm_t *p_vlm ) 
    189196{ 
     197    libvlc_priv (p_vlm->p_libvlc)->p_vlm = NULL; 
     198 
    190199    vlm_ControlInternal( p_vlm, VLM_CLEAR_MEDIAS ); 
    191200    TAB_CLEAN( p_vlm->i_media, p_vlm->media );