From 96e873d4ed59bd9feef1c5dacc28f77377e53c47 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Thu, 25 Mar 2010 16:39:19 +0100 Subject: QPointer: assert when using QPointer on destroyed QObject Uses the same assert as in QWeakPointer Reviewed-by: Thiago Task-number: QTBUG-9398 --- src/corelib/kernel/qobject.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp index 573bb50..ef78b0c 100644 --- a/src/corelib/kernel/qobject.cpp +++ b/src/corelib/kernel/qobject.cpp @@ -392,6 +392,7 @@ void QMetaObject::addGuard(QObject **ptr) return; } QMutexLocker locker(guardHashLock()); + Q_ASSERT_X(!QObjectPrivate::get(*ptr)->wasDeleted, "QPointer", "Detected QPointer creation on a QObject being deleted"); QObjectPrivate::get(*ptr)->hasGuards = true; hash->insert(*ptr, ptr); } @@ -434,6 +435,7 @@ void QMetaObject::changeGuard(QObject **ptr, QObject *o) } QMutexLocker locker(guardHashLock()); if (o) { + Q_ASSERT_X(!QObjectPrivate::get(o)->wasDeleted, "QPointer", "Detected QPointer creation on a QObject being deleted"); hash->insert(o, ptr); QObjectPrivate::get(o)->hasGuards = true; } -- cgit v0.12