QFontEngine: replace QLinkedList with std::list
The object is never copied, so there's no point in using a cow'ed list implementation. Also port two explicit-iterator loops to ranged-for, as one is necessary (because of constBegin()) and the other is for consistency. Change-Id: Ia7f080060d6b675a76b55d197af08161389082a9 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
parent
2353cb00cb
commit
b703279235
|
|
@ -1059,15 +1059,15 @@ void QFontEngine::setGlyphCache(const void *context, QFontEngineGlyphCache *cach
|
|||
Q_ASSERT(cache);
|
||||
|
||||
GlyphCaches &caches = m_glyphCaches[context];
|
||||
for (GlyphCaches::const_iterator it = caches.constBegin(), end = caches.constEnd(); it != end; ++it) {
|
||||
if (cache == it->cache.data())
|
||||
for (auto & e : caches) {
|
||||
if (cache == e.cache.data())
|
||||
return;
|
||||
}
|
||||
|
||||
// Limit the glyph caches to 4 per context. This covers all 90 degree rotations,
|
||||
// and limits memory use when there is continuous or random rotation
|
||||
if (caches.size() == 4)
|
||||
caches.removeLast();
|
||||
caches.pop_back();
|
||||
|
||||
GlyphCacheEntry entry;
|
||||
entry.cache = cache;
|
||||
|
|
@ -1081,8 +1081,8 @@ QFontEngineGlyphCache *QFontEngine::glyphCache(const void *context, GlyphFormat
|
|||
if (caches == m_glyphCaches.cend())
|
||||
return nullptr;
|
||||
|
||||
for (GlyphCaches::const_iterator it = caches->begin(), end = caches->end(); it != end; ++it) {
|
||||
QFontEngineGlyphCache *cache = it->cache.data();
|
||||
for (auto &e : *caches) {
|
||||
QFontEngineGlyphCache *cache = e.cache.data();
|
||||
if (format == cache->glyphFormat() && qtransform_equals_no_translate(cache->m_transform, transform))
|
||||
return cache;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -54,7 +54,6 @@
|
|||
#include <QtGui/private/qtguiglobal_p.h>
|
||||
#include "QtCore/qatomic.h"
|
||||
#include <QtCore/qvarlengtharray.h>
|
||||
#include <QtCore/QLinkedList>
|
||||
#include <QtCore/qhashfunctions.h>
|
||||
#include "private/qtextengine_p.h"
|
||||
#include "private/qfont_p.h"
|
||||
|
|
@ -370,7 +369,7 @@ private:
|
|||
QExplicitlySharedDataPointer<QFontEngineGlyphCache> cache;
|
||||
bool operator==(const GlyphCacheEntry &other) const { return cache == other.cache; }
|
||||
};
|
||||
typedef QLinkedList<GlyphCacheEntry> GlyphCaches;
|
||||
typedef std::list<GlyphCacheEntry> GlyphCaches;
|
||||
mutable QHash<const void *, GlyphCaches> m_glyphCaches;
|
||||
|
||||
private:
|
||||
|
|
|
|||
Loading…
Reference in New Issue