1
0
mirror of https://github.com/qTox/qTox.git synced 2024-03-22 14:00:36 +08:00

fix: two crashes, uncovered by the persistent groupchat patch

This commit is contained in:
sudden6 2018-05-01 22:32:04 +02:00
parent 498c04ba50
commit 48179b6a19
No known key found for this signature in database
GPG Key ID: 279509B499E032B9
2 changed files with 9 additions and 3 deletions

View File

@ -224,6 +224,11 @@ void GroupChatForm::updateUserNames()
peerLabels.clear(); peerLabels.clear();
const int peersCount = group->getPeersCount(); const int peersCount = group->getPeersCount();
// no need to do anything without a peer
if (peersCount == 0) {
return;
}
peerLabels.reserve(peersCount); peerLabels.reserve(peersCount);
QVector<QLabel*> nickLabelList(peersCount); QVector<QLabel*> nickLabelList(peersCount);
@ -245,9 +250,9 @@ void GroupChatForm::updateUserNames()
if (group->isSelfPeerNumber(peerNumber)) { if (group->isSelfPeerNumber(peerNumber)) {
label->setStyleSheet(QStringLiteral("QLabel {color : green;}")); label->setStyleSheet(QStringLiteral("QLabel {color : green;}"));
} else if (s.getBlackList().contains(peerPk.toString())) { } else if (s.getBlackList().contains(peerPk.toString())) {
label->setStyleSheet(QStringLiteral("QLabel {color : darkRed;}")); label->setStyleSheet(QStringLiteral("QLabel {color : darkRed;}"));
} else if (netcam != nullptr) { } else if (netcam != nullptr) {
static_cast<GroupNetCamView*>(netcam)->addPeer(peerNumber, fullName); static_cast<GroupNetCamView*>(netcam)->addPeer(peerNumber, fullName);
} }
peerLabels.append(label); peerLabels.append(label);
@ -262,6 +267,7 @@ void GroupChatForm::updateUserNames()
{ {
return a->text().toLower() < b->text().toLower(); return a->text().toLower() < b->text().toLower();
}); });
// remove comma from last sorted label // remove comma from last sorted label
QLabel* const lastLabel = nickLabelList.last(); QLabel* const lastLabel = nickLabelList.last();
QString labelText = lastLabel->text(); QString labelText = lastLabel->text();

View File

@ -1869,8 +1869,8 @@ void Widget::removeGroup(Group* g, bool fake)
qWarning() << "Tried to remove group" << groupId << "but GroupChatForm doesn't exist"; qWarning() << "Tried to remove group" << groupId << "but GroupChatForm doesn't exist";
return; return;
} }
groupChatForms.erase(groupChatFormIt);
delete groupChatFormIt.value(); delete groupChatFormIt.value();
groupChatForms.erase(groupChatFormIt);
delete g; delete g;
if (contentLayout && contentLayout->mainHead->layout()->isEmpty()) { if (contentLayout && contentLayout->mainHead->layout()->isEmpty()) {
onAddClicked(); onAddClicked();