summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarim Pinter <karim.pinter@digia.com>2013-08-26 11:07:15 +0300
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-05-21 17:30:13 +0200
commit8bdf319c28ae7844f8cdbf0af26c8bfc78ea50cc (patch)
tree172db8a781708548454b488dcb5b5b0d1dff9835
parent2983cb9531d47e5826540ca79e3066a8ed0db30c (diff)
Fix for bindvalue(int) memory allocation problem
QSqlResult::bindValue(int index, ...) is increasing the memory usage when called multiple times for same index Task-number: QTBUG-33169 Change-Id: I4f26125f6bb994bb430dc054df5761b6ddf03075 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Mark Brand <mabrand@mabrand.nl>
-rw-r--r--src/sql/kernel/qsqlresult.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/sql/kernel/qsqlresult.cpp b/src/sql/kernel/qsqlresult.cpp
index 6959dc39f7..09b8f8d889 100644
--- a/src/sql/kernel/qsqlresult.cpp
+++ b/src/sql/kernel/qsqlresult.cpp
@@ -688,7 +688,9 @@ void QSqlResult::bindValue(int index, const QVariant& val, QSql::ParamType param
{
Q_D(QSqlResult);
d->binds = PositionalBinding;
- d->indexes[d->fieldSerial(index)].append(index);
+ QList<int>& indexes = d->indexes[d->fieldSerial(index)];
+ if (!indexes.contains(index))
+ indexes.append(index);
if (d->values.count() <= index)
d->values.resize(index + 1);
d->values[index] = val;