[vlc-commits] video_output: fix window leak

Rémi Denis-Courmont git at videolan.org
Sat Apr 25 09:24:48 CEST 2015


vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Sat Apr 25 10:05:10 2015 +0300| [72e0c0e9226ed306e2e82b586938991d7acfd3ff] | committer: Rémi Denis-Courmont

video_output: fix window leak

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

 src/video_output/video_output.c |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/video_output/video_output.c b/src/video_output/video_output.c
index d5aee4d..b7af9d4 100644
--- a/src/video_output/video_output.c
+++ b/src/video_output/video_output.c
@@ -193,6 +193,8 @@ static vout_thread_t *VoutCreate(vlc_object_t *object,
     /* */
     if (vlc_clone(&vout->p->thread, Thread, vout,
                   VLC_THREAD_PRIORITY_OUTPUT)) {
+        if (vout->p->window != NULL)
+            vout_display_window_Delete(vout->p->window);
         spu_Destroy(vout->p->spu);
         vlc_object_release(vout);
         return NULL;
@@ -267,6 +269,9 @@ void vout_Close(vout_thread_t *vout)
     vout_control_PushVoid(&vout->p->control, VOUT_CONTROL_CLEAN);
     vlc_join(vout->p->thread, NULL);
 
+    if (vout->p->window != NULL)
+        vout_display_window_Delete(vout->p->window);
+
     vlc_mutex_lock(&vout->p->spu_lock);
     spu_Destroy(vout->p->spu);
     vout->p->spu = NULL;
@@ -1378,8 +1383,6 @@ static void ThreadInit(vout_thread_t *vout)
 
 static void ThreadClean(vout_thread_t *vout)
 {
-    if (vout->p->window != NULL)
-        vout_window_Delete(vout->p->window);
     vout_chrono_Clean(&vout->p->render);
     vout->p->dead = true;
     vout_control_Dead(&vout->p->control);



More information about the vlc-commits mailing list