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

Unified Diff: chrome/browser/bookmarks/bookmark_model.cc

Issue 20521005: BookmarkModel::ReorderChildren to take const BookmarkNodes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/bookmarks/bookmark_model.h ('k') | chrome/browser/bookmarks/bookmark_model_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/bookmarks/bookmark_model.cc
diff --git a/chrome/browser/bookmarks/bookmark_model.cc b/chrome/browser/bookmarks/bookmark_model.cc
index 493395a528b5f19fd26550d1c59635a5cfa25ce0..dd813334df75f4b73523e20aac3c1dd53dfb4c78 100644
--- a/chrome/browser/bookmarks/bookmark_model.cc
+++ b/chrome/browser/bookmarks/bookmark_model.cc
@@ -675,7 +675,7 @@ void BookmarkModel::SortChildren(const BookmarkNode* parent) {
void BookmarkModel::ReorderChildren(
const BookmarkNode* parent,
- const std::vector<BookmarkNode*>& ordered_nodes) {
+ const std::vector<const BookmarkNode*>& ordered_nodes) {
// Ensure that all children in |parent| are in |ordered_nodes|.
DCHECK_EQ(static_cast<size_t>(parent->child_count()), ordered_nodes.size());
for (size_t i = 0; i < ordered_nodes.size(); ++i)
@@ -684,7 +684,13 @@ void BookmarkModel::ReorderChildren(
FOR_EACH_OBSERVER(BookmarkModelObserver, observers_,
OnWillReorderBookmarkNode(this, parent));
- AsMutable(parent)->SetChildren(ordered_nodes);
+ // SetChildren requires non-const nodes so |ordered_nodes| is reconstructed.
+ std::vector<BookmarkNode*> nodes;
+ nodes.reserve(ordered_nodes.size());
+ for (size_t i = 0; i < ordered_nodes.size(); ++i)
+ nodes.push_back(AsMutable(ordered_nodes[i]));
+
+ AsMutable(parent)->SetChildren(nodes);
sky 2013/08/05 14:53:52 Can you use a const_cast here on ordered_nodes?
Tom Cassiotis 2013/08/05 19:34:49 const_cast is not able to be used here because the
sky 2013/08/05 20:07:45 I think reinterpret_cast is fine here.
if (store_.get())
store_->ScheduleSave();
« no previous file with comments | « chrome/browser/bookmarks/bookmark_model.h ('k') | chrome/browser/bookmarks/bookmark_model_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698