Make error checking in QSignalSpy consistent
QSignalSpy's constructor failed gracefully for some problems with the parameters, but not for null parameters, for which there was only a Q_ASSERT. This commit makes the handling of null parameters consistent with the handling of other errors -- output a meaningful error message with qWarning() and return, so that isValid() will subsequently return false. Change-Id: I7f5677a4c10185e30403ce3e12a022de8c13bc1c Task-number: QTBUG-14283 Reviewed-by: Rohan McGovern
This commit is contained in:
parent
e40443f7df
commit
d9119535a2
@ -68,8 +68,15 @@ public:
|
||||
#else
|
||||
static const int memberOffset = QObject::staticMetaObject.methodCount();
|
||||
#endif
|
||||
Q_ASSERT(obj);
|
||||
Q_ASSERT(aSignal);
|
||||
if (!obj) {
|
||||
qWarning("QSignalSpy: Cannot spy on a null object");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!aSignal) {
|
||||
qWarning("QSignalSpy: Null signal name is not valid");
|
||||
return;
|
||||
}
|
||||
|
||||
if (((aSignal[0] - '0') & 0x03) != QSIGNAL_CODE) {
|
||||
qWarning("QSignalSpy: Not a valid signal, use the SIGNAL macro");
|
||||
|
@ -62,7 +62,11 @@
|
||||
/*! \fn QSignalSpy::QSignalSpy(QObject *object, const char *signal)
|
||||
|
||||
Constructs a new QSignalSpy that listens for emissions of the \a signal
|
||||
from the QObject \a object. Neither \a signal nor \a object can be null.
|
||||
from the QObject \a object. If QSignalSpy is not able to listen for a
|
||||
valid signal (for example, because \a object is null or \a signal does
|
||||
not denote a valid signal of \a object), an explanatory warning message
|
||||
will be output using qWarning() and subsequent calls to \c isValid() will
|
||||
return false.
|
||||
|
||||
Example:
|
||||
\snippet doc/src/snippets/code/doc_src_qsignalspy.cpp 4
|
||||
|
Loading…
x
Reference in New Issue
Block a user