Module: wine Branch: master Commit: bc1ba439424877a37504162b15a25344d5ab8505 URL: https://gitlab.winehq.org/wine/wine/-/commit/bc1ba439424877a37504162b15a2534...
Author: Matteo Bruni mbruni@codeweavers.com Date: Fri Dec 1 23:29:53 2023 +0100
d3dx9: Check for successful sprite draw in DrawTextW().
---
dlls/d3dx9_36/font.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/dlls/d3dx9_36/font.c b/dlls/d3dx9_36/font.c index cc447e68f22..67058d91ecb 100644 --- a/dlls/d3dx9_36/font.c +++ b/dlls/d3dx9_36/font.c @@ -656,6 +656,7 @@ static INT WINAPI ID3DXFontImpl_DrawTextW(ID3DXFont *iface, ID3DXSprite *sprite, unsigned int count; RECT r = {0}; WCHAR *line; + HRESULT hr; SIZE size;
TRACE("iface %p, sprite %p, string %s, in_count %d, rect %s, format %#lx, color 0x%08lx.\n", @@ -775,8 +776,14 @@ static INT WINAPI ID3DXFontImpl_DrawTextW(ID3DXFont *iface, ID3DXSprite *sprite, black_box.bottom = black_box.top + rect->bottom - pos.y; }
- ID3DXSprite_Draw(target, texture, &black_box, NULL, &pos, color); + hr = ID3DXSprite_Draw(target, texture, &black_box, NULL, &pos, color); IDirect3DTexture9_Release(texture); + if (FAILED(hr)) + { + free(results.lpCaretPos); + free(results.lpGlyphs); + goto cleanup; + } }
free(results.lpCaretPos);