Description[sync] use std::multimap for BookmarkNodeMap
When associating bookmarks, sync nodes are matched to BookmarkNodes.
To match a BookmarkNode with a sync node, a BookmarkNodeFinder is
created and asked to find the child node with the matching title. When searching
for the title, BookmarkNodeFinder returns the first matching child in
its child_nodes_ map. This map is an unordered_map with undefined
iteration order. If sync node siblings share a title, the
BookmarkNodeFinder can erroneously swap their respective
BookmarkNodes.
To fix this, this CL makes the iteration order defined with
std::multimap, which stores pairs in insertion order.
This is safe since sync nodes are processed in the same
order as BookmarkNodes are stored.
R=skym@chromium.org
BUG=700992
Review-Url: https://codereview.chromium.org/2743713005
Cr-Commit-Position: refs/heads/master@{#456234}
Committed: https://chromium.googlesource.com/chromium/src/+/e4a5c1d83e0288ebe94f1d7bae7a76d8c01efffe
Patch Set 1 #
Messages
Total messages: 14 (7 generated)
|