summaryrefslogtreecommitdiffstats
path: root/src/pinyin.cpp
diff options
context:
space:
mode:
authorPeng Wu <alexepico@gmail.com>2012-03-02 11:01:09 +0800
committerPeng Wu <alexepico@gmail.com>2012-03-02 11:01:09 +0800
commit92b698bcd9d09f8a5f3af62d70385b80cb0d1f59 (patch)
tree74845d195a28db3e34967b77140e25fa4cd3c332 /src/pinyin.cpp
parentc086810d3e0f2627d46a2b78103757af0f731dac (diff)
downloadlibpinyin-92b698bcd9d09f8a5f3af62d70385b80cb0d1f59.tar.gz
libpinyin-92b698bcd9d09f8a5f3af62d70385b80cb0d1f59.tar.xz
libpinyin-92b698bcd9d09f8a5f3af62d70385b80cb0d1f59.zip
update pinyin.*
Diffstat (limited to 'src/pinyin.cpp')
-rw-r--r--src/pinyin.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/pinyin.cpp b/src/pinyin.cpp
index deaa7c6..c0aa751 100644
--- a/src/pinyin.cpp
+++ b/src/pinyin.cpp
@@ -271,6 +271,7 @@ pinyin_instance_t * pinyin_alloc_instance(pinyin_context_t * context){
pinyin_instance_t * instance = new pinyin_instance_t;
instance->m_context = context;
+ instance->m_prefixes = g_array_new(FALSE, FALSE, sizeof(phrase_token_t));
instance->m_pinyin_keys = g_array_new(FALSE, FALSE, sizeof(ChewingKey));
instance->m_pinyin_key_rests =
g_array_new(FALSE, FALSE, sizeof(ChewingKeyRest));
@@ -283,6 +284,7 @@ pinyin_instance_t * pinyin_alloc_instance(pinyin_context_t * context){
}
void pinyin_free_instance(pinyin_instance_t * instance){
+ g_array_free(instance->m_prefixes, TRUE);
g_array_free(instance->m_pinyin_keys, TRUE);
g_array_free(instance->m_pinyin_key_rests, TRUE);
g_array_free(instance->m_constraints, TRUE);
@@ -315,6 +317,10 @@ static bool pinyin_update_constraints(pinyin_instance_t * instance){
bool pinyin_guess_sentence(pinyin_instance_t * instance){
pinyin_context_t * & context = instance->m_context;
+ g_array_set_size(instance->m_prefixes, 0);
+ g_array_append_val(instance->m_prefixes, sentence_start);
+
+ /* TODO: update get_best_match call. */
pinyin_update_constraints(instance);
bool retval = context->m_pinyin_lookup->get_best_match
(instance->m_pinyin_keys,