summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeng Wu <alexepico@gmail.com>2011-12-05 14:31:26 +0800
committerPeng Wu <alexepico@gmail.com>2011-12-05 14:31:26 +0800
commita20107c9ca3aa1c9b8ed9b7a1f91335316bcd8a7 (patch)
treeb5886de9d5f7bed631ecc2dbd9396340a8fa5793
parent9cf00098f4628fb9797bb14963686384d406883b (diff)
downloadlibpinyin-a20107c9ca3aa1c9b8ed9b7a1f91335316bcd8a7.tar.gz
libpinyin-a20107c9ca3aa1c9b8ed9b7a1f91335316bcd8a7.tar.xz
libpinyin-a20107c9ca3aa1c9b8ed9b7a1f91335316bcd8a7.zip
fixes merge single gram
-rw-r--r--src/storage/ngram.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/storage/ngram.cpp b/src/storage/ngram.cpp
index 86c12fe..6455ae6 100644
--- a/src/storage/ngram.cpp
+++ b/src/storage/ngram.cpp
@@ -415,10 +415,6 @@ namespace pinyin{
*/
bool merge_single_gram(SingleGram * merged, const SingleGram * system,
const SingleGram * user){
- /* clear merged. */
- MemoryChunk & merged_chunk = merged->m_chunk;
- merged_chunk.set_size(0);
-
if (NULL == system && NULL == user)
return false;
@@ -434,12 +430,16 @@ bool merge_single_gram(SingleGram * merged, const SingleGram * system,
return true;
}
- /* merge the origin info and delta info */
+ /* clear merged. */
+ MemoryChunk & merged_chunk = merged->m_chunk;
+ merged_chunk.set_size(sizeof(guint32));
+ /* merge the origin info and delta info */
guint32 system_total, user_total;
assert(system->get_total_freq(system_total));
assert(user->get_total_freq(user_total));
- assert(merged->set_total_freq(system_total + user_total));
+ const guint32 merged_total = system_total + user_total;
+ merged_chunk.set_content(0, &merged_total, sizeof(guint32));
const SingleGramItem * cur_system = (const SingleGramItem *)
((const char *)(system->m_chunk.begin()) + sizeof(guint32));