[PATCH 6/7] d3drm: Implement IDirect3DRMViewport*::Init. (v3)

Aaryaman Vasishta jem456.vasishta at gmail.com
Thu Jun 30 06:28:54 CDT 2016


On Tue, Jun 28, 2016 at 3:24 AM, Aaryaman Vasishta <
jem456.vasishta at gmail.com> wrote:


>
> +    if (viewport->d3d_viewport)
> +        return D3DRMERR_BADOBJECT;
> +
> +    IDirect3DRM_AddRef(viewport->d3drm);
> +
>
FWIW, I didn't put the intentional d3drm, camera leaks here because it
seems that the device controls the leaked references via some sort of
destroy callback on the device. (See the todo_wine tests in this patch).

> +    todo_wine ok(ref4 > frame_ref2, "Expected ref4 > frame_ref2, got
> frame_ref2 = %u, ref4 = %u.\n", frame_ref2, ref4);
> +
> +    IDirect3DRMDevice3_Release(device3);
> +    IDirect3DRMDevice_Release(device1);
>
I tried to release d3drm explicitly myself, like how I did with the texture
tests. But the tests would then crash here, at IDirect3DRMDevice_Release,
where the device gets destroyed. Which probably indicates that the device
stores a list of leaked references and releases them on getting destroyed.
For now I've decided to avoid the leak, thus avoiding the use of a destroy
callback, and implementing this as a separate later on if an application
demands it, unless it's safer to get this done on priority.

Cheers,
Aaryaman
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20160630/85f9ce2c/attachment-0001.html>


More information about the wine-devel mailing list