am 21066960: Merge "Fix: ExtendableBuffer"

* commit '210669605a544d5384d1f88af96b56c5fc57652d':
  Fix: ExtendableBuffer
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 6326754..dfdaebd 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::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;
         }