fix(SipAddressesModel): avoid a crash when a sip address observer is destroyed

This commit is contained in:
Ronan Abhamon 2017-08-16 11:29:02 +02:00
parent 306c187774
commit 2de3d84029

View file

@ -116,10 +116,10 @@ SipAddressObserver *SipAddressesModel::getSipAddressObserver (const QString &sip
mObservers.insert(cleanedSipAddress, model);
QObject::connect(
model, &SipAddressObserver::destroyed, this, [this, model]() {
const QString sipAddress = cleanSipAddress(model->getSipAddress());
if (mObservers.remove(sipAddress, model) == 0)
qWarning() << QStringLiteral("Unable to remove sip address `%1` from observers.").arg(sipAddress);
model, &SipAddressObserver::destroyed, this, [this, model, cleanedSipAddress]() {
// Do not use `model` methods here. `model` is partially destroyed here!
if (mObservers.remove(cleanedSipAddress, model) == 0)
qWarning() << QStringLiteral("Unable to remove sip address `%1` from observers.").arg(cleanedSipAddress);
});
return model;