From 1f253df8acc7f2c249c1aae2ba44cae2020a45f7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= Date: Mon, 19 Jul 2010 20:32:55 +0300 Subject: [PATCH] MSW: fix assertion failure on Open() error paths (fix #3889) Do not try to delete a callback and/or a mutex that do not exist. The goto error paths still look a bit suspicious, someone should double check them. --- modules/video_output/msw/direct3d.c | 5 ++++- modules/video_output/msw/directx.c | 6 +++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/modules/video_output/msw/direct3d.c b/modules/video_output/msw/direct3d.c index c1c59568d3..14f2bc950c 100644 --- a/modules/video_output/msw/direct3d.c +++ b/modules/video_output/msw/direct3d.c @@ -184,7 +184,10 @@ static int Open(vlc_object_t *object) return VLC_SUCCESS; error: - Close(VLC_OBJECT(vd)); + Direct3DClose(vd); + CommonClean(vd); + Direct3DDestroy(vd); + free(vd->sys); return VLC_EGENERIC; } diff --git a/modules/video_output/msw/directx.c b/modules/video_output/msw/directx.c index 020725a452..014a0d0b08 100644 --- a/modules/video_output/msw/directx.c +++ b/modules/video_output/msw/directx.c @@ -236,7 +236,11 @@ static int Open(vlc_object_t *object) return VLC_SUCCESS; error: - Close(VLC_OBJECT(vd)); + DirectXClose(vd); + CommonClean(vd); + if (sys->hddraw_dll) + FreeLibrary(sys->hddraw_dll); + free(sys); return VLC_EGENERIC; } -- 2.39.2