Hi Sven,
On Mon, 2 Mar 2020 11:51:52 +0100, Sven Baars wrote:
diff --git a/dlls/d3dx9_36/font.c b/dlls/d3dx9_36/font.c index 9196295637..8d2d6c8c44 100644 --- a/dlls/d3dx9_36/font.c +++ b/dlls/d3dx9_36/font.c @@ -420,14 +420,62 @@ static HRESULT WINAPI ID3DXFontImpl_PreloadGlyphs(ID3DXFont *iface, UINT first,
static HRESULT WINAPI ID3DXFontImpl_PreloadTextA(ID3DXFont *iface, const char *string, INT count) {
- FIXME("iface %p, string %s, count %d stub!\n", iface, debugstr_a(string), count);
- return E_NOTIMPL;
- WCHAR *wstr;
- HRESULT hr;
- int countW;
- TRACE("iface %p, string %s, count %d.\n", iface, debugstr_a(string), count);
debugstr_an(string, count) is preferable.
- if (!string && !count)
return D3D_OK;
- if (!string)
return D3DERR_INVALIDCALL;
- countW = MultiByteToWideChar(CP_ACP, 0, string, count < 0 ? -1 : count, NULL, 0);
- wstr = heap_alloc(countW * sizeof(*wstr));
- if (!wstr)
return E_OUTOFMEMORY;
- MultiByteToWideChar(CP_ACP, 0, string, count < 0 ? -1 : count, wstr, countW);
- hr = ID3DXFont_PreloadTextW(iface, wstr, count);
You want to use countW instead of count here.
There are similar issues with ID3DXFontImpl_DrawTextA in PATCH 2/5.
Regards, Akihiro Sagawa