summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2020-05-18 09:30:10 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2020-05-20 18:27:28 +0000
commit232bd0a05f517c55cfe15d509697b15b90dcfe6e (patch)
tree324b412d8b8c05d8b459ad341f9b92a76face0b5 /src
parentc6aec7eda396093616a8d7b71df8e029b885ffc3 (diff)
Direct Write Font Engine: Fix leaking IDWriteFontFace instances
Patch as contributed on bug report. Fixes: QTBUG-84265 Change-Id: I73d73cf7d1b46944767750bf0f0c727c7b00b1d7 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> (cherry picked from commit 26100ccb83ec9c4a2ee192170f1952956dd569d1) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src')
-rw-r--r--src/platformsupport/fontdatabases/windows/qwindowsfontdatabase.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/platformsupport/fontdatabases/windows/qwindowsfontdatabase.cpp b/src/platformsupport/fontdatabases/windows/qwindowsfontdatabase.cpp
index c456f01b28..6a997b35e8 100644
--- a/src/platformsupport/fontdatabases/windows/qwindowsfontdatabase.cpp
+++ b/src/platformsupport/fontdatabases/windows/qwindowsfontdatabase.cpp
@@ -1975,6 +1975,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);
@@ -1996,9 +1998,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 ("