aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKeisuke Kuroyanagi <ksk@google.com>2014-03-24 06:55:14 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-03-24 06:55:14 +0000
commit628a64847c3313e36e21e6d2a4960c7aace989c7 (patch)
tree6c6f7c4a35e67c44e154a435d6d2f8a8a62bdf9f
parent7f0e5fa66c7238b91999627dc8e75d234c1d9e75 (diff)
parent4c9377043060d1b68ac408fd99adc91be4c99484 (diff)
downloadlatinime-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.cpp12
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)) {