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
3 // found in the LICENSE file.
5 #include "components/bookmarks/browser/bookmark_match.h"
7 #include "base/logging.h"
8 #include "base/strings/string16.h"
12 BookmarkMatch::BookmarkMatch() : node(NULL
) {}
14 BookmarkMatch::~BookmarkMatch() {}
17 std::vector
<size_t> BookmarkMatch::OffsetsFromMatchPositions(
18 const MatchPositions
& match_positions
) {
19 std::vector
<size_t> offsets
;
20 for (MatchPositions::const_iterator i
= match_positions
.begin();
21 i
!= match_positions
.end(); ++i
) {
22 offsets
.push_back(i
->first
);
23 offsets
.push_back(i
->second
);
29 BookmarkMatch::MatchPositions
BookmarkMatch::ReplaceOffsetsInMatchPositions(
30 const MatchPositions
& match_positions
,
31 const std::vector
<size_t>& offsets
) {
32 DCHECK_EQ(2 * match_positions
.size(), offsets
.size());
33 MatchPositions new_match_positions
;
34 std::vector
<size_t>::const_iterator offset_iter
= offsets
.begin();
35 for (MatchPositions::const_iterator match_iter
= match_positions
.begin();
36 match_iter
!= match_positions
.end(); ++match_iter
, ++offset_iter
) {
37 const size_t begin
= *offset_iter
;
39 const size_t end
= *offset_iter
;
40 if ((begin
!= base::string16::npos
) && (end
!= base::string16::npos
)) {
41 const MatchPosition
new_match_position(begin
, end
);
42 new_match_positions
.push_back(new_match_position
);
45 return new_match_positions
;
48 } // namespace bookmarks