-
Task
-
Resolution: Unresolved
-
P2: Important
-
None
-
None
-
None
-
8
-
Foundation Sprint 132, Foundation Sprint 133, Foundation Sprint 134, Foundation Sprint 135, Foundation Sprint 136, Foundation Sprint 137, Foundation Sprint 138
See here:
bool QObject::disconnect(const QObject *sender, const char *signal, const QObject *receiver, const char *method) { if (sender == nullptr || (receiver == nullptr && method != nullptr)) { qCWarning(lcConnect, "QObject::disconnect: Unexpected nullptr parameter"); return false; } const char *signal_arg = signal; QByteArray signal_name; bool signal_found = false; if (signal) { QT_TRY { signal_name = QMetaObject::normalizedSignature(signal); signal = signal_name.constData(); } QT_CATCH (const std::bad_alloc &) { ~~~~
Usually, we try with the signature as given and only if that fails try again after normalization.
Figure out why it's done differently here and fix, if possible.
- is duplicated by
-
QTBUG-137575 QObject::disconnect(): try non-normalized signature first
-
- Closed
-
- relates to
-
QTBUG-135572 Optimize string-based connect() vis-a-vis PMF-style connect()
-
- In Progress
-
For Gerrit Dashboard: QTBUG-135819 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
667801,3 | QObject: disconnect(): don't normalize signatures unconditionally | dev | qt/qtbase | Status: NEW | +2 | 0 |