summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBradley T. Hughes <bradley.hughes@nokia.com>2011-09-09 12:45:18 +0200
committerQt by Nokia <qt-info@nokia.com>2011-09-26 19:04:06 +0200
commitc7fa7475c9271965f8424ec7535a6828effc0c61 (patch)
tree657daa69730163120e0e1e84a2ca27917bee44eb
parentd13afe497aa94363e2c1e218fd05a4dfc8ea52e4 (diff)
Update QHash for Qt 5
Dealt with all necessary changes that are marked in the code: removing methods left only for binary compatibility with earlier Qt 4 versions and other methods marked for removal. Change-Id: I47109ccd9ed40addc345416be9e172570723955e Reviewed-on: http://codereview.qt-project.org/4534 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
-rw-r--r--src/corelib/tools/qhash.cpp23
-rw-r--r--src/corelib/tools/qhash.h32
2 files changed, 9 insertions, 46 deletions
diff --git a/src/corelib/tools/qhash.cpp b/src/corelib/tools/qhash.cpp
index 2e60f40a9c..937225fe11 100644
--- a/src/corelib/tools/qhash.cpp
+++ b/src/corelib/tools/qhash.cpp
@@ -169,11 +169,6 @@ const QHashData QHashData::shared_null = {
0, 0, Q_REFCOUNT_INITIALIZER(-1), 0, 0, MinNumBits, 0, 0, true, false, 0
};
-void *QHashData::allocateNode()
-{
- return allocateNode(0);
-}
-
void *QHashData::allocateNode(int nodeAlign)
{
void *ptr = strictAlignment ? qMallocAligned(nodeSize, nodeAlign) : qMalloc(nodeSize);
@@ -189,15 +184,10 @@ void QHashData::freeNode(void *node)
qFree(node);
}
-QHashData *QHashData::detach_helper(void (*node_duplicate)(Node *, void *), int nodeSize)
-{
- return detach_helper2( node_duplicate, 0, nodeSize, 0 );
-}
-
-QHashData *QHashData::detach_helper2(void (*node_duplicate)(Node *, void *),
- void (*node_delete)(Node *),
- int nodeSize,
- int nodeAlign)
+QHashData *QHashData::detach_helper(void (*node_duplicate)(Node *, void *),
+ void (*node_delete)(Node *),
+ int nodeSize,
+ int nodeAlign)
{
union {
QHashData *d;
@@ -392,11 +382,6 @@ void QHashData::rehash(int hint)
}
}
-void QHashData::destroyAndFree()
-{
- free_helper(0);
-}
-
#ifdef QT_QHASH_DEBUG
void QHashData::dump()
diff --git a/src/corelib/tools/qhash.h b/src/corelib/tools/qhash.h
index 40a58fdbf8..25cece4673 100644
--- a/src/corelib/tools/qhash.h
+++ b/src/corelib/tools/qhash.h
@@ -128,18 +128,14 @@ struct Q_CORE_EXPORT QHashData
uint strictAlignment : 1;
uint reserved : 30;
- void *allocateNode(); // ### Qt5 remove me
void *allocateNode(int nodeAlign);
void freeNode(void *node);
- QHashData *detach_helper(void (*node_duplicate)(Node *, void *), int nodeSize); // ### Qt5 remove me
- QHashData *detach_helper2(void (*node_duplicate)(Node *, void *), void (*node_delete)(Node *),
- int nodeSize, int nodeAlign);
- void mightGrow();
+ QHashData *detach_helper(void (*node_duplicate)(Node *, void *), void (*node_delete)(Node *),
+ int nodeSize, int nodeAlign);
bool willGrow();
void hasShrunk();
void rehash(int hint);
void free_helper(void (*node_delete)(Node *));
- void destroyAndFree(); // ### Qt5 remove me
Node *firstNode();
#ifdef QT_QHASH_DEBUG
void dump();
@@ -151,12 +147,6 @@ struct Q_CORE_EXPORT QHashData
static const QHashData shared_null;
};
-inline void QHashData::mightGrow() // ### Qt 5: eliminate
-{
- if (size >= numBuckets)
- rehash(numBits + 1);
-}
-
inline bool QHashData::willGrow()
{
if (size >= numBuckets) {
@@ -220,7 +210,6 @@ struct QHashNode
Key key;
T value;
- inline QHashNode(const Key &key0) : key(key0) {} // ### remove in 5.0
inline QHashNode(const Key &key0, const T &value0) : key(key0), value(value0) {}
inline bool same_key(uint h0, const Key &key0) { return h0 == h && key0 == key; }
};
@@ -330,6 +319,7 @@ public:
class iterator
{
friend class const_iterator;
+ friend class QHash<Key, T>;
QHashData::Node *i;
public:
@@ -339,8 +329,6 @@ public:
typedef T *pointer;
typedef T &reference;
- // ### Qt 5: get rid of 'operator Node *'
- inline operator Node *() const { return concrete(i); }
inline iterator() : i(0) { }
explicit inline iterator(void *node) : i(reinterpret_cast<QHashData::Node *>(node)) { }
@@ -385,10 +373,6 @@ public:
{ return i == o.i; }
inline bool operator!=(const const_iterator &o) const
{ return i != o.i; }
-
- private:
- // ### Qt 5: remove
- inline operator bool() const { return false; }
};
friend class iterator;
@@ -404,8 +388,6 @@ public:
typedef const T *pointer;
typedef const T &reference;
- // ### Qt 5: get rid of 'operator Node *'
- inline operator Node *() const { return concrete(i); }
inline const_iterator() : i(0) { }
explicit inline const_iterator(void *node)
: i(reinterpret_cast<QHashData::Node *>(node)) { }
@@ -453,10 +435,6 @@ public:
inline bool operator==(const iterator &o) const { return operator==(const_iterator(o)); }
inline bool operator!=(const iterator &o) const { return operator!=(const_iterator(o)); }
#endif
-
- private:
- // ### Qt 5: remove
- inline operator bool() const { return false; }
};
friend class const_iterator;
@@ -579,7 +557,7 @@ Q_INLINE_TEMPLATE void QHash<Key, T>::clear()
template <class Key, class T>
Q_OUTOFLINE_TEMPLATE void QHash<Key, T>::detach_helper()
{
- QHashData *x = d->detach_helper2(duplicateNode, deleteNode2,
+ QHashData *x = d->detach_helper(duplicateNode, deleteNode2,
QTypeInfo<T>::isDummy ? sizeof(DummyNode) : sizeof(Node),
QTypeInfo<T>::isDummy ? alignOfDummyNode() : alignOfNode());
if (!d->ref.deref())
@@ -832,7 +810,7 @@ Q_OUTOFLINE_TEMPLATE typename QHash<Key, T>::iterator QHash<Key, T>::erase(itera
iterator ret = it;
++ret;
- Node *node = it;
+ Node *node = concrete(it.i);
Node **node_ptr = reinterpret_cast<Node **>(&d->buckets[node->h % d->numBuckets]);
while (*node_ptr != node)
node_ptr = &(*node_ptr)->next;