[vlc-devel] commit: Do not crash in vout destruction when exiting ( Rafaël Carré )

git version control git at videolan.org
Sat Mar 29 03:24:00 CET 2008


vlc | branch: master | Rafaël Carré <funman at videolan.org> | Sat Mar 29 03:24:17 2008 +0100| [adee2d264eb04bdc0bdbf87c79903e08d589fe83]

Do not crash in vout destruction when exiting

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=adee2d264eb04bdc0bdbf87c79903e08d589fe83
---

 src/video_output/video_output.c |   28 +++++++++++++++-------------
 1 files changed, 15 insertions(+), 13 deletions(-)

diff --git a/src/video_output/video_output.c b/src/video_output/video_output.c
index 78fadda..d4794a9 100644
--- a/src/video_output/video_output.c
+++ b/src/video_output/video_output.c
@@ -508,19 +508,21 @@ static void vout_Destructor( vlc_object_t * p_this )
 
 #ifndef __APPLE__
     vout_thread_t *p_another_vout;
-    playlist_t *p_playlist = pl_Yield( p_vout );
-
-    /* This is a dirty hack for mostly Linux, where there is no way to get the GUI
-       back if you closed it while playing video. This is solved in Mac OS X,
-       where we have this novelty called menubar, that will always allow you access
-       to the applications main functionality. They should try that on linux sometime */
-    p_another_vout = vlc_object_find( p_this->p_libvlc,
-                                      VLC_OBJECT_VOUT, FIND_ANYWHERE );
-    if( p_another_vout == NULL )
-    {
-        vlc_value_t val;
-        val.b_bool = VLC_TRUE;
-        var_Set( p_playlist, "intf-show", val );
+
+    playlist_t *p_playlist = pl_Get( p_vout );
+    if( p_playlist->b_die ) return;
+    vlc_object_yield( p_playlist );
+/* This is a dirty hack for mostly Linux, where there is no way to get the GUI
+   back if you closed it while playing video. This is solved in Mac OS X,
+   where we have this novelty called menubar, that will always allow you access
+   to the applications main functionality. They should try that on linux sometime */
+        p_another_vout = vlc_object_find( p_this->p_libvlc,
+                                          VLC_OBJECT_VOUT, FIND_ANYWHERE );
+        if( p_another_vout == NULL )
+        {
+            vlc_value_t val;
+            val.b_bool = VLC_TRUE;
+            var_Set( p_playlist, "intf-show", val );
     }
     else
     {




More information about the vlc-devel mailing list