Module: wine Branch: master Commit: 94d7abce63a65bfe998f3dedf597282cc505b1b5 URL: https://source.winehq.org/git/wine.git/?a=commit;h=94d7abce63a65bfe998f3dedf...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Wed Dec 8 14:10:45 2021 +0300
dwrite: Keep corresponding data context for created backend object.
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/dwrite/font.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/dlls/dwrite/font.c b/dlls/dwrite/font.c index 22fb3369bc7..ffe012d3029 100644 --- a/dlls/dwrite/font.c +++ b/dlls/dwrite/font.c @@ -5316,10 +5316,15 @@ static UINT64 dwrite_fontface_get_font_object(struct dwrite_fontface *fontface) return 0; }
- if (InterlockedCompareExchange64((LONGLONG *)&fontface->font_object, font_object, 0)) + if (!InterlockedCompareExchange64((LONGLONG *)&fontface->font_object, font_object, 0)) + { + fontface->data_context = data_context; + } + else { release_params.object = font_object; UNIX_CALL(release_font_object, &release_params); + IDWriteFontFileStream_ReleaseFileFragment(fontface->stream, data_context); } } }