Lines Matching full:searchable
368 const uint16 * id1, uint16 len1, const UserDictSearchable *searchable) {
369 if (len1 < searchable->splids_len)
374 for (i = 0; i < searchable->splids_len; i++) {
377 const char py2 = ((searchable->signature[i/4] & (0xff << off)) >> off);
386 const uint16 * id1, uint16 len1, const UserDictSearchable *searchable) {
387 if (len1 < searchable->splids_len)
389 if (len1 > searchable->splids_len)
397 const char py2 = ((searchable->signature[i/4] & (0xff << off)) >> off);
409 const UserDictSearchable *searchable) {
410 if (fulllen < searchable->splids_len)
414 for (; i < searchable->splids_len; i++) {
415 uint16 start_id = searchable->splid_start[i];
416 uint16 count = searchable->splid_count[i];
427 const UserDictSearchable *searchable) {
428 if (fulllen != searchable->splids_len)
433 uint16 start_id = searchable->splid_start[i];
434 uint16 count = searchable->splid_count[i];
443 int32 UserDict::locate_first_in_offsets(const UserDictSearchable * searchable) {
456 int cmp = fuzzy_compare_spell_id(splids, nchar, searchable);
457 int pre = is_fuzzy_prefix_spell_id(splids, nchar, searchable);
475 void UserDict::prepare_locate(UserDictSearchable *searchable,
478 searchable->splids_len = splid_str_len;
479 memset(searchable->signature, 0, sizeof(searchable->signature));
485 searchable->splid_count[i] =
487 &(searchable->splid_start[i]));
489 searchable->splid_count[i] = 1;
490 searchable->splid_start[i] = splid_str[i];
493 searchable->signature[i>>2] |= (py << (8 * (i % 4)));
529 UserDictSearchable searchable;
530 prepare_locate(&searchable, splid_str, splid_str_len);
536 bool cached = cache_hit(&searchable, &start, &count);
541 middle = locate_first_in_offsets(&searchable);
545 int32 middle = locate_first_in_offsets(&searchable);
551 cache_push(USER_DICT_MISS_CACHE, &searchable, 0, 0);
572 if (!cached && 0 != fuzzy_compare_spell_id(splids, nchar, &searchable)) {
574 if (0 != fuzzy_compare_spell_id(splids, nchar, &searchable)) {
580 if (is_fuzzy_prefix_spell_id(splids, nchar, &searchable)) {
582 is_prefix_spell_id(splids, nchar, &searchable)) {
590 if (equal_spell_id(splids, nchar, &searchable) == true) {
602 cache_push(USER_DICT_CACHE, &searchable, start, count);
694 UserDictSearchable searchable;
695 prepare_locate(&searchable, splid_str, lemma_len);
699 bool cached = load_cache(&searchable, &start, &count);
704 off = locate_first_in_offsets(&searchable);
708 int32 off = locate_first_in_offsets(&searchable);
723 if (!cached && 0 != fuzzy_compare_spell_id(splids, lemma_len, &searchable))
726 if (0 != fuzzy_compare_spell_id(splids, lemma_len, &searchable))
729 if (equal_spell_id(splids, lemma_len, &searchable) == true) {
1362 bool UserDict::load_cache(UserDictSearchable *searchable,
1364 UserDictCache *cache = &caches_[searchable->splids_len - 1];
1373 if (cache->signatures[i][j] != searchable->signature[j])
1391 void UserDict::save_cache(UserDictSearchable *searchable,
1393 UserDictCache *cache = &caches_[searchable->splids_len - 1];
1401 cache->signatures[next][j] = searchable->signature[j];
1420 bool UserDict::load_miss_cache(UserDictSearchable *searchable) {
1421 UserDictMissCache *cache = &miss_caches_[searchable->splids_len - 1];
1430 if (cache->signatures[i][j] != searchable->signature[j])
1446 void UserDict::save_miss_cache(UserDictSearchable *searchable) {
1447 UserDictMissCache *cache = &miss_caches_[searchable->splids_len - 1];
1453 cache->signatures[next][j] = searchable->signature[j];
1477 bool UserDict::cache_hit(UserDictSearchable *searchable,
1479 bool hit = load_miss_cache(searchable);
1485 hit = load_cache(searchable, offset, length);
1493 UserDictSearchable *searchable,
1497 save_miss_cache(searchable);
1500 save_cache(searchable, offset, length);
2206 UserDictSearchable searchable;
2207 prepare_locate(&searchable, splids, lemma_len);
2215 if (0 <= fuzzy_compare_spell_id(spl, nchar, &searchable))