If CreateTexture fails because of an invalid image, it doesn't leak a reference to d3drm, unlike the InitFrom* calls. So I had to either do this, or explicitly release texture->d3drm if InitFromImage fails. Cheers, Aaryaman On Wed, May 11, 2016 at 9:13 PM, Henri Verbeet <hverbeet(a)gmail.com> wrote:
On 11 May 2016 at 16:43, Aaryaman Vasishta <jem456.vasishta(a)gmail.com> wrote:
@@ -1152,15 +1156,21 @@ static HRESULT WINAPI d3drm3_CreateAnimationSet(IDirect3DRM3 *iface, IDirect3DRM static HRESULT WINAPI d3drm3_CreateTexture(IDirect3DRM3 *iface, D3DRMIMAGE *image, IDirect3DRMTexture3 **texture) { - struct d3drm_texture *object; HRESULT hr;
- FIXME("iface %p, image %p, texture %p partial stub.\n", iface, image, texture); + TRACE("iface %p, image %p, texture %p.\n", iface, image, texture);
- if (FAILED(hr = d3drm_texture_create(&object))) + if (!d3drm_validate_image(image)) + return D3DRMERR_BADVALUE; Why do you need the d3drm_validate_image() call? Purely for the error code?