[PATCH v5 6/6] qedit: Remove the splitter from the graph if it failed to connect.

Zebediah Figura z.figura12 at gmail.com
Thu Apr 23 14:45:45 CDT 2020


From: Gabriel Ivăncescu <gabrielopcode at gmail.com>

Signed-off-by: Gabriel Ivăncescu <gabrielopcode at gmail.com>
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
v5: Rebased onto cleanup of find_splitter().

This supersedes <https://source.winehq.org/patches/data/183892>.

 dlls/qedit/mediadet.c | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/dlls/qedit/mediadet.c b/dlls/qedit/mediadet.c
index d63825c6290..eb7a51928b9 100644
--- a/dlls/qedit/mediadet.c
+++ b/dlls/qedit/mediadet.c
@@ -193,17 +193,12 @@ static HRESULT find_splitter(MediaDetImpl *detector)
 
         hr = IBaseFilter_EnumPins(splitter, &enum_pins);
         if (FAILED(hr))
-        {
-            IBaseFilter_Release(splitter);
-            continue;
-        }
+            goto next;
+
         hr = IEnumPins_Next(enum_pins, 1, &splitter_pin, NULL);
         IEnumPins_Release(enum_pins);
         if (FAILED(hr))
-        {
-            IBaseFilter_Release(splitter);
-            continue;
-        }
+            goto next;
 
         hr = IPin_Connect(source_pin, splitter_pin, NULL);
         IPin_Release(splitter_pin);
@@ -213,6 +208,8 @@ static HRESULT find_splitter(MediaDetImpl *detector)
             break;
         }
 
+next:
+        IGraphBuilder_RemoveFilter(detector->graph, splitter);
         IBaseFilter_Release(splitter);
     }
 
-- 
2.26.0




More information about the wine-devel mailing list