diff options
author | Peng Wu <alexepico@gmail.com> | 2011-12-05 14:31:26 +0800 |
---|---|---|
committer | Peng Wu <alexepico@gmail.com> | 2011-12-05 14:31:26 +0800 |
commit | a20107c9ca3aa1c9b8ed9b7a1f91335316bcd8a7 (patch) | |
tree | b5886de9d5f7bed631ecc2dbd9396340a8fa5793 /src | |
parent | 9cf00098f4628fb9797bb14963686384d406883b (diff) | |
download | libpinyin-a20107c9ca3aa1c9b8ed9b7a1f91335316bcd8a7.tar.gz libpinyin-a20107c9ca3aa1c9b8ed9b7a1f91335316bcd8a7.tar.xz libpinyin-a20107c9ca3aa1c9b8ed9b7a1f91335316bcd8a7.zip |
fixes merge single gram
Diffstat (limited to 'src')
-rw-r--r-- | src/storage/ngram.cpp | 12 |
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)); |