Index: components/bookmarks/browser/bookmark_model.cc |
diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmarks/browser/bookmark_model.cc |
index 10d5b2f24ea2dbd107fa88b87dd84bfa34cc30ed..0943223d69b76ab3dacbd09770b9db0a3b5863f3 100644 |
--- a/components/bookmarks/browser/bookmark_model.cc |
+++ b/components/bookmarks/browser/bookmark_model.cc |
@@ -188,12 +188,13 @@ void BookmarkModel::EndGroupedChanges() { |
GroupedBookmarkChangesEnded(this)); |
} |
-void BookmarkModel::Remove(const BookmarkNode* parent, int index) { |
- if (!loaded_ || !IsValidIndex(parent, index, false) || is_root_node(parent)) { |
+void BookmarkModel::Remove(const BookmarkNode* parent, |
+ const BookmarkNode* child) { |
+ if (!loaded_ || is_root_node(parent)) { |
NOTREACHED(); |
return; |
} |
- RemoveAndDeleteNode(AsMutable(parent->GetChild(index))); |
+ RemoveAndDeleteNode(AsMutable(child)); |
} |
void BookmarkModel::RemoveAllUserBookmarks() { |
@@ -847,6 +848,10 @@ void BookmarkModel::RemoveAndDeleteNode(BookmarkNode* delete_me) { |
const BookmarkNode* parent = node->parent(); |
DCHECK(parent); |
int index = parent->GetIndexOf(node.get()); |
+ if (!IsValidIndex(parent, index, false)) { |
+ NOTREACHED(); |
+ return; |
+ } |
FOR_EACH_OBSERVER(BookmarkModelObserver, observers_, |
OnWillRemoveBookmarks(this, parent, index, node.get())); |