Lines Matching refs:params
263 // Fills in params->start and params->firstbyte using
267 bool AnalyzeSearch(SearchParams* params);
268 bool AnalyzeSearchHelper(SearchParams* params, StartInfo* info, uint flags);
272 // Might unlock and relock cache_mutex_ via params->cache_lock.
273 inline bool InlinedSearchLoop(SearchParams* params,
282 // Might unlock and relock cache_mutex_ via params->cache_lock.
283 bool SearchFFF(SearchParams* params);
284 bool SearchFFT(SearchParams* params);
285 bool SearchFTF(SearchParams* params);
286 bool SearchFTT(SearchParams* params);
287 bool SearchTFF(SearchParams* params);
288 bool SearchTFT(SearchParams* params);
289 bool SearchTTF(SearchParams* params);
290 bool SearchTTT(SearchParams* params);
295 // Might unlock and relock cache_mutex_ via params->cache_lock.
296 bool FastSearchLoop(SearchParams* params);
303 // Might unlock and relock cache_mutex_ via params->cache_lock.
304 bool SlowSearchLoop(SearchParams* params);
1276 // The bools are equal to the same-named variables in params, but
1279 inline bool DFA::InlinedSearchLoop(SearchParams* params,
1283 State* start = params->start;
1284 const uint8* bp = BytePtr(params->text.begin()); // start of text
1286 const uint8* ep = BytePtr(params->text.end()); // end of text
1300 params->ep = reinterpret_cast<const char*>(lastmatch);
1315 if ((p = BytePtr(memchr(p, params->firstbyte, ep - p))) == NULL) {
1320 if ((p = BytePtr(memrchr(ep, params->firstbyte, p - ep))) == NULL) {
1367 params->failed = true;
1377 ResetCache(params->cache_lock);
1383 params->failed = true;
1389 params->failed = true;
1396 params->ep = reinterpret_cast<const char*>(lastmatch);
1400 params->ep = reinterpret_cast<const char*>(ep);
1419 params->ep = reinterpret_cast<const char*>(lastmatch);
1426 if (params->matches && kind_ == Prog::kManyMatch) {
1427 vector<int>* v = params->matches;
1443 if (params->text.end() == params->context.end())
1446 lastbyte = params->text.end()[0] & 0xFF;
1448 if (params->text.begin() == params->context.begin())
1451 lastbyte = params->text.begin()[-1] & 0xFF;
1460 ResetCache(params->cache_lock);
1462 params->failed = true;
1468 params->failed = true;
1477 params->ep = reinterpret_cast<const char*>(ep);
1487 params->ep = reinterpret_cast<const char*>(lastmatch);
1492 bool DFA::SearchFFF(SearchParams* params) {
1493 return InlinedSearchLoop(params, 0, 0, 0);
1495 bool DFA::SearchFFT(SearchParams* params) {
1496 return InlinedSearchLoop(params, 0, 0, 1);
1498 bool DFA::SearchFTF(SearchParams* params) {
1499 return InlinedSearchLoop(params, 0, 1, 0);
1501 bool DFA::SearchFTT(SearchParams* params) {
1502 return InlinedSearchLoop(params, 0, 1, 1);
1504 bool DFA::SearchTFF(SearchParams* params) {
1505 return InlinedSearchLoop(params, 1, 0, 0);
1507 bool DFA::SearchTFT(SearchParams* params) {
1508 return InlinedSearchLoop(params, 1, 0, 1);
1510 bool DFA::SearchTTF(SearchParams* params) {
1511 return InlinedSearchLoop(params, 1, 1, 0);
1513 bool DFA::SearchTTT(SearchParams* params) {
1514 return InlinedSearchLoop(params, 1, 1, 1);
1518 bool DFA::SlowSearchLoop(SearchParams* params) {
1519 return InlinedSearchLoop(params,
1520 params->firstbyte >= 0,
1521 params->want_earliest_match,
1522 params->run_forward);
1527 bool DFA::FastSearchLoop(SearchParams* params) {
1541 bool have_firstbyte = (params->firstbyte >= 0);
1543 2 * params->want_earliest_match +
1544 1 * params->run_forward;
1545 return (this->*Searches[index])(params);
1573 // state for the DFA search loop. Fills in params and returns true on success.
1575 bool DFA::AnalyzeSearch(SearchParams* params) {
1576 const StringPiece& text = params->text;
1577 const StringPiece& context = params->context;
1582 params->start = DeadState;
1589 if (params->run_forward) {
1618 if (params->anchored || prog_->anchor_start())
1625 if (!AnalyzeSearchHelper(params, info, flags)) {
1626 ResetCache(params->cache_lock);
1627 if (!AnalyzeSearchHelper(params, info, flags)) {
1629 params->failed = true;
1636 params->anchored, params->run_forward, flags,
1639 params->start = info->start;
1640 params->firstbyte = info->firstbyte;
1646 bool DFA::AnalyzeSearchHelper(SearchParams* params, StartInfo* info,
1658 params->anchored ? prog_->start() : prog_->start_unanchored(),
1726 SearchParams params(text, context, &l);
1727 params.anchored = anchored;
1728 params.want_earliest_match = want_earliest_match;
1729 params.run_forward = run_forward;
1730 params.matches = matches;
1732 if (!AnalyzeSearch(¶ms)) {
1736 if (params.start == DeadState)
1738 if (params.start == FullMatchState) {
1746 fprintf(stderr, "start %s\n", DumpState(params.start).c_str());
1747 bool ret = FastSearchLoop(¶ms);
1748 if (params.failed) {
1752 *epp = params.ep;
1895 SearchParams params(NULL, NULL, &l);
1896 params.anchored = false;
1897 if (!AnalyzeSearch(¶ms) || params.start <= SpecialStateMax)
1903 queued.insert(params.start);
1904 q.push_back(params.start);
1950 SearchParams params(NULL, NULL, &l);
1951 params.anchored = true;
1952 if (!AnalyzeSearch(¶ms))
1954 if (params.start == DeadState) { // No matching strings
1959 if (params.start == FullMatchState) // Every string matches: no max
1962 // The DFA is essentially a big graph rooted at params.start,
1988 State* s = params.start;
2025 s = params.start;