Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(151)

Side by Side Diff: components/bookmarks/browser/bookmark_model.cc

Issue 1105413002: Avoid conversion of index to BookmarkNode pointer unnacessarily. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Changes as per review comments. Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/bookmarks/browser/bookmark_model.h" 5 #include "components/bookmarks/browser/bookmark_model.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <functional> 8 #include <functional>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 void BookmarkModel::BeginGroupedChanges() { 181 void BookmarkModel::BeginGroupedChanges() {
182 FOR_EACH_OBSERVER(BookmarkModelObserver, observers_, 182 FOR_EACH_OBSERVER(BookmarkModelObserver, observers_,
183 GroupedBookmarkChangesBeginning(this)); 183 GroupedBookmarkChangesBeginning(this));
184 } 184 }
185 185
186 void BookmarkModel::EndGroupedChanges() { 186 void BookmarkModel::EndGroupedChanges() {
187 FOR_EACH_OBSERVER(BookmarkModelObserver, observers_, 187 FOR_EACH_OBSERVER(BookmarkModelObserver, observers_,
188 GroupedBookmarkChangesEnded(this)); 188 GroupedBookmarkChangesEnded(this));
189 } 189 }
190 190
191 void BookmarkModel::Remove(const BookmarkNode* parent, int index) { 191 void BookmarkModel::Remove(const BookmarkNode* node) {
192 if (!loaded_ || !IsValidIndex(parent, index, false) || is_root_node(parent)) { 192 DCHECK(node);
193 if (!loaded_ || is_root_node(node)) {
193 NOTREACHED(); 194 NOTREACHED();
194 return; 195 return;
195 } 196 }
196 RemoveAndDeleteNode(AsMutable(parent->GetChild(index))); 197 RemoveAndDeleteNode(AsMutable(node));
197 } 198 }
198 199
199 void BookmarkModel::RemoveAllUserBookmarks() { 200 void BookmarkModel::RemoveAllUserBookmarks() {
200 std::set<GURL> removed_urls; 201 std::set<GURL> removed_urls;
201 ScopedVector<BookmarkNode> removed_nodes; 202 ScopedVector<BookmarkNode> removed_nodes;
202 203
203 FOR_EACH_OBSERVER(BookmarkModelObserver, observers_, 204 FOR_EACH_OBSERVER(BookmarkModelObserver, observers_,
204 OnWillRemoveAllUserBookmarks(this)); 205 OnWillRemoveAllUserBookmarks(this));
205 206
206 BeginExtensiveChanges(); 207 BeginExtensiveChanges();
(...skipping 633 matching lines...) Expand 10 before | Expand all | Expand 10 after
840 FOR_EACH_OBSERVER(BookmarkModelObserver, observers_, 841 FOR_EACH_OBSERVER(BookmarkModelObserver, observers_,
841 BookmarkModelLoaded(this, details->ids_reassigned())); 842 BookmarkModelLoaded(this, details->ids_reassigned()));
842 } 843 }
843 844
844 void BookmarkModel::RemoveAndDeleteNode(BookmarkNode* delete_me) { 845 void BookmarkModel::RemoveAndDeleteNode(BookmarkNode* delete_me) {
845 scoped_ptr<BookmarkNode> node(delete_me); 846 scoped_ptr<BookmarkNode> node(delete_me);
846 847
847 const BookmarkNode* parent = node->parent(); 848 const BookmarkNode* parent = node->parent();
848 DCHECK(parent); 849 DCHECK(parent);
849 int index = parent->GetIndexOf(node.get()); 850 int index = parent->GetIndexOf(node.get());
851 DCHECK_NE(-1, index);
850 852
851 FOR_EACH_OBSERVER(BookmarkModelObserver, observers_, 853 FOR_EACH_OBSERVER(BookmarkModelObserver, observers_,
852 OnWillRemoveBookmarks(this, parent, index, node.get())); 854 OnWillRemoveBookmarks(this, parent, index, node.get()));
853 855
854 std::set<GURL> removed_urls; 856 std::set<GURL> removed_urls;
855 { 857 {
856 base::AutoLock url_lock(url_lock_); 858 base::AutoLock url_lock(url_lock_);
857 RemoveNodeAndGetRemovedUrls(node.get(), &removed_urls); 859 RemoveNodeAndGetRemovedUrls(node.get(), &removed_urls);
858 } 860 }
859 861
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
1047 return scoped_ptr<BookmarkLoadDetails>(new BookmarkLoadDetails( 1049 return scoped_ptr<BookmarkLoadDetails>(new BookmarkLoadDetails(
1048 bb_node, 1050 bb_node,
1049 other_node, 1051 other_node,
1050 mobile_node, 1052 mobile_node,
1051 client_->GetLoadExtraNodesCallback(), 1053 client_->GetLoadExtraNodesCallback(),
1052 new BookmarkIndex(client_, accept_languages), 1054 new BookmarkIndex(client_, accept_languages),
1053 next_node_id_)); 1055 next_node_id_));
1054 } 1056 }
1055 1057
1056 } // namespace bookmarks 1058 } // namespace bookmarks
OLDNEW
« no previous file with comments | « components/bookmarks/browser/bookmark_model.h ('k') | components/bookmarks/browser/bookmark_model_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698