diff options
author | Peng Wu <alexepico@gmail.com> | 2016-03-09 11:54:29 +0800 |
---|---|---|
committer | Peng Wu <alexepico@gmail.com> | 2016-03-09 11:54:29 +0800 |
commit | be2dafb5c4aa1deca6746134beebc420bf0e424e (patch) | |
tree | be9efb87db3e999931bba846b3b263885ce69a39 /src/storage/chewing_large_table2_bdb.cpp | |
parent | 270402c3e14b0a975da5e80e456befebdd85eced (diff) | |
download | libpinyin-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.cpp | 13 |
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; |