Commit fea45b14 authored by Paul Vriens's avatar Paul Vriens Committed by Alexandre Julliard

- Fix logic in Stream_fnRelease, refcount should be decremented before

the test for 0. - Use Interlocked* functions in Stream_fnRelease . - Store the result of the Interlocked functions and this in the TRACE.
parent e9ca9f19
......@@ -160,10 +160,11 @@ static ULONG WINAPI ACMStream_fnAddRef(IAVIStream *iface)
static ULONG WINAPI ACMStream_fnRelease(IAVIStream* iface)
{
IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
ULONG ref = InterlockedDecrement(&This->ref);
TRACE("(%p) -> %ld\n", iface, This->ref - 1);
TRACE("(%p) -> %ld\n", iface, ref);
if (This->ref == 0) {
if (ref == 0) {
/* destruct */
if (This->has != NULL) {
if (This->acmStreamHdr.fdwStatus & ACMSTREAMHEADER_STATUSF_PREPARED)
......@@ -202,7 +203,7 @@ static ULONG WINAPI ACMStream_fnRelease(IAVIStream* iface)
if (This->pStream != NULL)
IAVIStream_Release(This->pStream);
return --This->ref;
return ref;
}
/* lParam1: PAVISTREAM
......
......@@ -176,10 +176,11 @@ static ULONG WINAPI ICMStream_fnAddRef(IAVIStream *iface)
static ULONG WINAPI ICMStream_fnRelease(IAVIStream* iface)
{
IAVIStreamImpl *This = (IAVIStreamImpl *)iface;
ULONG ref = InterlockedDecrement(&This->ref);
TRACE("(%p) -> %ld\n", iface, This->ref - 1);
TRACE("(%p) -> %ld\n", iface, ref);
if (This->ref == 0) {
if (ref == 0) {
/* destruct */
if (This->pg != NULL) {
AVIStreamGetFrameClose(This->pg);
......@@ -224,7 +225,7 @@ static ULONG WINAPI ICMStream_fnRelease(IAVIStream* iface)
if (This->pStream != NULL)
IAVIStream_Release(This->pStream);
return --This->ref;
return ref;
}
/* lParam1: PAVISTREAM
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment