diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2020-05-18 09:30:10 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2020-05-19 07:44:34 +0200 |
commit | 26100ccb83ec9c4a2ee192170f1952956dd569d1 (patch) | |
tree | 8c40c34f6bdb851d51e24efb333953a5fd6d399c /src/platformsupport/fontdatabases | |
parent | 1b7589a25c66d14ff6873710a3851038d627ef57 (diff) |
Direct Write Font Engine: Fix leaking IDWriteFontFace instances
Patch as contributed on bug report.
Pick-to: 5.15
Pick-to: 5.12
Fixes: QTBUG-84265
Change-Id: I73d73cf7d1b46944767750bf0f0c727c7b00b1d7
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Diffstat (limited to 'src/platformsupport/fontdatabases')
-rw-r--r-- | src/platformsupport/fontdatabases/windows/qwindowsfontdatabase.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/platformsupport/fontdatabases/windows/qwindowsfontdatabase.cpp b/src/platformsupport/fontdatabases/windows/qwindowsfontdatabase.cpp index 0266f19cd3..060e3fb618 100644 --- a/src/platformsupport/fontdatabases/windows/qwindowsfontdatabase.cpp +++ b/src/platformsupport/fontdatabases/windows/qwindowsfontdatabase.cpp @@ -1175,6 +1175,8 @@ QFontEngine *QWindowsFontDatabase::createEngine(const QFontDef &request, const Q reinterpret_cast<void **>(&directWriteFontFace2)))) { if (directWriteFontFace2->IsColorFont()) isColorFont = directWriteFontFace2->GetPaletteEntryCount() > 0; + + directWriteFontFace2->Release(); } #endif useDw = useDw || useDirectWrite(hintingPreference, fam, isColorFont); @@ -1196,9 +1198,8 @@ QFontEngine *QWindowsFontDatabase::createEngine(const QFontDef &request, const Q fedw->glyphFormat = QFontEngine::Format_ARGB; fedw->initFontInfo(fontDef, dpi); fe = fedw; - } else { - directWriteFontFace->Release(); } + directWriteFontFace->Release(); } else if (useDw) { const QString errorString = qt_error_string(int(hr)); qWarning().noquote().nospace() << "DirectWrite: CreateFontFaceFromHDC() failed (" |