QMovableArrayOps::Inserter cleanup [3/3]: cut out the where
middle-man
It turned out that we've been maintaining both displaceFrom and its copy, `where`, in parallel. This is not needed, so only maintain displaceFrom. Pick-to: 6.9 6.8 6.5 Change-Id: I8c13420ae3fd284e362c4dd1f1b06d2847780c86 Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
This commit is contained in:
parent
2198cdc406
commit
f18e8cebfc
@ -640,8 +640,8 @@ public:
|
||||
const qsizetype nInserts = 0;
|
||||
const size_t bytes;
|
||||
|
||||
void verifyPost(T *where)
|
||||
{ Q_ASSERT(where == displaceTo); }
|
||||
void verifyPost()
|
||||
{ Q_ASSERT(displaceFrom == displaceTo); }
|
||||
|
||||
explicit Inserter(QArrayDataPointer<T> *d, qsizetype pos, qsizetype n)
|
||||
: data{d},
|
||||
@ -666,35 +666,28 @@ public:
|
||||
|
||||
void insertRange(const T *source, qsizetype n)
|
||||
{
|
||||
T *where = displaceFrom;
|
||||
|
||||
while (n--) {
|
||||
new (where) T(*source);
|
||||
++where;
|
||||
new (displaceFrom) T(*source);
|
||||
++source;
|
||||
++displaceFrom;
|
||||
}
|
||||
verifyPost(where);
|
||||
verifyPost();
|
||||
}
|
||||
|
||||
void insertFill(const T &t, qsizetype n)
|
||||
{
|
||||
T *where = displaceFrom;
|
||||
|
||||
while (n--) {
|
||||
new (where) T(t);
|
||||
++where;
|
||||
new (displaceFrom) T(t);
|
||||
++displaceFrom;
|
||||
}
|
||||
verifyPost(where);
|
||||
verifyPost();
|
||||
}
|
||||
|
||||
void insertOne(T &&t)
|
||||
{
|
||||
T *where = displaceFrom;
|
||||
new (where) T(std::move(t));
|
||||
new (displaceFrom) T(std::move(t));
|
||||
++displaceFrom;
|
||||
verifyPost(++where);
|
||||
verifyPost();
|
||||
}
|
||||
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user