OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "components/url_matcher/regex_set_matcher.h" | 5 #include "components/url_matcher/regex_set_matcher.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/stl_util.h" | 10 #include "base/memory/ptr_util.h" |
11 #include "base/strings/string_util.h" | 11 #include "base/strings/string_util.h" |
12 #include "components/url_matcher/substring_set_matcher.h" | 12 #include "components/url_matcher/substring_set_matcher.h" |
13 #include "third_party/re2/src/re2/filtered_re2.h" | 13 #include "third_party/re2/src/re2/filtered_re2.h" |
14 #include "third_party/re2/src/re2/re2.h" | 14 #include "third_party/re2/src/re2/re2.h" |
15 | 15 |
16 namespace url_matcher { | 16 namespace url_matcher { |
17 | 17 |
18 RegexSetMatcher::RegexSetMatcher() {} | 18 RegexSetMatcher::RegexSetMatcher() {} |
19 | 19 |
20 RegexSetMatcher::~RegexSetMatcher() { | 20 RegexSetMatcher::~RegexSetMatcher() { |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
95 | 95 |
96 std::vector<std::string> strings_to_match; | 96 std::vector<std::string> strings_to_match; |
97 filtered_re2_->Compile(&strings_to_match); | 97 filtered_re2_->Compile(&strings_to_match); |
98 | 98 |
99 substring_matcher_.reset(new SubstringSetMatcher); | 99 substring_matcher_.reset(new SubstringSetMatcher); |
100 DeleteSubstringPatterns(); | 100 DeleteSubstringPatterns(); |
101 // Build SubstringSetMatcher from |strings_to_match|. | 101 // Build SubstringSetMatcher from |strings_to_match|. |
102 // SubstringSetMatcher doesn't own its strings. | 102 // SubstringSetMatcher doesn't own its strings. |
103 for (size_t i = 0; i < strings_to_match.size(); ++i) { | 103 for (size_t i = 0; i < strings_to_match.size(); ++i) { |
104 substring_patterns_.push_back( | 104 substring_patterns_.push_back( |
105 new StringPattern(strings_to_match[i], i)); | 105 base::MakeUnique<StringPattern>(strings_to_match[i], i)); |
106 } | 106 } |
107 substring_matcher_->RegisterPatterns(substring_patterns_); | 107 std::vector<const StringPattern*> patterns; |
| 108 for (const auto& pattern : substring_patterns_) |
| 109 patterns.push_back(pattern.get()); |
| 110 substring_matcher_->RegisterPatterns(patterns); |
108 } | 111 } |
109 | 112 |
110 void RegexSetMatcher::DeleteSubstringPatterns() { | 113 void RegexSetMatcher::DeleteSubstringPatterns() { |
111 base::STLDeleteElements(&substring_patterns_); | 114 substring_patterns_.clear(); |
112 } | 115 } |
113 | 116 |
114 } // namespace url_matcher | 117 } // namespace url_matcher |
OLD | NEW |