From b999e8758ccdc340eeb8204b3cf2a9cdacccfc31 Mon Sep 17 00:00:00 2001 From: Peng Wu Date: Mon, 8 Oct 2012 13:51:37 +0800 Subject: detect corrupted phrase index log file --- src/storage/phrase_index_logger.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/storage/phrase_index_logger.h') diff --git a/src/storage/phrase_index_logger.h b/src/storage/phrase_index_logger.h index fe6070f..06f933e 100644 --- a/src/storage/phrase_index_logger.h +++ b/src/storage/phrase_index_logger.h @@ -59,6 +59,7 @@ class PhraseIndexLogger{ protected: MemoryChunk * m_chunk; size_t m_offset; + bool m_error; void reset(){ if ( m_chunk ){ @@ -66,6 +67,7 @@ protected: m_chunk = NULL; } m_offset = 0; + m_error = false; } public: /** @@ -74,7 +76,7 @@ public: * The constructor of the PhraseIndexLogger. * */ - PhraseIndexLogger():m_offset(0){ + PhraseIndexLogger():m_offset(0), m_error(false){ m_chunk = new MemoryChunk; } @@ -123,6 +125,9 @@ public: * */ bool has_next_record(){ + if (m_error) + return false; + return m_offset < m_chunk->size(); } @@ -204,7 +209,8 @@ public: break; } default: - assert(false); + m_error = true; + return false; } m_offset = offset; -- cgit