summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPeng Wu <alexepico@gmail.com>2012-04-16 10:47:03 +0800
committerPeng Wu <alexepico@gmail.com>2012-04-16 10:47:03 +0800
commitd02d2e469585da83b1b3e1ec3a4a38083c5b8c30 (patch)
tree1b9320d95249b301a0ecdaca8c040a980549ed20 /src
parent48af9209a46e7f03c189a25ece4ab3bfacf66fa3 (diff)
downloadlibpinyin-d02d2e469585da83b1b3e1ec3a4a38083c5b8c30.tar.gz
libpinyin-d02d2e469585da83b1b3e1ec3a4a38083c5b8c30.tar.xz
libpinyin-d02d2e469585da83b1b3e1ec3a4a38083c5b8c30.zip
add m_raw_full_pinyin to pinyin_instance_t
Diffstat (limited to 'src')
-rw-r--r--src/pinyin.cpp6
-rw-r--r--src/pinyin.h1
2 files changed, 7 insertions, 0 deletions
diff --git a/src/pinyin.cpp b/src/pinyin.cpp
index dade3f1..aec3a07 100644
--- a/src/pinyin.cpp
+++ b/src/pinyin.cpp
@@ -287,6 +287,8 @@ pinyin_instance_t * pinyin_alloc_instance(pinyin_context_t * context){
pinyin_instance_t * instance = new pinyin_instance_t;
instance->m_context = context;
+ instance->m_raw_full_pinyin = NULL;
+
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 =
@@ -300,6 +302,7 @@ pinyin_instance_t * pinyin_alloc_instance(pinyin_context_t * context){
}
void pinyin_free_instance(pinyin_instance_t * instance){
+ g_free(instance->m_raw_full_pinyin);
g_array_free(instance->m_prefixes, TRUE);
g_array_free(instance->m_pinyin_keys, TRUE);
g_array_free(instance->m_pinyin_key_rests, TRUE);
@@ -424,6 +427,9 @@ bool pinyin_parse_full_pinyin(pinyin_instance_t * instance,
size_t pinyin_parse_more_full_pinyins(pinyin_instance_t * instance,
const char * pinyins){
pinyin_context_t * & context = instance->m_context;
+
+ g_free(instance->m_raw_full_pinyin);
+ instance->m_raw_full_pinyin = g_strdup(pinyins);
int pinyin_len = strlen(pinyins);
int parse_len = context->m_full_pinyin_parser->parse
diff --git a/src/pinyin.h b/src/pinyin.h
index f5cc142..50eaf6d 100644
--- a/src/pinyin.h
+++ b/src/pinyin.h
@@ -38,6 +38,7 @@ typedef struct _pinyin_instance_t pinyin_instance_t;
struct _pinyin_instance_t{
pinyin_context_t * m_context;
+ gchar * m_raw_full_pinyin;
TokenVector m_prefixes;
ChewingKeyVector m_pinyin_keys;
ChewingKeyRestVector m_pinyin_key_rests;