Use a ComPtr to avoid leaking font. (#1063)

Fixes #768
This commit is contained in:
Kyle Sabo 2019-05-30 08:54:46 -07:00 committed by msftbot[bot]
parent d24d647c0d
commit 3d7160d731

View file

@ -822,7 +822,7 @@ HRESULT STDMETHODCALLTYPE CustomTextLayout::_AnalyzeFontFallback(IDWriteTextAnal
while (textLength > 0)
{
UINT32 mappedLength = 0;
IDWriteFont* mappedFont = nullptr;
::Microsoft::WRL::ComPtr<IDWriteFont> mappedFont;
FLOAT scale = 0.0f;
fallback->MapCharacters(source,
@ -837,7 +837,7 @@ HRESULT STDMETHODCALLTYPE CustomTextLayout::_AnalyzeFontFallback(IDWriteTextAnal
&mappedFont,
&scale);
RETURN_IF_FAILED(_SetMappedFont(textPosition, mappedLength, mappedFont, scale));
RETURN_IF_FAILED(_SetMappedFont(textPosition, mappedLength, mappedFont.Get(), scale));
textPosition += mappedLength;
textLength -= mappedLength;
@ -860,7 +860,7 @@ HRESULT STDMETHODCALLTYPE CustomTextLayout::_AnalyzeFontFallback(IDWriteTextAnal
[[nodiscard]]
HRESULT STDMETHODCALLTYPE CustomTextLayout::_SetMappedFont(UINT32 textPosition,
UINT32 textLength,
IDWriteFont* const font,
_In_ IDWriteFont* const font,
FLOAT const scale)
{
try