d3d8: Unlock already unlocked surface does not fail

Stefan Dösinger stefandoesinger at gmail.com
Sun Mar 27 11:15:45 CDT 2016


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Am 2016-03-27 um 13:05 schrieb David Adam:
> Signed-off-by: David Adam <david.adam.cnrs at gmail.com>
> ---
>  dlls/d3d8/surface.c      |  9 ++++-----
>  dlls/d3d8/tests/visual.c | 14 ++++++++++++++
>  2 files changed, 18 insertions(+), 5 deletions(-)
> 
> diff --git a/dlls/d3d8/surface.c b/dlls/d3d8/surface.c
> index 565f642..376bc6f 100644
> --- a/dlls/d3d8/surface.c
> +++ b/dlls/d3d8/surface.c
> @@ -271,11 +271,10 @@ static HRESULT WINAPI d3d8_surface_UnlockRect(IDirect3DSurface8 *iface)
>      hr = wined3d_resource_unmap(wined3d_texture_get_resource(surface->wined3d_texture), surface->sub_resource_idx);
>      wined3d_mutex_unlock();
>  
> -    switch(hr)
> -    {
> -        case WINEDDERR_NOTLOCKED:       return D3DERR_INVALIDCALL;
> -        default:                        return hr;
> -    }
> +    if (hr == WINEDDERR_NOTLOCKED)
> +       return D3D_OK;
I suspect that similarly to lock validation the behavior of double unlocks depends on the resource type (surface vs texture).

> @@ -178,6 +178,8 @@ static D3DCOLOR get_surface_color(IDirect3DSurface8 *surface, UINT x, UINT y)
>  
>      hr = IDirect3DSurface8_UnlockRect(surface);
>      ok(SUCCEEDED(hr), "Failed to unlock surface, hr=%#x.\n", hr);
> +    hr = IDirect3DSurface8_UnlockRect(surface);
> +    ok(SUCCEEDED(hr), "Failed to double unlock surface, hr=%#x.\n", hr);
We have test_surface_double_unlock() in device.c and test_lockrect_invalid(). The test fits there better than sprinkled all around visual.c. (I have a preference for merging test_surface_double_unlock into test_lockrect_invalid, but I haven't looked closely how well that'll work)

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCAAGBQJW+AcxAAoJEN0/YqbEcdMwSYMP/ifDlI7N/z6QcEL6lRo9WsDr
C+WfvTA6R4SRY+Wc/rWihX821b1mApv+kk9CSnZDSV96tpXKikjQdsMM5pB91oDW
PDXxNkuoGpo1AR6gS5rve3fWc3vgRXSy7XzPLXAOlL6PF/lxbDcD/jixj8PjI6NZ
Oel1ukbYuAr8dINKS8oB4tTZg59Pq/devXepJNlxxzfg11lgnoiF2kBYAlKZp+qC
e59bWeZMixzB7ChzSUpAxlpjd+yipdtnVLKrq2codNYZn2Z+tV959MAZO+YYB35I
BtHoSFNF16omLJ6qu9ZDZISOesep4YAlHyicERkZKR6kikaGI1/ezkxZtzD9zREn
EDK5L+Trhar+XW/WgEYwJtIk9PAkJgLU53W5hgoq9TeDguMEtszvFj2GTStGEVnd
M+dNN/4DQNg1aqCj1yRoom7N7WCVExWxdw9PlgqOFW68EjlNxZM2uO8S5pTNKx95
cBfxLYCI+agYj/aw3xOL3/yzNe4tI/pp+thsDlTqQZaXXTb3/S+ilChGEED9pQOz
rHRQCP8yTsV9YtjWa2F+a/uSYP/LkZ9qFMkVzV9/nRw9GxpD0s2F7RdZVqhdW+VY
eXW/YSDN+Mm8YF7MkWCKCeodDHL/VVqlDiEx8e+XQ96uELoiV2WP/GiVCwtjVMmb
9fib0jMQDGufm0Txe57H
=pNWk
-----END PGP SIGNATURE-----



More information about the wine-patches mailing list