OSDN Git Service

reserve space when streaming QSet and QHash in QDataStream
authorIvailo Monev <xakepa10@laimg.moc>
Wed, 4 Dec 2019 21:43:02 +0000 (21:43 +0000)
committerIvailo Monev <xakepa10@laimg.moc>
Wed, 4 Dec 2019 21:43:02 +0000 (21:43 +0000)
Signed-off-by: Ivailo Monev <xakepa10@laimg.moc>
src/core/io/qdatastream.h

index 3df69fc..7e7bd95 100644 (file)
@@ -282,6 +282,7 @@ QDataStream &operator>>(QDataStream &in, QSet<T> &set)
     set.clear();
     quint32 c;
     in >> c;
+    set.reserve(c);
     for (quint32 i = 0; i < c; ++i) {
         T t;
         in >> t;
@@ -310,6 +311,7 @@ Q_OUTOFLINE_TEMPLATE QDataStream &operator>>(QDataStream &in, QHash<Key, T> &has
 
     quint32 n;
     in >> n;
+    hash.reserve(n);
 
     for (quint32 i = 0; i < n; ++i) {
         if (in.status() != QDataStream::Ok)