Revert "QHashData cleanup"

This reverts commit 7b64a37abe.
This commit is contained in:
Ivailo Monev 2019-05-18 17:41:02 +00:00
parent 7b64a37abe
commit ca67731374
2 changed files with 8 additions and 2 deletions

View file

@ -166,7 +166,7 @@ static int countBits(int hint)
const int MinNumBits = 4;
QHashData QHashData::shared_null = {
0, QAtomicInt(1), 0, 0, MinNumBits, 0, 0, true
0, 0, QAtomicInt(1), 0, 0, MinNumBits, 0, 0, true
};
QHashData *QHashData::detach_helper(void (*node_duplicate)(Node *, void *),
@ -178,6 +178,7 @@ QHashData *QHashData::detach_helper(void (*node_duplicate)(Node *, void *),
Node *e;
};
d = new QHashData;
d->fakeNext = 0;
d->buckets = 0;
d->ref = 1;
d->size = size;
@ -372,6 +373,7 @@ void QHashData::dump()
qDebug("Hash data (ref = %d, size = %d, nodeSize = %d, userNumBits = %d, numBits = %d, numBuckets = %d)",
int(ref), size, nodeSize, userNumBits, numBits,
numBuckets);
qDebug(" %p (fakeNode = %p)", this, fakeNext);
for (int i = 0; i < numBuckets; ++i) {
QString line;
Node *n = buckets[i];
@ -392,6 +394,9 @@ void QHashData::dump()
void QHashData::checkSanity()
{
if (fakeNext)
qFatal("Fake next isn't 0");
for (int i = 0; i < numBuckets; ++i) {
Node *n = buckets[i];
Node *p = n;

View file

@ -104,6 +104,7 @@ struct Q_CORE_EXPORT QHashData
uint h;
};
Node *fakeNext;
Node **buckets;
QAtomicInt ref;
int size;
@ -111,7 +112,7 @@ struct Q_CORE_EXPORT QHashData
short userNumBits;
short numBits;
int numBuckets;
bool sharable;
uint sharable : 1;
QHashData *detach_helper(void (*node_duplicate)(Node *, void *), void (*node_delete)(Node *),
int nodeSize);