summaryrefslogtreecommitdiffstats
path: root/src/storage
diff options
context:
space:
mode:
Diffstat (limited to 'src/storage')
-rw-r--r--src/storage/chewing_large_table.cpp6
-rw-r--r--src/storage/phrase_large_table.cpp8
2 files changed, 10 insertions, 4 deletions
diff --git a/src/storage/chewing_large_table.cpp b/src/storage/chewing_large_table.cpp
index 9185976..ff53b75 100644
--- a/src/storage/chewing_large_table.cpp
+++ b/src/storage/chewing_large_table.cpp
@@ -490,7 +490,8 @@ int ChewingBitmapIndexLevel::remove_index(int phrase_length,
int ChewingLengthIndexLevel::add_index(int phrase_length,
/* in */ ChewingKey keys[],
/* in */ phrase_token_t token) {
- assert(phrase_length + 1 < MAX_PHRASE_LENGTH);
+ if (!(phrase_length + 1 < MAX_PHRASE_LENGTH))
+ return ERROR_PHRASE_TOO_LONG;
if (m_chewing_array_indexes->len <= phrase_length)
g_array_set_size(m_chewing_array_indexes, phrase_length + 1);
@@ -532,7 +533,8 @@ int ChewingLengthIndexLevel::add_index(int phrase_length,
int ChewingLengthIndexLevel::remove_index(int phrase_length,
/* in */ ChewingKey keys[],
/* in */ phrase_token_t token) {
- assert(phrase_length + 1 < MAX_PHRASE_LENGTH);
+ if (!(phrase_length + 1 < MAX_PHRASE_LENGTH))
+ return ERROR_PHRASE_TOO_LONG;
if (m_chewing_array_indexes->len <= phrase_length)
return ERROR_REMOVE_ITEM_DONOT_EXISTS;
diff --git a/src/storage/phrase_large_table.cpp b/src/storage/phrase_large_table.cpp
index 195024e..1207b17 100644
--- a/src/storage/phrase_large_table.cpp
+++ b/src/storage/phrase_large_table.cpp
@@ -242,7 +242,9 @@ int PhraseBitmapIndexLevel::remove_index( int phrase_length, /* in */ ucs4_t phr
}
int PhraseLengthIndexLevel::add_index( int phrase_length, /* in */ ucs4_t phrase[], /* in */ phrase_token_t token){
- assert(phrase_length + 1 < MAX_PHRASE_LENGTH);
+ if (!(phrase_length + 1 < MAX_PHRASE_LENGTH))
+ return ERROR_PHRASE_TOO_LONG;
+
if ( m_phrase_array_indexes -> len <= phrase_length )
g_array_set_size(m_phrase_array_indexes, phrase_length + 1);
@@ -280,7 +282,9 @@ int PhraseLengthIndexLevel::add_index( int phrase_length, /* in */ ucs4_t phrase
}
int PhraseLengthIndexLevel::remove_index( int phrase_length, /* in */ ucs4_t phrase[], /* out */ phrase_token_t & token){
- assert(phrase_length + 1 < MAX_PHRASE_LENGTH);
+ if (!(phrase_length + 1 < MAX_PHRASE_LENGTH))
+ return ERROR_PHRASE_TOO_LONG;
+
if ( m_phrase_array_indexes -> len <= phrase_length )
return ERROR_REMOVE_ITEM_DONOT_EXISTS;
#define CASE(len) case len: \