diff options
author | Peng Wu <alexepico@gmail.com> | 2011-04-08 12:23:25 +0800 |
---|---|---|
committer | Peng Wu <alexepico@gmail.com> | 2011-04-08 12:23:25 +0800 |
commit | 8c7b4f779a5a9bc8b01f1580a44fa02ebc1948f1 (patch) | |
tree | 677f13231a35d1171ed53269ebb3f5e0bb00fb73 /src | |
parent | 0d839f2ef6d4f70dbad007384ca998eb0ae51732 (diff) | |
download | libpinyin-8c7b4f779a5a9bc8b01f1580a44fa02ebc1948f1.tar.gz libpinyin-8c7b4f779a5a9bc8b01f1580a44fa02ebc1948f1.tar.xz libpinyin-8c7b4f779a5a9bc8b01f1580a44fa02ebc1948f1.zip |
add test case
Diffstat (limited to 'src')
-rw-r--r-- | src/storage/flexible_ngram.h | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/src/storage/flexible_ngram.h b/src/storage/flexible_ngram.h index ff366da..10bad8f 100644 --- a/src/storage/flexible_ngram.h +++ b/src/storage/flexible_ngram.h @@ -162,7 +162,7 @@ public: return true; } if ( cur_item->m_token == token ){ - cur_item.m_item = item; + cur_item->m_item = item; return true; } } @@ -251,7 +251,7 @@ public: } bool store(phrase_token_t index, - FlexibleSingleGram<ArrayHeader, ArrayItem> * & single_gram){ + FlexibleSingleGram<ArrayHeader, ArrayItem> * single_gram){ if ( !m_db ) return false; @@ -287,7 +287,10 @@ public: /* Iterate over the database, retrieving each record in turn. */ while ((ret = cursorp->c_get(cursorp, &key, &data, DB_NEXT)) == 0 ){ - assert(key.size == sizeof(phrase_token_t)); + if (key.size > sizeof(phrase_token_t)){ + /* skip magic header. */ + continue; + } phrase_token_t * token = (phrase_token_t *) key.data; g_array_append_val(items, *token); } @@ -305,9 +308,6 @@ public: /* get/set magic header. */ bool get_magic_header(MagicHeader & header){ - /* Note: remove the below statement later? */ - assert(sizeof(m_magic_header_index) == 2 * sizeof(phrase_token_t)); - if ( !m_db ) return false; @@ -327,9 +327,6 @@ public: } bool set_magic_header(const MagicHeader & header){ - /* Note: remove the below statement later? */ - assert(sizeof(m_magic_header_index) == 2 * sizeof(phrase_token_t)); - if ( !m_db ) return false; @@ -339,7 +336,7 @@ public: db_key.size = sizeof(m_magic_header_index); DBT db_data; memset(&db_data, 0, sizeof(DBT)); - db_data.data = &header; + db_data.data = (void *) &header; db_data.size = sizeof(MagicHeader); int ret = m_db->put(m_db, NULL, &db_key, &db_data, 0); |