Thomas Faber : quartz: Avoid side-effects in asserts.
Alexandre Julliard
julliard at wine.codeweavers.com
Mon Jul 28 20:50:43 CDT 2014
Module: wine
Branch: master
Commit: bab08e690ee7b11bd3e0aee5e4de247d30348d06
URL: http://source.winehq.org/git/wine.git/?a=commit;h=bab08e690ee7b11bd3e0aee5e4de247d30348d06
Author: Thomas Faber <thomas.faber at reactos.org>
Date: Sat Jul 26 22:04:29 2014 +0200
quartz: Avoid side-effects in asserts.
---
dlls/quartz/avisplit.c | 22 +++++++++++++++++-----
dlls/quartz/parser.c | 7 +++++--
2 files changed, 22 insertions(+), 7 deletions(-)
diff --git a/dlls/quartz/avisplit.c b/dlls/quartz/avisplit.c
index d74c8ab..1f57045 100644
--- a/dlls/quartz/avisplit.c
+++ b/dlls/quartz/avisplit.c
@@ -151,6 +151,7 @@ static HRESULT AVISplitter_next_request(AVISplitterImpl *This, DWORD streamnumbe
PullPin *pin = This->Parser.pInputPin;
IMediaSample *sample = NULL;
HRESULT hr;
+ ULONG ref;
TRACE("(%p, %u)->()\n", This, streamnumber);
@@ -264,7 +265,10 @@ static HRESULT AVISplitter_next_request(AVISplitterImpl *This, DWORD streamnumbe
hr = IAsyncReader_Request(pin->pReader, sample, streamnumber);
if (FAILED(hr))
- assert(IMediaSample_Release(sample) == 0);
+ {
+ ref = IMediaSample_Release(sample);
+ assert(ref == 0);
+ }
}
else
{
@@ -278,7 +282,8 @@ static HRESULT AVISplitter_next_request(AVISplitterImpl *This, DWORD streamnumbe
if (sample)
{
ERR("There should be no sample!\n");
- assert(IMediaSample_Release(sample) == 0);
+ ref = IMediaSample_Release(sample);
+ assert(ref == 0);
}
}
TRACE("--> %08x\n", hr);
@@ -510,8 +515,8 @@ static HRESULT AVISplitter_first_request(LPVOID iface)
static HRESULT AVISplitter_done_process(LPVOID iface)
{
AVISplitterImpl *This = iface;
-
DWORD x;
+ ULONG ref;
for (x = 0; x < This->Parser.cStreams; ++x)
{
@@ -525,7 +530,10 @@ static HRESULT AVISplitter_done_process(LPVOID iface)
stream->thread = NULL;
if (stream->sample)
- assert(IMediaSample_Release(stream->sample) == 0);
+ {
+ ref = IMediaSample_Release(stream->sample);
+ assert(ref == 0);
+ }
stream->sample = NULL;
ResetEvent(stream->packet_queued);
@@ -1219,6 +1227,7 @@ static HRESULT AVISplitter_Flush(LPVOID iface)
{
AVISplitterImpl *This = iface;
DWORD x;
+ ULONG ref;
TRACE("(%p)->()\n", This);
@@ -1227,7 +1236,10 @@ static HRESULT AVISplitter_Flush(LPVOID iface)
StreamData *stream = This->streams + x;
if (stream->sample)
- assert(IMediaSample_Release(stream->sample) == 0);
+ {
+ ref = IMediaSample_Release(stream->sample);
+ assert(ref == 0);
+ }
stream->sample = NULL;
ResetEvent(stream->packet_queued);
diff --git a/dlls/quartz/parser.c b/dlls/quartz/parser.c
index b57bae4..cd8d93d 100644
--- a/dlls/quartz/parser.c
+++ b/dlls/quartz/parser.c
@@ -170,6 +170,7 @@ void Parser_Destroy(ParserImpl *This)
{
IPin *connected = NULL;
ULONG pinref;
+ HRESULT hr;
assert(!This->filter.refCount);
PullPin_WaitForStateChange(This->pInputPin, INFINITE);
@@ -178,9 +179,11 @@ void Parser_Destroy(ParserImpl *This)
IPin_ConnectedTo(&This->pInputPin->pin.IPin_iface, &connected);
if (connected)
{
- assert(IPin_Disconnect(connected) == S_OK);
+ hr = IPin_Disconnect(connected);
+ assert(hr == S_OK);
IPin_Release(connected);
- assert(IPin_Disconnect(&This->pInputPin->pin.IPin_iface) == S_OK);
+ hr = IPin_Disconnect(&This->pInputPin->pin.IPin_iface);
+ assert(hr == S_OK);
}
pinref = IPin_Release(&This->pInputPin->pin.IPin_iface);
if (pinref)
More information about the wine-cvs
mailing list