diff options
author | 2013-09-10 06:45:41 +0000 | |
---|---|---|
committer | 2013-09-10 06:45:41 +0000 | |
commit | 210669605a544d5384d1f88af96b56c5fc57652d (patch) | |
tree | b138b9b81e0c18e5dcdce24514d6bd792ba9cdc4 | |
parent | 216617062a92bf11947f1dca3494775450388ca1 (diff) | |
parent | 4e79fb24abfc7a13ea5ffe8fa55fc68d99b8f713 (diff) | |
download | latinime-210669605a544d5384d1f88af96b56c5fc57652d.tar.gz latinime-210669605a544d5384d1f88af96b56c5fc57652d.tar.xz latinime-210669605a544d5384d1f88af96b56c5fc57652d.zip |
Merge "Fix: ExtendableBuffer"
-rw-r--r-- | native/jni/src/suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.cpp b/native/jni/src/suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.cpp index 6326754c2..dfdaebd18 100644 --- a/native/jni/src/suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.cpp +++ b/native/jni/src/suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.cpp @@ -66,16 +66,17 @@ bool BufferWithExtendableBuffer::writeCodePointsAndAdvancePosition(const int *co bool BufferWithExtendableBuffer::checkAndPrepareWriting(const int pos, const int size) { if (isInAdditionalBuffer(pos)) { - if (pos == mUsedAdditionalBufferSize) { + const int tailPosition = getTailPosition(); + if (pos == tailPosition) { // Append data to the tail. - if (pos + size > static_cast<int>(mAdditionalBuffer.size())) { + if (pos + size > static_cast<int>(mAdditionalBuffer.size()) + mOriginalBufferSize) { // Need to extend buffer. if (!extendBuffer()) { return false; } } mUsedAdditionalBufferSize += size; - } else if (pos + size >= mUsedAdditionalBufferSize) { + } else if (pos + size >= tailPosition) { // The access will beyond the tail of used region. return false; } |