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

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* child) {
192 if (!loaded_ || !IsValidIndex(parent, index, false) || is_root_node(parent)) { 192 DCHECK(child);
193 if (!loaded_ || is_root_node(child->parent())) {
sky 2015/04/30 18:16:13 || is_root_node(child)
Deepak 2015/05/02 08:15:48 Done.
193 NOTREACHED(); 194 NOTREACHED();
194 return; 195 return;
195 } 196 }
196 RemoveAndDeleteNode(AsMutable(parent->GetChild(index))); 197 RemoveAndDeleteNode(AsMutable(child));
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 if (!IsValidIndex(parent, index, false)) {
sky 2015/04/30 18:16:13 DCHECK_NE(-1, index);
Deepak 2015/05/02 08:15:48 Done.
852 NOTREACHED();
853 return;
854 }
850 855
851 FOR_EACH_OBSERVER(BookmarkModelObserver, observers_, 856 FOR_EACH_OBSERVER(BookmarkModelObserver, observers_,
852 OnWillRemoveBookmarks(this, parent, index, node.get())); 857 OnWillRemoveBookmarks(this, parent, index, node.get()));
853 858
854 std::set<GURL> removed_urls; 859 std::set<GURL> removed_urls;
855 { 860 {
856 base::AutoLock url_lock(url_lock_); 861 base::AutoLock url_lock(url_lock_);
857 RemoveNodeAndGetRemovedUrls(node.get(), &removed_urls); 862 RemoveNodeAndGetRemovedUrls(node.get(), &removed_urls);
858 } 863 }
859 864
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
1047 return scoped_ptr<BookmarkLoadDetails>(new BookmarkLoadDetails( 1052 return scoped_ptr<BookmarkLoadDetails>(new BookmarkLoadDetails(
1048 bb_node, 1053 bb_node,
1049 other_node, 1054 other_node,
1050 mobile_node, 1055 mobile_node,
1051 client_->GetLoadExtraNodesCallback(), 1056 client_->GetLoadExtraNodesCallback(),
1052 new BookmarkIndex(client_, accept_languages), 1057 new BookmarkIndex(client_, accept_languages),
1053 next_node_id_)); 1058 next_node_id_));
1054 } 1059 }
1055 1060
1056 } // namespace bookmarks 1061 } // namespace bookmarks
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698