****************************************************************************/
#include "qbuffer.h"
+#include <QtCore/qmetaobject.h>
#include "private/qiodevice_p.h"
QT_BEGIN_NAMESPACE
\reimp
\internal
*/
-void QBuffer::connectNotify(const char *signal)
+void QBuffer::connectNotify(const QMetaMethod &signal)
{
- if (strcmp(signal + 1, "readyRead()") == 0 || strcmp(signal + 1, "bytesWritten(qint64)") == 0)
+ static const QMetaMethod readyReadSignal = QMetaMethod::fromSignal(&QBuffer::readyRead);
+ static const QMetaMethod bytesWrittenSignal = QMetaMethod::fromSignal(&QBuffer::bytesWritten);
+ if (signal == readyReadSignal || signal == bytesWrittenSignal)
d_func()->signalConnectionCount++;
}
\reimp
\internal
*/
-void QBuffer::disconnectNotify(const char *signal)
+void QBuffer::disconnectNotify(const QMetaMethod &signal)
{
- if (!signal || strcmp(signal + 1, "readyRead()") == 0 || strcmp(signal + 1, "bytesWritten(qint64)") == 0)
- d_func()->signalConnectionCount--;
+ if (signal.isValid()) {
+ static const QMetaMethod readyReadSignal = QMetaMethod::fromSignal(&QBuffer::readyRead);
+ static const QMetaMethod bytesWrittenSignal = QMetaMethod::fromSignal(&QBuffer::bytesWritten);
+ if (signal == readyReadSignal || signal == bytesWrittenSignal)
+ d_func()->signalConnectionCount--;
+ } else {
+ d_func()->signalConnectionCount = 0;
+ }
}
#endif
protected:
#ifndef QT_NO_QOBJECT
- void connectNotify(const char*);
- void disconnectNotify(const char*);
+ void connectNotify(const QMetaMethod &);
+ void disconnectNotify(const QMetaMethod &);
#endif
qint64 readData(char *data, qint64 maxlen);
qint64 writeData(const char *data, qint64 len);