- 
    
Task
 - 
    Resolution: Fixed
 - 
    
P2: Important
 - 
    None
 - 
    None
 
- 
        8
 - 
        0090ad0fa (dev)
 - 
        Foundation Sprint 132, Foundation Sprint 133, Foundation Sprint 134, Foundation Sprint 135, Foundation Sprint 136, Foundation Sprint 137, Foundation Sprint 138, Foundation Sprint 139
 
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()
-         
 - Open
 
 -         
 
| For Gerrit Dashboard: QTBUG-135819 | ||||||
|---|---|---|---|---|---|---|
| # | Subject | Branch | Project | Status | CR | V | 
| 667801,10 | QObject: disconnect(): don't normalize signatures unconditionally | dev | qt/qtbase | Status: MERGED | +2 | 0 |