From 94d7abce63a65bfe998f3dedf597282cc505b1b5 Mon Sep 17 00:00:00 2001 From: Nikolay Sivov Date: Wed, 8 Dec 2021 14:10:45 +0300 Subject: [PATCH] dwrite: Keep corresponding data context for created backend object. Signed-off-by: Nikolay Sivov Signed-off-by: Alexandre Julliard --- 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); } } }