[QUARTZ] More fixes

Robert Shearman rob at codeweavers.com
Mon Jun 6 16:23:50 CDT 2005


Christian Costa wrote:

>Index: dlls/quartz/parser.c
>===================================================================
>RCS file: /home/wine/wine/dlls/quartz/parser.c,v
>retrieving revision 1.16
>diff -u -r1.16 parser.c
>--- dlls/quartz/parser.c	6 Jun 2005 19:50:36 -0000	1.16
>+++ dlls/quartz/parser.c	6 Jun 2005 20:48:12 -0000
>@@ -221,6 +221,8 @@
> 
>     TRACE("()\n");
> 
>+    if (This->state == State_Stopped) return S_OK;
>+
>     EnterCriticalSection(&This->csFilter);
>     {
>         hr = PullPin_StopProcessing(This->pInputPin);
>@@ -239,6 +241,8 @@
>     
>     TRACE("()\n");
> 
>+    if (This->state == State_Paused) return S_OK;
>+
>     EnterCriticalSection(&This->csFilter);
>     {
>         bInit = (This->state == State_Stopped);
>  
>
>

These changes aren't thread safe. You should do the comparisons inside 
of the critical section.

-- 
Rob Shearman




More information about the wine-devel mailing list