| Index: chrome/browser/tabs/tab_strip_model.cc
|
| diff --git a/chrome/browser/tabs/tab_strip_model.cc b/chrome/browser/tabs/tab_strip_model.cc
|
| index 31349831f7ea831c58fbf61e5d675391076c45ee..23210025ba4c77e0f17188fb313ccf8016c01ed5 100644
|
| --- a/chrome/browser/tabs/tab_strip_model.cc
|
| +++ b/chrome/browser/tabs/tab_strip_model.cc
|
| @@ -64,7 +64,8 @@ TabStripModel::TabStripModel(TabStripModelDelegate* delegate, Profile* profile)
|
| : delegate_(delegate),
|
| profile_(profile),
|
| closing_all_(false),
|
| - order_controller_(NULL) {
|
| + order_controller_(NULL),
|
| + magic_id_(0) {
|
| DCHECK(delegate_);
|
| registrar_.Add(this,
|
| content::NOTIFICATION_TAB_CONTENTS_DESTROYED,
|
| @@ -76,10 +77,13 @@ TabStripModel::TabStripModel(TabStripModelDelegate* delegate, Profile* profile)
|
| }
|
|
|
| TabStripModel::~TabStripModel() {
|
| + magic_id_ = 0x1234567;
|
| FOR_EACH_OBSERVER(TabStripModelObserver, observers_,
|
| TabStripModelDeleted());
|
| - STLDeleteContainerPointers(contents_data_.begin(), contents_data_.end());
|
| + STLDeleteElements(&contents_data_);
|
| delete order_controller_;
|
| + order_controller_ = NULL;
|
| + magic_id_ = 0x76543210;
|
| }
|
|
|
| void TabStripModel::AddObserver(TabStripModelObserver* observer) {
|
| @@ -117,6 +121,7 @@ void TabStripModel::AppendTabContents(TabContentsWrapper* contents,
|
| void TabStripModel::InsertTabContentsAt(int index,
|
| TabContentsWrapper* contents,
|
| int add_types) {
|
| + CHECK(wrapper);
|
| bool active = add_types & ADD_ACTIVE;
|
| // Force app tabs to be pinned.
|
| bool pin =
|
| @@ -169,7 +174,8 @@ void TabStripModel::InsertTabContentsAt(int index,
|
| TabContentsWrapper* TabStripModel::ReplaceTabContentsAt(
|
| int index,
|
| TabContentsWrapper* new_contents) {
|
| - DCHECK(ContainsIndex(index));
|
| + CHECK(new_contents);
|
| + CHECK(ContainsIndex(index));
|
| TabContentsWrapper* old_contents = GetContentsAt(index);
|
|
|
| ForgetOpenersAndGroupsReferencing(&(old_contents->controller()));
|
| @@ -338,6 +344,8 @@ int TabStripModel::GetWrapperIndex(const TabContents* contents) const {
|
| int index = 0;
|
| TabContentsDataVector::const_iterator iter = contents_data_.begin();
|
| for (; iter != contents_data_.end(); ++iter, ++index) {
|
| + CHECK(*iter) << magic_id_;
|
| + CHECK((*iter)->contents) << magic_id_;
|
| if ((*iter)->contents->tab_contents() == contents)
|
| return index;
|
| }
|
|
|