summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/pinyin.cpp15
-rw-r--r--src/pinyin.h9
2 files changed, 20 insertions, 4 deletions
diff --git a/src/pinyin.cpp b/src/pinyin.cpp
index 92e1d0f..3ea6f08 100644
--- a/src/pinyin.cpp
+++ b/src/pinyin.cpp
@@ -50,6 +50,7 @@ struct _pinyin_context_t{
};
struct _import_iterator_t{
+ pinyin_context_t * m_context;
guint8 m_phrase_index;
};
@@ -238,6 +239,20 @@ bool pinyin_unload_phrase_library(pinyin_context_t * context,
return true;
}
+import_iterator_t * pinyin_begin_add_phrases(pinyin_context_t * context,
+ guint8 index){
+ import_iterator_t * iter = new import_iterator_t;
+ iter->m_context = context;
+ iter->m_phrase_index = index;
+ return iter;
+}
+
+
+void pinyin_end_add_phrases(import_iterator_t * iter){
+ /* compact the content memory chunk of phrase index. */
+ iter->m_context->m_phrase_index->compact();
+ delete iter;
+}
bool pinyin_save(pinyin_context_t * context){
if (!context->m_user_dir)
diff --git a/src/pinyin.h b/src/pinyin.h
index d99fa63..5800768 100644
--- a/src/pinyin.h
+++ b/src/pinyin.h
@@ -110,11 +110,12 @@ bool pinyin_unload_phrase_library(pinyin_context_t * context,
import_iterator_t * pinyin_begin_add_phrases(pinyin_context_t * context,
guint8 index);
-bool pinyin_add_phrase(import_iterator_t * iterator,
- const char * phrase,
- const char * pinyin);
+bool pinyin_iterator_add_phrase(import_iterator_t * iter,
+ const char * phrase,
+ const char * pinyin,
+ gint count);
-void pinyin_end_add_phrases(import_iterator_t * iterator);
+void pinyin_end_add_phrases(import_iterator_t * iter);
/**
* pinyin_save: