summaryrefslogtreecommitdiffstats
path: root/src/pinyin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/pinyin.cpp')
-rw-r--r--src/pinyin.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/pinyin.cpp b/src/pinyin.cpp
index a907cd9..9c06e68 100644
--- a/src/pinyin.cpp
+++ b/src/pinyin.cpp
@@ -900,7 +900,7 @@ static void _compute_frequency_of_items(pinyin_context_t * context,
bool pinyin_get_candidates(pinyin_instance_t * instance,
size_t offset,
- TokenVector candidates) {
+ CandidateVector candidates) {
pinyin_context_t * & context = instance->m_context;
pinyin_option_t & options = context->m_options;
@@ -960,10 +960,10 @@ bool pinyin_get_candidates(pinyin_instance_t * instance,
g_array_sort(items, compare_item_with_frequency);
/* transfer back items to tokens, and save it into candidates */
- for (ssize_t k = 0; k < items->len; ++k) {
+ for (size_t k = 0; k < items->len; ++k) {
lookup_candidate_t * item = &g_array_index
(items, lookup_candidate_t, k);
- g_array_append_val(candidates, item->m_token);
+ g_array_append_val(candidates, *item);
}
if (!(retval & SEARCH_CONTINUED))
@@ -1353,9 +1353,13 @@ bool pinyin_get_full_pinyin_candidates(pinyin_instance_t * instance,
int pinyin_choose_candidate(pinyin_instance_t * instance,
size_t offset,
- phrase_token_t token){
+ lookup_candidate_t * candidate){
pinyin_context_t * & context = instance->m_context;
+ assert(NORMAL_CANDIDATE == candidate->m_candidate_type);
+
+ phrase_token_t token = candidate->m_token;
+
guint8 len = context->m_pinyin_lookup->add_constraint
(instance->m_constraints, offset, token);