diff options
-rw-r--r-- | src/corelib/tools/qmap.h | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/corelib/tools/qmap.h b/src/corelib/tools/qmap.h index c1be49a..688aca6 100644 --- a/src/corelib/tools/qmap.h +++ b/src/corelib/tools/qmap.h @@ -602,16 +602,15 @@ template <class Key, class T> Q_OUTOFLINE_TEMPLATE void QMap<Key, T>::freeData(QMapData *x) { if (QTypeInfo<Key>::isComplex || QTypeInfo<T>::isComplex) { - QMapData::Node *y = reinterpret_cast<QMapData::Node *>(x); - QMapData::Node *cur = y; - QMapData::Node *next = cur->forward[0]; - while (next != y) { + QMapData *cur = x; + QMapData *next = cur->forward[0]; + while (next != x) { cur = next; next = cur->forward[0]; #if defined(_MSC_VER) && (_MSC_VER >= 1300) #pragma warning(disable:4189) #endif - Node *concreteNode = concrete(cur); + Node *concreteNode = concrete(reinterpret_cast<QMapData::Node *>(cur)); concreteNode->key.~Key(); concreteNode->value.~T(); #if defined(_MSC_VER) && (_MSC_VER >= 1300) |