[PATCH 2/6] d3drm: Implement IDirect3DRM*::CreateViewport. (v2 resend)

Stefan Dösinger stefandoesinger at gmail.com
Wed Jul 27 13:51:35 CDT 2016


On 2016-07-19 19:08, Aaryaman Vasishta wrote:

> +    if (FAILED(hr = IDirect3DRMDevice_QueryInterface(device, &IID_IDirect3DRMDevice3, (void **)&device3)))
> +        return hr;
> +
> +    if (FAILED(hr = IDirect3DRMFrame_QueryInterface(camera, &IID_IDirect3DRMFrame3, (void **)&camera3)))
> +    {
> +        IDirect3DRMDevice3_Release(device3);
> +        return hr;
> +    }
> +    IDirect3DRMDevice_Release(device);
> +    IDirect3DRMFrame_Release(camera);
This releases references you don't own. Same in the V2 -> V3 thunk.

> +    if (!device || !camera)
> +        return D3DRMERR_BADOBJECT;
> +    if (!viewport)
> +        return D3DRMERR_BADVALUE;
These checks are redundant, Init() does that as well.

> +    ok(ref4 == frame_ref, "Expected ref4 == frame_ref, got frame_ref = %u, ref4 = %u.\n", frame_ref, ref4);
> +
> +    device_ref = get_refcount((IUnknown *)device1);
> +    frame_ref = get_refcount((IUnknown *)frame);
The get_refcount here seems redundant because you've just shown that it is back to where it used to be.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20160727/611d22c4/attachment-0001.sig>


More information about the wine-devel mailing list