chore: avoid crash while notification removal (#43061)

* avoid crash of operation on an invalid entry while erase set iterator.

Co-authored-by: bill.shen <shenyb32768@gmail.com>

* fix notification removal crash due to the nullptr presenter

Co-authored-by: bill.shen <shenyb32768@gmail.com>

---------

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: bill.shen <shenyb32768@gmail.com>
This commit is contained in:
trop[bot] 2024-07-26 16:32:43 -04:00 committed by GitHub
parent 871136bf91
commit b6e19c5a45
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 8 additions and 1 deletions

View file

@ -46,7 +46,9 @@ void Notification::NotificationFailed(const std::string& error) {
void Notification::Remove() {}
void Notification::Destroy() {
presenter()->RemoveNotification(this);
if (presenter()) {
presenter()->RemoveNotification(this);
}
}
} // namespace electron

View file

@ -27,6 +27,11 @@ base::WeakPtr<Notification> NotificationPresenter::CreateNotification(
}
void NotificationPresenter::RemoveNotification(Notification* notification) {
auto it = notifications_.find(notification);
if (it == notifications_.end()) {
return;
}
notifications_.erase(notification);
delete notification;
}