From 3b6aba6598078502a8eb39d814c8fba7696b7bcd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Fri, 25 Mar 2022 12:18:37 +0100 Subject: QFontDatabase: Use more explicit function name for clearing families Avoids overloading on ::free() from stdlib.h Change-Id: I71d7fa4012f189cf5640968ed43d530eff79989f Reviewed-by: Eskil Abrahamsen Blomfeldt Reviewed-by: Konstantin Ritt --- src/gui/text/qfontdatabase.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'src/gui/text/qfontdatabase.cpp') 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(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 -- cgit v1.2.3