| Index: chrome/browser/ui/views/hung_renderer_view.cc
|
| diff --git a/chrome/browser/ui/views/hung_renderer_view.cc b/chrome/browser/ui/views/hung_renderer_view.cc
|
| index 83ef593c26043be5b21da289a948062175b21908..94bfedc9f3a3634a9b0c4a28c8ffee58191b8777 100644
|
| --- a/chrome/browser/ui/views/hung_renderer_view.cc
|
| +++ b/chrome/browser/ui/views/hung_renderer_view.cc
|
| @@ -5,6 +5,7 @@
|
| #include "chrome/browser/ui/views/hung_renderer_view.h"
|
|
|
| #include "base/i18n/rtl.h"
|
| +#include "base/memory/ptr_util.h"
|
| #include "base/strings/string_number_conversions.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "build/build_config.h"
|
| @@ -80,13 +81,14 @@ void HungPagesTableModel::InitForWebContents(WebContents* hung_contents) {
|
| if (hung_contents) {
|
| // Force hung_contents to be first.
|
| if (hung_contents) {
|
| - tab_observers_.push_back(new WebContentsObserverImpl(this,
|
| - hung_contents));
|
| + tab_observers_.push_back(
|
| + base::MakeUnique<WebContentsObserverImpl>(this, hung_contents));
|
| }
|
| for (TabContentsIterator it; !it.done(); it.Next()) {
|
| if (*it != hung_contents &&
|
| it->GetRenderProcessHost() == hung_contents->GetRenderProcessHost())
|
| - tab_observers_.push_back(new WebContentsObserverImpl(this, *it));
|
| + tab_observers_.push_back(
|
| + base::MakeUnique<WebContentsObserverImpl>(this, *it));
|
| }
|
| }
|
| // The world is different.
|
| @@ -134,13 +136,15 @@ void HungPagesTableModel::GetGroupRange(int model_index,
|
|
|
| void HungPagesTableModel::TabDestroyed(WebContentsObserverImpl* tab) {
|
| // Clean up tab_observers_ and notify our observer.
|
| - TabObservers::iterator i = std::find(
|
| - tab_observers_.begin(), tab_observers_.end(), tab);
|
| - DCHECK(i != tab_observers_.end());
|
| - int index = static_cast<int>(i - tab_observers_.begin());
|
| - tab_observers_.erase(i);
|
| + size_t index = 0;
|
| + for (; index < tab_observers_.size(); ++index) {
|
| + if (tab_observers_[index].get() == tab)
|
| + break;
|
| + }
|
| + DCHECK(index < tab_observers_.size());
|
| + tab_observers_.erase(tab_observers_.begin() + index);
|
| if (observer_)
|
| - observer_->OnItemsRemoved(index, 1);
|
| + observer_->OnItemsRemoved(static_cast<int>(index), 1);
|
|
|
| // Notify the delegate.
|
| delegate_->TabDestroyed();
|
|
|