diff --git a/native/jni/src/suggest/core/dicnode/dic_node_utils.cpp b/native/jni/src/suggest/core/dicnode/dic_node_utils.cpp index 5540b6df53035739ffdab4dc05da7998078e9352..71bcab6cba053e21720777d3a309739b39488ca2 100644 --- a/native/jni/src/suggest/core/dicnode/dic_node_utils.cpp +++ b/native/jni/src/suggest/core/dicnode/dic_node_utils.cpp @@ -118,7 +118,7 @@ namespace latinime { actualLength0 = i + 1; } actualLength0 = min(actualLength0, MAX_WORD_LENGTH); - memcpy(dest, src0, actualLength0 * sizeof(dest[0])); + memmove(dest, src0, actualLength0 * sizeof(dest[0])); if (!src1 || length1 == 0) { return actualLength0; } @@ -130,7 +130,7 @@ namespace latinime { actualLength1 = i + 1; } actualLength1 = min(actualLength1, MAX_WORD_LENGTH - actualLength0); - memcpy(&dest[actualLength0], src1, actualLength1 * sizeof(dest[0])); + memmove(&dest[actualLength0], src1, actualLength1 * sizeof(dest[0])); return actualLength0 + actualLength1; } } // namespace latinime diff --git a/native/jni/src/suggest/core/dicnode/internal/dic_node_state_output.h b/native/jni/src/suggest/core/dicnode/internal/dic_node_state_output.h index 74eb5dfe78b9330e44e163708f519c18804db709..fc6851099a31cc1fde66698ab470e262403abc9b 100644 --- a/native/jni/src/suggest/core/dicnode/internal/dic_node_state_output.h +++ b/native/jni/src/suggest/core/dicnode/internal/dic_node_state_output.h @@ -17,7 +17,7 @@ #ifndef LATINIME_DIC_NODE_STATE_OUTPUT_H #define LATINIME_DIC_NODE_STATE_OUTPUT_H -#include <cstring> // for memcpy() +#include <cstring> // for memmove() #include <stdint.h> #include "defines.h" @@ -38,7 +38,7 @@ class DicNodeStateOutput { } void init(const DicNodeStateOutput *const stateOutput) { - memcpy(mCodePointsBuf, stateOutput->mCodePointsBuf, + memmove(mCodePointsBuf, stateOutput->mCodePointsBuf, stateOutput->mOutputtedCodePointCount * sizeof(mCodePointsBuf[0])); mOutputtedCodePointCount = stateOutput->mOutputtedCodePointCount; if (mOutputtedCodePointCount < MAX_WORD_LENGTH) { @@ -51,7 +51,7 @@ class DicNodeStateOutput { if (mergedNodeCodePoints) { const int additionalCodePointCount = min(static_cast<int>(mergedNodeCodePointCount), MAX_WORD_LENGTH - mOutputtedCodePointCount); - memcpy(&mCodePointsBuf[mOutputtedCodePointCount], mergedNodeCodePoints, + memmove(&mCodePointsBuf[mOutputtedCodePointCount], mergedNodeCodePoints, additionalCodePointCount * sizeof(mCodePointsBuf[0])); mOutputtedCodePointCount = static_cast<uint16_t>( mOutputtedCodePointCount + mergedNodeCodePointCount); diff --git a/native/jni/src/suggest/core/dicnode/internal/dic_node_state_prevword.h b/native/jni/src/suggest/core/dicnode/internal/dic_node_state_prevword.h index dba57056b825c263f065b6d82c0a3ba5ba3c2440..e7108d976ee3070f0064d714081ca4806b62dd65 100644 --- a/native/jni/src/suggest/core/dicnode/internal/dic_node_state_prevword.h +++ b/native/jni/src/suggest/core/dicnode/internal/dic_node_state_prevword.h @@ -17,7 +17,7 @@ #ifndef LATINIME_DIC_NODE_STATE_PREVWORD_H #define LATINIME_DIC_NODE_STATE_PREVWORD_H -#include <cstring> // for memset() +#include <cstring> // for memset() and memmove() #include <stdint.h> #include "defines.h" @@ -62,7 +62,7 @@ class DicNodeStatePrevWord { mPrevWordProbability = prevWord->mPrevWordProbability; mPrevWordPtNodePos = prevWord->mPrevWordPtNodePos; mSecondWordFirstInputIndex = prevWord->mSecondWordFirstInputIndex; - memcpy(mPrevWord, prevWord->mPrevWord, prevWord->mPrevWordLength * sizeof(mPrevWord[0])); + memmove(mPrevWord, prevWord->mPrevWord, prevWord->mPrevWordLength * sizeof(mPrevWord[0])); } void init(const int16_t prevWordCount, const int16_t prevWordProbability, diff --git a/native/jni/src/suggest/core/layout/proximity_info_state.cpp b/native/jni/src/suggest/core/layout/proximity_info_state.cpp index de99e2f0cecdab81768ca044005f9d7c3b435035..40c3448ef415fcc645fa4886cadf345074eee941 100644 --- a/native/jni/src/suggest/core/layout/proximity_info_state.cpp +++ b/native/jni/src/suggest/core/layout/proximity_info_state.cpp @@ -18,7 +18,7 @@ #include "suggest/core/layout/proximity_info_state.h" -#include <cstring> // for memset() and memcpy() +#include <cstring> // for memset() and memmove() #include <sstream> // for debug prints #include <vector> @@ -285,7 +285,7 @@ float ProximityInfoState::getDirection(const int index0, const int index1) const } float ProximityInfoState::getMostProbableString(int *const codePointBuf) const { - memcpy(codePointBuf, mMostProbableString, sizeof(mMostProbableString)); + memmove(codePointBuf, mMostProbableString, sizeof(mMostProbableString)); return mMostProbableStringProbability; }