summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel
diff options
context:
space:
mode:
authorAnton Kudryavtsev <a.kudryavtsev@netris.ru>2016-01-21 22:07:25 +0300
committerAnton Kudryavtsev <a.kudryavtsev@netris.ru>2016-01-22 10:18:34 +0000
commit0f51686a695bea6151c000aba6397f4402a8d20d (patch)
tree07f4341b3653bb4f9c41fb011556f92e48fc6653 /src/corelib/kernel
parent720d1792f2c7aff6c810367b5ff33ef041f17f2b (diff)
QVariant: use reserve in convert()
... to optimize memory allocation. Change-Id: I7f644955be779c3651683401a7985a265b69ca6f Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Diffstat (limited to 'src/corelib/kernel')
-rw-r--r--src/corelib/kernel/qvariant.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/corelib/kernel/qvariant.cpp b/src/corelib/kernel/qvariant.cpp
index 2db4e07c99..c7d9c9767a 100644
--- a/src/corelib/kernel/qvariant.cpp
+++ b/src/corelib/kernel/qvariant.cpp
@@ -560,7 +560,9 @@ static bool convert(const QVariant::Private *d, int t, void *result, bool *ok)
if (d->type == QVariant::List) {
QStringList *slst = static_cast<QStringList *>(result);
const QVariantList *list = v_cast<QVariantList >(d);
- for (int i = 0; i < list->size(); ++i)
+ const int size = list->size();
+ slst->reserve(size);
+ for (int i = 0; i < size; ++i)
slst->append(list->at(i).toString());
} else if (d->type == QVariant::String) {
QStringList *slst = static_cast<QStringList *>(result);
@@ -826,7 +828,9 @@ static bool convert(const QVariant::Private *d, int t, void *result, bool *ok)
if (d->type == QVariant::StringList) {
QVariantList *lst = static_cast<QVariantList *>(result);
const QStringList *slist = v_cast<QStringList>(d);
- for (int i = 0; i < slist->size(); ++i)
+ const int size = slist->size();
+ lst->reserve(size);
+ for (int i = 0; i < size; ++i)
lst->append(QVariant(slist->at(i)));
} else if (qstrcmp(QMetaType::typeName(d->type), "QList<QVariant>") == 0) {
*static_cast<QVariantList *>(result) =