mirror of
https://github.com/reactos/wine.git
synced 2024-11-25 20:59:54 +00:00
- 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.
This commit is contained in:
parent
e9ca9f1955
commit
fea45b1493
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user