Chromium Code Reviews| Index: chrome/browser/bookmarks/bookmark_utils.cc |
| diff --git a/chrome/browser/bookmarks/bookmark_utils.cc b/chrome/browser/bookmarks/bookmark_utils.cc |
| index 01c00475b8983905cd1996c005f417eb3f488dc5..54404b887dff9186f12f6eadfd50f17fb118460c 100644 |
| --- a/chrome/browser/bookmarks/bookmark_utils.cc |
| +++ b/chrome/browser/bookmarks/bookmark_utils.cc |
| @@ -111,6 +111,18 @@ bool HasSelectedAncestor(BookmarkModel* model, |
| return HasSelectedAncestor(model, selected_nodes, node->parent()); |
| } |
| +const BookmarkNode* GetNodeByID(const BookmarkNode* node, int64 id) { |
| + if (node->id() == id) |
| + return node; |
| + |
| + for (int i = 0, child_count = node->child_count(); i < child_count; ++i) { |
| + const BookmarkNode* result = GetNodeByID(node->GetChild(i), id); |
| + if (result) |
| + return result; |
| + } |
| + return NULL; |
| +} |
| + |
| } // namespace |
| namespace bookmark_utils { |
| @@ -340,7 +352,7 @@ void DeleteBookmarkFolders(BookmarkModel* model, |
| for (std::vector<int64>::const_iterator iter = ids.begin(); |
| iter != ids.end(); |
| ++iter) { |
| - const BookmarkNode* node = model->GetNodeByID(*iter); |
| + const BookmarkNode* node = GetBookmarkNodeByID(model, *iter); |
| if (!node) |
| continue; |
| const BookmarkNode* parent = node->parent(); |
| @@ -375,3 +387,8 @@ void RemoveAllBookmarks(BookmarkModel* model, const GURL& url) { |
| } |
| } // namespace bookmark_utils |
| + |
| +const BookmarkNode* GetBookmarkNodeByID(const BookmarkModel* model, int64 id) { |
| + // TODO(sky): TreeNode needs a method that visits all nodes using a predicate. |
| + return GetNodeByID(const_cast<BookmarkModel*>(model)->root_node(), id); |
|
sky
2014/04/21 15:26:08
Ick. Can you make all the getters of nodes in Book
sky
2014/04/21 15:32:21
If doing that results in a ton of other changes do
tfarina
2014/04/21 20:42:06
Done.
|
| +} |