From 39dffd14b9544955e294899ca7125a0b913607c6 Mon Sep 17 00:00:00 2001 From: Jiang Jiang Date: Tue, 21 Jun 2011 09:25:19 +0200 Subject: Proper fix for previous deallocation problem The match FcPattern should be managed by QFontDatabase instead of QFontEngineX11FT since the latter only used it once. Reviewed-by: Samuel --- src/gui/text/qfontengine_x11.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/gui/text/qfontengine_x11.cpp b/src/gui/text/qfontengine_x11.cpp index 74c0130..490866c 100644 --- a/src/gui/text/qfontengine_x11.cpp +++ b/src/gui/text/qfontengine_x11.cpp @@ -946,6 +946,7 @@ void QFontEngineMultiFT::loadEngine(int at) fontEngine = engineForPattern(match, request, screen); QFontCache::instance()->insertEngine(key, fontEngine); } + FcPatternDestroy(match); fontEngine->ref.ref(); engines[at] = fontEngine; } @@ -1113,17 +1114,14 @@ QFontEngineX11FT::QFontEngineX11FT(FcPattern *pattern, const QFontDef &fd, int s } #endif - if (!init(face_id, antialias, defaultFormat)) { - FcPatternDestroy(pattern); + if (!init(face_id, antialias, defaultFormat)) return; - } if (!freetype->charset) { FcCharSet *cs; FcPatternGetCharSet (pattern, FC_CHARSET, 0, &cs); freetype->charset = FcCharSetCopy(cs); } - FcPatternDestroy(pattern); } QFontEngineX11FT::~QFontEngineX11FT() -- cgit v0.12