Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
60d38967
Commit
60d38967
authored
Jul 14, 2009
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ddraw/tests: Properly release surfaces even if we can't get the texture object.
parent
340f5734
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
32 additions
and
30 deletions
+32
-30
dsurface.c
dlls/ddraw/tests/dsurface.c
+32
-30
No files found.
dlls/ddraw/tests/dsurface.c
View file @
60d38967
...
...
@@ -1030,36 +1030,38 @@ static void IFaceRefCount(void)
/* IDirect3DTexture interface (unlike the others) alters the original IDirectDrawSurface ref count */
ret
=
IDirectDrawSurface_QueryInterface
(
surf
,
&
IID_IDirect3DTexture
,
(
void
**
)
&
tex
);
if
(
ret
==
E_NOINTERFACE
)
return
;
/* win64 */
ref
=
getRefcount
((
IUnknown
*
)
tex
);
todo_wine
ok
(
ref
==
2
,
"Refcount is %u, expected 2
\n
"
,
ref
);
ref
=
getRefcount
((
IUnknown
*
)
surf
);
todo_wine
ok
(
ref
==
2
,
"Refcount is %u, expected 2
\n
"
,
ref
);
IDirectDrawSurface_QueryInterface
(
surf
,
&
IID_IDirect3DTexture2
,
(
void
**
)
&
tex2
);
ref
=
getRefcount
((
IUnknown
*
)
tex
);
todo_wine
ok
(
ref
==
3
,
"Refcount is %u, expected 3
\n
"
,
ref
);
ref
=
getRefcount
((
IUnknown
*
)
tex2
);
todo_wine
ok
(
ref
==
3
,
"Refcount is %u, expected 3
\n
"
,
ref
);
ref
=
getRefcount
((
IUnknown
*
)
surf
);
todo_wine
ok
(
ref
==
3
,
"Refcount is %u, expected 3
\n
"
,
ref
);
IDirectDrawSurface_QueryInterface
(
surf
,
&
IID_IDirectDrawGammaControl
,
(
void
**
)
&
gamma
);
ref
=
getRefcount
((
IUnknown
*
)
gamma
);
todo_wine
ok
(
ref
==
1
,
"Refcount is %u, expected 1
\n
"
,
ref
);
ref
=
IDirect3DTexture2_Release
(
tex2
);
/* Release the texture */
todo_wine
ok
(
ref
==
2
,
"Refcount is %u, expected 2
\n
"
,
ref
);
ref
=
getRefcount
((
IUnknown
*
)
surf
);
todo_wine
ok
(
ref
==
2
,
"Refcount is %u, expected 2
\n
"
,
ref
);
ref
=
IDirect3DTexture_Release
(
tex
);
/* Release the texture */
todo_wine
ok
(
ref
==
1
,
"Refcount is %u, expected 1
\n
"
,
ref
);
ref
=
getRefcount
((
IUnknown
*
)
surf
);
todo_wine
ok
(
ref
==
1
,
"Refcount is %u, expected 1
\n
"
,
ref
);
ref
=
IDirectDrawGammaControl_Release
(
gamma
);
/* Release the gamma control */
todo_wine
ok
(
ref
==
0
,
"Refcount is %u, expected 0
\n
"
,
ref
);
if
(
SUCCEEDED
(
ret
))
{
ref
=
getRefcount
((
IUnknown
*
)
tex
);
todo_wine
ok
(
ref
==
2
,
"Refcount is %u, expected 2
\n
"
,
ref
);
ref
=
getRefcount
((
IUnknown
*
)
surf
);
todo_wine
ok
(
ref
==
2
,
"Refcount is %u, expected 2
\n
"
,
ref
);
IDirectDrawSurface_QueryInterface
(
surf
,
&
IID_IDirect3DTexture2
,
(
void
**
)
&
tex2
);
ref
=
getRefcount
((
IUnknown
*
)
tex
);
todo_wine
ok
(
ref
==
3
,
"Refcount is %u, expected 3
\n
"
,
ref
);
ref
=
getRefcount
((
IUnknown
*
)
tex2
);
todo_wine
ok
(
ref
==
3
,
"Refcount is %u, expected 3
\n
"
,
ref
);
ref
=
getRefcount
((
IUnknown
*
)
surf
);
todo_wine
ok
(
ref
==
3
,
"Refcount is %u, expected 3
\n
"
,
ref
);
IDirectDrawSurface_QueryInterface
(
surf
,
&
IID_IDirectDrawGammaControl
,
(
void
**
)
&
gamma
);
ref
=
getRefcount
((
IUnknown
*
)
gamma
);
todo_wine
ok
(
ref
==
1
,
"Refcount is %u, expected 1
\n
"
,
ref
);
ref
=
IDirect3DTexture2_Release
(
tex2
);
/* Release the texture */
todo_wine
ok
(
ref
==
2
,
"Refcount is %u, expected 2
\n
"
,
ref
);
ref
=
getRefcount
((
IUnknown
*
)
surf
);
todo_wine
ok
(
ref
==
2
,
"Refcount is %u, expected 2
\n
"
,
ref
);
ref
=
IDirect3DTexture_Release
(
tex
);
/* Release the texture */
todo_wine
ok
(
ref
==
1
,
"Refcount is %u, expected 1
\n
"
,
ref
);
ref
=
getRefcount
((
IUnknown
*
)
surf
);
todo_wine
ok
(
ref
==
1
,
"Refcount is %u, expected 1
\n
"
,
ref
);
ref
=
IDirectDrawGammaControl_Release
(
gamma
);
/* Release the gamma control */
todo_wine
ok
(
ref
==
0
,
"Refcount is %u, expected 0
\n
"
,
ref
);
}
ref
=
IDirectDrawSurface2_Release
(
surf2
);
/* Release one of the 2 surf2 interfaces */
todo_wine
ok
(
ref
==
1
,
"Refcount is %u, expected 1
\n
"
,
ref
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment