Lines Matching defs:BadCharacterTable
365 class BadCharacterTable : public UMemory
368 BadCharacterTable(CEList &patternCEs, CollData *data, UErrorCode &status);
369 ~BadCharacterTable();
379 int32_t badCharacterTable[HASH_TABLE_SIZE];
384 BadCharacterTable::BadCharacterTable(CEList &patternCEs, CollData *data, UErrorCode &status)
416 badCharacterTable[j] = maxSkip;
432 badCharacterTable[hash(patternCEs[p])] = minLengthCache[p + 1];
438 BadCharacterTable::~BadCharacterTable()
443 int32_t BadCharacterTable::operator[](uint32_t ce) const
445 return badCharacterTable[hash(ce)];
448 int32_t BadCharacterTable::getMaxSkip() const
453 int32_t BadCharacterTable::minLengthInChars(int32_t index)
458 int32_t BadCharacterTable::hash(uint32_t ce)
466 GoodSuffixTable(CEList &patternCEs, BadCharacterTable &badCharacterTable, UErrorCode &status);
475 GoodSuffixTable::GoodSuffixTable(CEList &patternCEs, BadCharacterTable &badCharacterTable, UErrorCode &status)
487 int32_t maxSkip = badCharacterTable.getMaxSkip();
539 int32_t prefixSkip = badCharacterTable.minLengthInChars(i + 1);
557 goodSuffixTable[patlen - 1 - suff[i]] = badCharacterTable.minLengthInChars(i + 1);
591 BadCharacterTable *BoyerMooreSearch::getBadCharacterTable()
593 return badCharacterTable;
603 : data(theData), patCEs(NULL), badCharacterTable(NULL), goodSuffixTable(NULL), pattern(patternString), target(NULL)
618 badCharacterTable = new BadCharacterTable(*patCEs, data, status);
620 if (badCharacterTable == NULL || U_FAILURE(status)) {
624 goodSuffixTable = new GoodSuffixTable(*patCEs, *badCharacterTable, status);
635 delete badCharacterTable;
663 int32_t maxSkip = badCharacterTable->getMaxSkip();
726 tOffset += (*badCharacterTable)[tcei->order] - badCharacterTable->minLengthInChars(pIndex + 1);