diff options
Diffstat (limited to 'src/corelib/kernel')
-rw-r--r-- | src/corelib/kernel/qcorecmdlineargs_p.h | 7 | ||||
-rw-r--r-- | src/corelib/kernel/qeventdispatcher_blackberry.cpp | 1 | ||||
-rw-r--r-- | src/corelib/kernel/qobject.cpp | 10 |
3 files changed, 10 insertions, 8 deletions
diff --git a/src/corelib/kernel/qcorecmdlineargs_p.h b/src/corelib/kernel/qcorecmdlineargs_p.h index 8292b21822..17a03a5b2d 100644 --- a/src/corelib/kernel/qcorecmdlineargs_p.h +++ b/src/corelib/kernel/qcorecmdlineargs_p.h @@ -101,11 +101,8 @@ static QVector<Char*> qWinCmdLine(Char *cmdParam, int length, int &argc) } } if (*p == '\\') { // escape char? - p++; - if (*p == Char('\"') || *p == Char('\'')) - ; // yes - else - p--; // treat \ literally + if (*(p+1) == quote) + p++; } else { if (!quote && (*p == Char('\"') || *p == Char('\''))) { // " or ' quote quote = *p++; diff --git a/src/corelib/kernel/qeventdispatcher_blackberry.cpp b/src/corelib/kernel/qeventdispatcher_blackberry.cpp index 5807683cc8..4cf1db18b4 100644 --- a/src/corelib/kernel/qeventdispatcher_blackberry.cpp +++ b/src/corelib/kernel/qeventdispatcher_blackberry.cpp @@ -50,6 +50,7 @@ //#define QEVENTDISPATCHERBLACKBERRY_DEBUG #ifdef QEVENTDISPATCHERBLACKBERRY_DEBUG +#include <QThread> #define qEventDispatcherDebug qDebug() << QThread::currentThread() #else #define qEventDispatcherDebug QT_NO_QDEBUG_MACRO() diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp index 527a842d17..d4d2d527d4 100644 --- a/src/corelib/kernel/qobject.cpp +++ b/src/corelib/kernel/qobject.cpp @@ -4288,9 +4288,13 @@ QMetaObject::Connection QObject::connectImpl(const QObject *sender, void **signa } int signal_index = -1; void *args[] = { &signal_index, signal }; - senderMetaObject->static_metacall(QMetaObject::IndexOfMethod, 0, args); - if (signal_index < 0 || signal_index >= QMetaObjectPrivate::get(senderMetaObject)->signalCount) { - qWarning("QObject::connect: signal not found in %s", senderMetaObject->className()); + for (; senderMetaObject && signal_index < 0; senderMetaObject = senderMetaObject->superClass()) { + senderMetaObject->static_metacall(QMetaObject::IndexOfMethod, 0, args); + if (signal_index >= 0 && signal_index < QMetaObjectPrivate::get(senderMetaObject)->signalCount) + break; + } + if (!senderMetaObject) { + qWarning("QObject::connect: signal not found in %s", sender->metaObject()->className()); slotObj->destroyIfLastRef(); return QMetaObject::Connection(0); } |