diff options
author | 2014-03-24 06:55:14 +0000 | |
---|---|---|
committer | 2014-03-24 06:55:14 +0000 | |
commit | 628a64847c3313e36e21e6d2a4960c7aace989c7 (patch) | |
tree | 6c6f7c4a35e67c44e154a435d6d2f8a8a62bdf9f | |
parent | 7f0e5fa66c7238b91999627dc8e75d234c1d9e75 (diff) | |
parent | 4c9377043060d1b68ac408fd99adc91be4c99484 (diff) | |
download | latinime-628a64847c3313e36e21e6d2a4960c7aace989c7.tar.gz latinime-628a64847c3313e36e21e6d2a4960c7aace989c7.tar.xz latinime-628a64847c3313e36e21e6d2a4960c7aace989c7.zip |
Merge "Fix: wrong size checking in SparseTable."
-rw-r--r-- | native/jni/src/suggest/policyimpl/dictionary/utils/sparse_table.cpp | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/sparse_table.cpp b/native/jni/src/suggest/policyimpl/dictionary/utils/sparse_table.cpp index c380429d9..810827dd0 100644 --- a/native/jni/src/suggest/policyimpl/dictionary/utils/sparse_table.cpp +++ b/native/jni/src/suggest/policyimpl/dictionary/utils/sparse_table.cpp @@ -41,13 +41,11 @@ uint32_t SparseTable::get(const int id) const { bool SparseTable::set(const int id, const uint32_t value) { const int posInIndexTable = getPosInIndexTable(id); // Extends the index table if needed. - if (mIndexTableBuffer->getTailPosition() < posInIndexTable) { - int tailPos = mIndexTableBuffer->getTailPosition(); - while(tailPos < posInIndexTable) { - if (!mIndexTableBuffer->writeUintAndAdvancePosition(NOT_EXIST, INDEX_SIZE, &tailPos)) { - AKLOGE("cannot extend index table. tailPos: %d to: %d", tailPos, posInIndexTable); - return false; - } + int tailPos = mIndexTableBuffer->getTailPosition(); + while (tailPos <= posInIndexTable) { + if (!mIndexTableBuffer->writeUintAndAdvancePosition(NOT_EXIST, INDEX_SIZE, &tailPos)) { + AKLOGE("cannot extend index table. tailPos: %d to: %d", tailPos, posInIndexTable); + return false; } } if (contains(id)) { |