mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
Fix dangling raw_ptr errors and related issues (see #3239)
- Use raw_ptr in class container fields. - Use defined lifespan for StreamReaderURLLoader. - Fix lifespan assumptions for WebContents/RFH usage.
This commit is contained in:
@ -62,16 +62,16 @@ CefSimpleMenuModelImpl::~CefSimpleMenuModelImpl() {
|
||||
void CefSimpleMenuModelImpl::Detach() {
|
||||
DCHECK(VerifyContext());
|
||||
|
||||
if (!submenumap_.empty()) {
|
||||
while (!submenumap_.empty()) {
|
||||
auto it = submenumap_.begin();
|
||||
for (; it != submenumap_.end(); ++it) {
|
||||
it->second->Detach();
|
||||
}
|
||||
submenumap_.clear();
|
||||
auto impl = it->second;
|
||||
// Clear the raw_ptr reference before calling Detach().
|
||||
submenumap_.erase(it);
|
||||
impl->Detach();
|
||||
}
|
||||
|
||||
if (is_owned_) {
|
||||
delete model_;
|
||||
model_.ClearAndDelete();
|
||||
}
|
||||
model_ = nullptr;
|
||||
}
|
||||
|
Reference in New Issue
Block a user