summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@digia.com>2013-10-10 15:36:52 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-10-11 12:10:20 +0200
commit894f86709080fe8d20875b402adce679963c49c2 (patch)
tree84cb1df1f8708e35e49b5ebcfa7ed4b88e8a5692 /src/gui
parent6f6546613774a48fe12f13f796ed7115dfe49a27 (diff)
Memory leak with Small-caps QRawFont
Make sure we deallocate the scaled rawfont, when it is not used due to a cached engine being used instead. This fixes a major memory leak in Qt WebKit when using Small Caps in the complex font path. The complex font path is always used for small caps since Qt 5.1. Task-number: QTBUG-33576 Change-Id: I500db9ae6f6576734f1a972387a1a488218a9db6 Reviewed-by: pierre.rossi@digia.com Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/text/qtextengine.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/gui/text/qtextengine.cpp b/src/gui/text/qtextengine.cpp
index e571e8da8a..c0e2c5b803 100644
--- a/src/gui/text/qtextengine.cpp
+++ b/src/gui/text/qtextengine.cpp
@@ -1886,6 +1886,10 @@ QFontEngine *QTextEngine::fontEngine(const QScriptItem &si, QFixed *ascent, QFix
scaledEngine = QFontEngineMultiQPA::createMultiFontEngine(scEngine, script);
scaledEngine->ref.ref();
feCache.prevScaledFontEngine = scaledEngine;
+ // If scEngine is not ref'ed by scaledEngine, make sure it is deallocated and not leaked.
+ if (!scEngine->ref.load())
+ delete scEngine;
+
}
}
} else