summaryrefslogtreecommitdiffstats
path: root/src/corelib
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib')
-rw-r--r--src/corelib/kernel/qobject.cpp14
-rw-r--r--src/corelib/kernel/qobject_p.h12
2 files changed, 15 insertions, 11 deletions
diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp
index a7c3b6e..bb5effc 100644
--- a/src/corelib/kernel/qobject.cpp
+++ b/src/corelib/kernel/qobject.cpp
@@ -2692,11 +2692,7 @@ bool QObject::connect(const QObject *sender, const QMetaMethod &signal,
return false;
}
- // Reconstructing SIGNAL() macro result for signal.signature() string
- QByteArray signalSignature;
- signalSignature.reserve(qstrlen(signal.signature())+1);
- signalSignature.append((char)(QSIGNAL_CODE + '0'));
- signalSignature.append(signal.signature());
+ QByteArray signalSignature = QObjectPrivate::signalSignature(signal);
{
QByteArray methodSignature;
@@ -2985,13 +2981,9 @@ bool QObject::disconnect(const QObject *sender, const QMetaMethod &signal,
}
}
- // Reconstructing SIGNAL() macro result for signal.signature() string
QByteArray signalSignature;
- if (signal.mobj) {
- signalSignature.reserve(qstrlen(signal.signature())+1);
- signalSignature.append((char)(QSIGNAL_CODE + '0'));
- signalSignature.append(signal.signature());
- }
+ if (signal.mobj)
+ signalSignature = QObjectPrivate::signalSignature(signal);
{
QByteArray methodSignature;
diff --git a/src/corelib/kernel/qobject_p.h b/src/corelib/kernel/qobject_p.h
index c7aa683..e2e24a6 100644
--- a/src/corelib/kernel/qobject_p.h
+++ b/src/corelib/kernel/qobject_p.h
@@ -61,6 +61,7 @@
#include "QtCore/qvector.h"
#include "QtCore/qreadwritelock.h"
#include "QtCore/qvariant.h"
+#include "QtCore/qmetaobject.h"
QT_BEGIN_NAMESPACE
@@ -184,6 +185,8 @@ public:
inline void connectNotify(const char *signal);
inline void disconnectNotify(const char *signal);
+ static inline QByteArray signalSignature(const QMetaMethod &signal);
+
public:
QString objectName;
ExtraData *extraData; // extra data set by the user
@@ -244,6 +247,15 @@ inline void QObjectPrivate::disconnectNotify(const char *signal)
q_ptr->disconnectNotify(signal);
}
+inline QByteArray QObjectPrivate::signalSignature(const QMetaMethod &signal)
+{
+ QByteArray result;
+ result.reserve(qstrlen(signal.signature())+1);
+ result.append((char)(QSIGNAL_CODE + '0'));
+ result.append(signal.signature());
+ return result;
+}
+
inline QObjectPrivate::Sender *QObjectPrivate::setCurrentSender(QObject *receiver,
Sender *sender)
{