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. 4 5 #include "components/bookmarks/browser/bookmark_match.h" 6 7 #include "base/logging.h" 8 #include "base/strings/string16.h" 9 10 namespace bookmarks { 11 BookmarkMatch()12BookmarkMatch::BookmarkMatch() : node(NULL) {} 13 ~BookmarkMatch()14BookmarkMatch::~BookmarkMatch() {} 15 16 // static OffsetsFromMatchPositions(const MatchPositions & match_positions)17std::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); 24 } 25 return offsets; 26 } 27 28 // static ReplaceOffsetsInMatchPositions(const MatchPositions & match_positions,const std::vector<size_t> & offsets)29BookmarkMatch::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; 38 ++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); 43 } 44 } 45 return new_match_positions; 46 } 47 48 } // namespace bookmarks 49