add safe check for load_text.
authorPeng Wu <alexepico@gmail.com>
Wed, 1 Sep 2010 09:04:38 +0000 (17:04 +0800)
committerPeng Wu <alexepico@gmail.com>
Wed, 1 Sep 2010 09:04:38 +0000 (17:04 +0800)
src/storage/phrase_large_table.cpp
src/storage/pinyin_large_table.cpp

index d8810d3..b115ceb 100644 (file)
@@ -318,12 +318,15 @@ bool PhraseLargeTable::load_text(FILE * infile){
     phrase_token_t token;
     size_t freq;
 
-    while ( !feof(infile) ){
+    while ( !feof(infile) ) {
         fscanf(infile, "%s", pinyin);
         fscanf(infile, "%s", phrase);
         fscanf(infile, "%ld", &token);
         fscanf(infile, "%ld", &freq);
 
+        if ( feof(infile) )
+            break;
+
         glong phrase_len = g_utf8_strlen(phrase, -1);
         utf16_t * new_phrase = g_utf8_to_utf16(phrase, -1, NULL, NULL, NULL);
         add_index(phrase_len, new_phrase, token);
index 07f643e..a5ed998 100644 (file)
@@ -483,11 +483,14 @@ bool PinyinLargeTable::load_text(FILE * infile){
     phrase_token_t token;
     size_t freq;    
 
-    while ( !feof(infile)){
+    while ( !feof(infile) ) {
         fscanf(infile, "%s", pinyin);
         fscanf(infile, "%s", phrase);
         fscanf(infile, "%ld", &token);
        fscanf(infile, "%ld", &freq);   
+
+        if ( feof(infile) )
+            break;
        
        PinyinDefaultParser parser;
        NullPinyinValidator validator;