[PATCH 5/6] d3drm: Implement IDirect3DRMTexture*::InitFromFile.

Stefan Dösinger stefandoesinger at gmail.com
Sun May 8 11:24:39 CDT 2016


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

Am 2016-05-08 um 11:31 schrieb Aaryaman Vasishta:
> +    /* d3drm intentionally leaks a reference to IDirect3DRM here if texture has already been initialized. */
> +    if (texture->d3drm)
> +        IDirect3DRM_AddRef(texture->d3drm);
> +
> +    if (texture->image)
> +        return D3DRMERR_BADOBJECT;
> +    if (FAILED(hr = d3drm_texture_load(texture, filename, FALSE)))
> +        return hr;
Does it also leak if the file fails to load? It's probably better to create the image and then pass it to InitFromImage instead of re-coding this part.

Is there any situation where texture->d3drm would be NULL? The same question applies to the newly introduced check in d3drm_texture_destroy.

> +    /* Use an internal destroy callback to destroy image struct */
> +    hr = IDirect3DRMObject_AddDestroyCallback(&texture->IDirect3DRMTexture3_iface, destroy_image_callback, texture);
> +
> +cleanup:
> +    UnmapViewOfFile(buffer);
> +    CloseHandle(hmapping);
> +    CloseHandle(hfile);
> +
> +    return hr;
You'll leak the image if AddDestroyCallback fails.

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

iQIcBAEBCAAGBQJXL2hHAAoJEN0/YqbEcdMwezQP/0X9Ik1RbPNFRgvvFRxhrFQE
VLstrghPD28bQQ2i7YoVsdNCZMCyIQa+7GVzI/3d5pakyldEr/7OVIvHHGyxa8j/
YP2O0JTNGxVVhNB0pUM6bEPpnUj7BOPm0uCkcPhU42QVevzKBL7jUnl5Jx/j+j0K
Dld9+WDh3i2sSsrtFg2MLdsi4oG5ej3eOFuN2jibceK5hLR4UI1vwyyccCsD+Xd3
NmKnG6KMfiQsvVjxW7IoO5qDcmzZsKzdnMHFgL93KKkOkP2SBhODJckiWNNeswcr
XFjd6r9NBIZsFGdIBM040ph4gd/cu7h3R/IWw2hG++oQ+qxX0NOH61GNoUasjyQh
hKjyVqmjJa6MUPezzqoFv3XRPQGVnz4Q3l7GSp0QQYCJYtZR+8vey3ezkIuvfFNA
GszecmBvvi3Bv4Ir6JriJSUjTC73EcluKhS6WmFk+UxABrn0TBGSgFWkMENdxP6F
vE90h/a/JumNtdlCibpB/ctFP7NIWDs2Uz7RjrCQUPaXH86+hUtcs92farOi7JzV
EuwzXW1a2qgb7O6ZHWSxdCTvmJZy9rjS1gP8aH0gqUWaxr1FjJsPiOvSWU1/P1QX
qD/M/kENP4O0tmsI/dwnDRJ6lHf8FH71uNR0kRq2eWJa/clFdC+h5uMHRDx5w+iy
jlZ0/xkcdFzzaOJV1Yw0
=cwCD
-----END PGP SIGNATURE-----



More information about the wine-devel mailing list