From 16e161530101019291390b2c8a067eec1b2e65d1 Mon Sep 17 00:00:00 2001
From: Keisuke Kuroyanagi <ksk@google.com>
Date: Mon, 6 Oct 2014 11:55:07 +0900
Subject: [PATCH] Fix: ProbabilityDictContent can be wrongly large.

It can be twice as large as it should be (80KB larger).

Change-Id: If94f748f8c48a442b3c95ac989099aaed2aa2f86
---
 .../backward/v402/content/probability_dict_content.cpp        | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/probability_dict_content.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/probability_dict_content.cpp
index 4a740d47b9..ef6166ffda 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/probability_dict_content.cpp
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/probability_dict_content.cpp
@@ -74,8 +74,8 @@ bool ProbabilityDictContent::setProbabilityEntry(const int terminalId,
                 return false;
             }
             writingPos += getEntrySize();
-            mSize++;
         }
+        mSize = terminalId + 1;
     }
     return writeEntry(probabilityEntry, entryPos);
 }
@@ -100,7 +100,6 @@ bool ProbabilityDictContent::flushToFile(const char *const dictPath) const {
 bool ProbabilityDictContent::runGC(
         const TerminalPositionLookupTable::TerminalIdMap *const terminalIdMap,
         const ProbabilityDictContent *const originalProbabilityDictContent) {
-    mSize = 0;
     for (TerminalPositionLookupTable::TerminalIdMap::const_iterator it = terminalIdMap->begin();
             it != terminalIdMap->end(); ++it) {
         const ProbabilityEntry probabilityEntry =
@@ -109,7 +108,6 @@ bool ProbabilityDictContent::runGC(
             AKLOGE("Cannot set probability entry in runGC. terminalId: %d", it->second);
             return false;
         }
-        mSize++;
     }
     return true;
 }
-- 
GitLab