From 6b2c3bad390dc5073fb12ae841d2fa061bc1a557 Mon Sep 17 00:00:00 2001 From: Peng Wu Date: Tue, 29 May 2012 10:48:27 +0800 Subject: fixes pinyin_choose_full_pinyin_candidate --- src/pinyin.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/pinyin.cpp b/src/pinyin.cpp index 574b684..baf64ea 100644 --- a/src/pinyin.cpp +++ b/src/pinyin.cpp @@ -1144,11 +1144,16 @@ int pinyin_choose_full_pinyin_candidate(pinyin_instance_t * instance, /* Note: there may be some un-parsable input here. */ } + /* sync m_constraints to the length of m_pinyin_keys. */ + bool retval = context->m_pinyin_lookup->validate_constraint + (instance->m_constraints, instance->m_pinyin_keys); + phrase_token_t token = candidate->m_token; guint8 len = context->m_pinyin_lookup->add_constraint (instance->m_constraints, offset, token); - bool retval = context->m_pinyin_lookup->validate_constraint + /* safe guard: validate the m_constraints again. */ + retval = context->m_pinyin_lookup->validate_constraint (instance->m_constraints, instance->m_pinyin_keys) && len; return offset + len; -- cgit