diff --git a/re2/filtered_re2.cc b/re2/filtered_re2.cc index c738b8b90329899f19cdf81f4f00b0e7015b2852..71487cad42e09aae0252ad5c68f933ee0802485d 100644 --- a/re2/filtered_re2.cc +++ b/re2/filtered_re2.cc @@ -507,8 +507,11 @@ void FilteredRE2::Compile(std::vector* atoms) { int FilteredRE2::SlowFirstMatch(const StringPiece& text) const { for (size_t i = 0; i < re2_vec_.size(); i++) - if (RE2::PartialMatch(text, *re2_vec_[i])) + { + if (RE2::PartialMatch(text, re2_vec_[i]->pattern())){ return static_cast(i); + } + } return -1; } @@ -606,10 +609,6 @@ void FilteredRE2::AllPotentials( AtomsToRegexps(re2_vec_, atoms, potential_regexps, prefilter_tree_->getMinAtomLen()); } -void FilteredRE2::RegexpsGivenStrings(const std::vector& matched_atoms, - std::vector* passed_regexps) { - AtomsToRegexps(re2_vec_, matched_atoms, passed_regexps, prefilter_tree_->getMinAtomLen()); -} } // namespace re2 diff --git a/re2/testing/filtered_re2_test.cc b/re2/testing/filtered_re2_test.cc index 7cace6d5e33b8a06428815ac897dbe71a4ec585c..655b508a08d367b115d1062667d81590615abc8a 100644 --- a/re2/testing/filtered_re2_test.cc +++ b/re2/testing/filtered_re2_test.cc @@ -339,20 +339,20 @@ TEST(FilteredRE2Test, MoveSemantics) { } TEST(FilteredRE2Test, SlowFirstMatch) { - FilterTestVars v; // override the minimum atom length + FilterTestVars v; int id1; - v.f.Add("h.*o", v.opts, &id1); + v.f.Add("\\w+:\\d+", v.opts, &id1); int id2; - v.f.Add("(\\w+):(\\d+)", v.opts, &id2); - + v.f.Add("h.*o", v.opts, &id2); v.f.Compile(&v.atoms); EXPECT_EQ(0, v.atoms.size()); + std::string text1 = "ruby:123"; + std::string text2 = "hello"; + std::string text3 = "[]"; + EXPECT_EQ(0, v.f.SlowFirstMatch(text1)); + EXPECT_EQ(1, v.f.SlowFirstMatch(text2)); + EXPECT_EQ(-1, v.f.SlowFirstMatch(text3)); - std::string text = "hello world"; - std::vector atom_ids; - std::vector matching_regexps; - - EXPECT_EQ(0, v.f.FirstMatch(text, atom_ids)); } TEST(FilteredRE2Test, AllPotentials) { @@ -379,24 +379,6 @@ TEST(FilteredRE2Test, AllPotentials) { } -TEST(FilteredRE2Test, RegexpsGivenStrings) { - FilterTestVars v; - AtomTest* t = &atom_tests[2]; - - EXPECT_EQ("SubstrAtomRemovesSuperStrInOr", std::string(t->testname)); - size_t nregexp; - for (nregexp = 0; nregexp < arraysize(t->regexps); nregexp++) - if (t->regexps[nregexp] == NULL) - break; - AddRegexpsAndCompile(t->regexps, nregexp, &v); - std::vector atoms; - - atoms.push_back(5); - atoms.push_back(6); - std::vector potential_regexps; - v.f.AllPotentials(atoms, &potential_regexps); - EXPECT_EQ(1 ,potential_regexps.size()); -} } // namespace re2