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 qsizetype nInserts = 0;
|
||||||
const size_t bytes;
|
const size_t bytes;
|
||||||
|
|
||||||
void verifyPost(T *where)
|
void verifyPost()
|
||||||
{ Q_ASSERT(where == displaceTo); }
|
{ Q_ASSERT(displaceFrom == displaceTo); }
|
||||||
|
|
||||||
explicit Inserter(QArrayDataPointer<T> *d, qsizetype pos, qsizetype n)
|
explicit Inserter(QArrayDataPointer<T> *d, qsizetype pos, qsizetype n)
|
||||||
: data{d},
|
: data{d},
|
||||||
@ -666,35 +666,28 @@ public:
|
|||||||
|
|
||||||
void insertRange(const T *source, qsizetype n)
|
void insertRange(const T *source, qsizetype n)
|
||||||
{
|
{
|
||||||
T *where = displaceFrom;
|
|
||||||
|
|
||||||
while (n--) {
|
while (n--) {
|
||||||
new (where) T(*source);
|
new (displaceFrom) T(*source);
|
||||||
++where;
|
|
||||||
++source;
|
++source;
|
||||||
++displaceFrom;
|
++displaceFrom;
|
||||||
}
|
}
|
||||||
verifyPost(where);
|
verifyPost();
|
||||||
}
|
}
|
||||||
|
|
||||||
void insertFill(const T &t, qsizetype n)
|
void insertFill(const T &t, qsizetype n)
|
||||||
{
|
{
|
||||||
T *where = displaceFrom;
|
|
||||||
|
|
||||||
while (n--) {
|
while (n--) {
|
||||||
new (where) T(t);
|
new (displaceFrom) T(t);
|
||||||
++where;
|
|
||||||
++displaceFrom;
|
++displaceFrom;
|
||||||
}
|
}
|
||||||
verifyPost(where);
|
verifyPost();
|
||||||
}
|
}
|
||||||
|
|
||||||
void insertOne(T &&t)
|
void insertOne(T &&t)
|
||||||
{
|
{
|
||||||
T *where = displaceFrom;
|
new (displaceFrom) T(std::move(t));
|
||||||
new (where) T(std::move(t));
|
|
||||||
++displaceFrom;
|
++displaceFrom;
|
||||||
verifyPost(++where);
|
verifyPost();
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user