summaryrefslogtreecommitdiffstats
path: root/src/storage/chewing_large_table2_bdb.cpp
diff options
context:
space:
mode:
authorPeng Wu <alexepico@gmail.com>2016-03-09 11:54:29 +0800
committerPeng Wu <alexepico@gmail.com>2016-03-09 11:54:29 +0800
commitbe2dafb5c4aa1deca6746134beebc420bf0e424e (patch)
treebe9efb87db3e999931bba846b3b263885ce69a39 /src/storage/chewing_large_table2_bdb.cpp
parent270402c3e14b0a975da5e80e456befebdd85eced (diff)
downloadlibpinyin-be2dafb5c4aa1deca6746134beebc420bf0e424e.tar.gz
libpinyin-be2dafb5c4aa1deca6746134beebc420bf0e424e.tar.xz
libpinyin-be2dafb5c4aa1deca6746134beebc420bf0e424e.zip
fixes search method
Diffstat (limited to 'src/storage/chewing_large_table2_bdb.cpp')
-rw-r--r--src/storage/chewing_large_table2_bdb.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/storage/chewing_large_table2_bdb.cpp b/src/storage/chewing_large_table2_bdb.cpp
index ca4c3fa..f0d2e0f 100644
--- a/src/storage/chewing_large_table2_bdb.cpp
+++ b/src/storage/chewing_large_table2_bdb.cpp
@@ -216,7 +216,8 @@ bool ChewingLargeTable2::store_db(const char * new_filename) {
}
template<size_t phrase_length>
-int ChewingLargeTable2::search_internal(/* in */ const ChewingKey keys[],
+int ChewingLargeTable2::search_internal(/* in */ const ChewingKey index[],
+ /* in */ const ChewingKey keys[],
/* out */ PhraseIndexRanges ranges) const {
int result = SEARCH_NONE;
@@ -230,7 +231,7 @@ int ChewingLargeTable2::search_internal(/* in */ const ChewingKey keys[],
DBT db_key;
memset(&db_key, 0, sizeof(DBT));
- db_key.data = (void *) keys;
+ db_key.data = (void *) index;
db_key.size = phrase_length * sizeof(ChewingKey);
DBT db_data;
@@ -249,13 +250,13 @@ int ChewingLargeTable2::search_internal(/* in */ const ChewingKey keys[],
return result;
}
-
int ChewingLargeTable2::search_internal(int phrase_length,
+ /* in */ const ChewingKey index[],
/* in */ const ChewingKey keys[],
/* out */ PhraseIndexRanges ranges) const {
#define CASE(len) case len: \
{ \
- return search_internal<len>(keys, ranges); \
+ return search_internal<len>(index, keys, ranges); \
}
switch(phrase_length) {
@@ -292,10 +293,10 @@ int ChewingLargeTable2::search(int phrase_length,
if (contains_incomplete_pinyin(keys, phrase_length)) {
compute_incomplete_chewing_index(keys, index, phrase_length);
- return search_internal(phrase_length, index, ranges);
+ return search_internal(phrase_length, index, keys, ranges);
} else {
compute_chewing_index(keys, index, phrase_length);
- return search_internal(phrase_length, index, ranges);
+ return search_internal(phrase_length, index, keys, ranges);
}
return SEARCH_NONE;