summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKent Hansen <kent.hansen@nokia.com>2012-05-31 22:06:42 +0200
committerQt by Nokia <qt-info@nokia.com>2012-06-12 04:30:16 +0200
commitc66dc44968f4ae51e01cee7c7605991177d5e081 (patch)
tree9269ac3d249bdd4be1fffda4c10564ecdb79584b /src
parent69478da0f0d1eac9389fbd9d2f0bca3d0ce306a6 (diff)
Change internal QDeclarativeData hooks to use signal index range
This also changes the qtdeclarative-specific QMetaObject::activate() overload to not take a methodOffset argument, since it's no longer needed. Change-Id: I4f7ece9f43339f3327419598c032e48fb37b97f0 Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com> Reviewed-by: Michael Brasser <michael.brasser@nokia.com> Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
Diffstat (limited to 'src')
-rw-r--r--src/corelib/kernel/qobject.cpp12
-rw-r--r--src/corelib/kernel/qobjectdefs.h2
2 files changed, 5 insertions, 9 deletions
diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp
index de6f2be98f..d32a43f104 100644
--- a/src/corelib/kernel/qobject.cpp
+++ b/src/corelib/kernel/qobject.cpp
@@ -2184,7 +2184,7 @@ int QObject::receivers(const char *signal) const
if (d->declarativeData && QAbstractDeclarativeData::receivers) {
receivers += QAbstractDeclarativeData::receivers(d->declarativeData, this,
- metaObject()->indexOfMethod(signal));
+ signal_index);
}
if (!d->isSignalConnected(signal_index))
@@ -3276,22 +3276,18 @@ static void queued_activate(QObject *sender, int signal, QObjectPrivate::Connect
void QMetaObject::activate(QObject *sender, const QMetaObject *m, int local_signal_index,
void **argv)
{
- int signalOffset;
- int methodOffset;
- computeOffsets(m, &signalOffset, &methodOffset);
- activate(sender, methodOffset, signalOffset, local_signal_index, argv);
+ activate(sender, QMetaObjectPrivate::signalOffset(m), local_signal_index, argv);
}
/*!\internal
*/
-void QMetaObject::activate(QObject *sender, int methodOffset, int signalOffset, int local_signal_index,
- void **argv)
+void QMetaObject::activate(QObject *sender, int signalOffset, int local_signal_index, void **argv)
{
int signal_index = signalOffset + local_signal_index;
if (sender->d_func()->declarativeData && QAbstractDeclarativeData::signalEmitted)
QAbstractDeclarativeData::signalEmitted(sender->d_func()->declarativeData, sender,
- methodOffset + local_signal_index, argv);
+ signal_index, argv);
if (!sender->d_func()->isSignalConnected(signal_index))
return; // nothing connected to these signals, and no spy
diff --git a/src/corelib/kernel/qobjectdefs.h b/src/corelib/kernel/qobjectdefs.h
index 59ae8f1b59..9693147de8 100644
--- a/src/corelib/kernel/qobjectdefs.h
+++ b/src/corelib/kernel/qobjectdefs.h
@@ -348,7 +348,7 @@ struct Q_CORE_EXPORT QMetaObject
// internal index-based signal activation
static void activate(QObject *sender, int signal_index, void **argv);
static void activate(QObject *sender, const QMetaObject *, int local_signal_index, void **argv);
- static void activate(QObject *sender, int method_offset, int signal_offset, int local_signal_index, void **argv);
+ static void activate(QObject *sender, int signal_offset, int local_signal_index, void **argv);
static bool invokeMethod(QObject *obj, const char *member,
Qt::ConnectionType,