summaryrefslogtreecommitdiffstats
path: root/src/gui/text/qfontdatabase.cpp
diff options
context:
space:
mode:
authorTor Arne Vestbø <tor.arne.vestbo@qt.io>2022-03-25 12:18:37 +0100
committerTor Arne Vestbø <tor.arne.vestbo@qt.io>2022-03-31 21:12:54 +0200
commit3b6aba6598078502a8eb39d814c8fba7696b7bcd (patch)
treeebe9cffebf67757b15c8eaab2376ab217eaf4113 /src/gui/text/qfontdatabase.cpp
parent4bd3080163b49b09bc0ec322805653a7d293df02 (diff)
QFontDatabase: Use more explicit function name for clearing families
Avoids overloading on ::free() from stdlib.h Change-Id: I71d7fa4012f189cf5640968ed43d530eff79989f Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Diffstat (limited to 'src/gui/text/qfontdatabase.cpp')
-rw-r--r--src/gui/text/qfontdatabase.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/gui/text/qfontdatabase.cpp b/src/gui/text/qfontdatabase.cpp
index de4fdb5d2e..dc2a0ff623 100644
--- a/src/gui/text/qfontdatabase.cpp
+++ b/src/gui/text/qfontdatabase.cpp
@@ -298,12 +298,22 @@ void QtFontFamily::ensurePopulated()
Q_ASSERT_X(populated, Q_FUNC_INFO, qPrintable(name));
}
+void QFontDatabasePrivate::clearFamilies()
+{
+ while (count--)
+ delete families[count];
+ ::free(families);
+ families = nullptr;
+ count = 0;
+ // don't clear the memory fonts!
+}
+
void QFontDatabasePrivate::invalidate()
{
QFontCache::instance()->clear();
fallbacksCache.clear();
- free();
+ clearFamilies();
QGuiApplicationPrivate::platformIntegration()->fontDatabase()->invalidate();
emit static_cast<QGuiApplication *>(QCoreApplication::instance())->fontDatabaseChanged();
}
@@ -530,7 +540,7 @@ void qt_cleanupFontDatabase()
{
auto *db = QFontDatabasePrivate::instance();
db->fallbacksCache.clear();
- db->free();
+ db->clearFamilies();
}
// used in qfont.cpp