diff --git a/native/src/unigram_dictionary.cpp b/native/src/unigram_dictionary.cpp index 334f38e5b..7e5edffaa 100644 --- a/native/src/unigram_dictionary.cpp +++ b/native/src/unigram_dictionary.cpp @@ -897,9 +897,9 @@ bool UnigramDictionary::getSplitTwoWordsSuggestion(const int inputLength, return true; } -inline bool UnigramDictionary::processCurrentNode(const int pos, const int depth, - const int maxDepth, const bool traverseAllNodes, int matchWeight, int inputIndex, - const int diffs, const int skipPos, const int excessivePos, const int transposedPos, +inline bool UnigramDictionary::processCurrentNode(const int initialPos, const int initialDepth, + const int maxDepth, const bool initialTraverseAllNodes, int matchWeight, int inputIndex, + const int initialDiffs, const int skipPos, const int excessivePos, const int transposedPos, int *nextLetters, const int nextLettersSize, int *newCount, int *newChildPosition, bool *newTraverseAllNodes, int *newMatchRate, int *newInputIndex, int *newDiffs, int *nextSiblingPosition, int *nextOutputIndex) { @@ -916,6 +916,11 @@ inline bool UnigramDictionary::processCurrentNode(const int pos, const int depth int freq; bool isSameAsUserTypedLength = false; + const int pos = initialPos; + const int depth = initialDepth; + const int traverseAllNodes = initialTraverseAllNodes; + const int diffs = initialDiffs; + const uint8_t flags = 0; // No flags for now if (excessivePos == depth && inputIndex < mInputLength - 1) ++inputIndex; @@ -1028,9 +1033,9 @@ bool UnigramDictionary::getSplitTwoWordsSuggestion(const int inputLength, return true; } -inline bool UnigramDictionary::processCurrentNode(const int pos, const int depth, - const int maxDepth, const bool traverseAllNodes, int matchWeight, int inputIndex, - const int diffs, const int skipPos, const int excessivePos, const int transposedPos, +inline bool UnigramDictionary::processCurrentNode(const int initialPos, const int initialDepth, + const int maxDepth, const bool initialTraverseAllNodes, int matchWeight, int inputIndex, + const int initialDiffs, const int skipPos, const int excessivePos, const int transposedPos, int *nextLetters, const int nextLettersSize, int *newCount, int *newChildPosition, bool *newTraverseAllNodes, int *newMatchRate, int *newInputIndex, int *newDiffs, int *nextSiblingPosition, int *newOutputIndex) { @@ -1047,6 +1052,11 @@ inline bool UnigramDictionary::processCurrentNode(const int pos, const int depth int freq; bool isSameAsUserTypedLength = false; + int pos = initialPos; + int depth = initialDepth; + int traverseAllNodes = initialTraverseAllNodes; + int diffs = initialDiffs; + const uint8_t flags = 0; // No flags for now if (excessivePos == depth && inputIndex < mInputLength - 1) ++inputIndex; diff --git a/native/src/unigram_dictionary.h b/native/src/unigram_dictionary.h index 184e85437..c3128bbf6 100644 --- a/native/src/unigram_dictionary.h +++ b/native/src/unigram_dictionary.h @@ -80,12 +80,12 @@ private: ProximityType getMatchedProximityId(const int *currentChars, const unsigned short c, const int skipPos, const int excessivePos, const int transposedPos); // Process a node by considering proximity, missing and excessive character - bool processCurrentNode(const int pos, const int depth, - const int maxDepth, const bool traverseAllNodes, const int snr, int inputIndex, - const int diffs, const int skipPos, const int excessivePos, const int transposedPos, - int *nextLetters, const int nextLettersSize, int *newCount, int *newChildPosition, - bool *newTraverseAllNodes, int *newSnr, int*newInputIndex, int *newDiffs, - int *nextSiblingPosition, int *nextOutputIndex); + bool processCurrentNode(const int initialPos, const int initialDepth, + const int maxDepth, const bool initialTraverseAllNodes, const int snr, int inputIndex, + const int initialDiffs, const int skipPos, const int excessivePos, + const int transposedPos, int *nextLetters, const int nextLettersSize, int *newCount, + int *newChildPosition, bool *newTraverseAllNodes, int *newSnr, int*newInputIndex, + int *newDiffs, int *nextSiblingPosition, int *nextOutputIndex); bool existsAdjacentProximityChars(const int inputIndex, const int inputLength) const; inline const int* getInputCharsAt(const int index) const { return mInputCodes + (index * MAX_PROXIMITY_CHARS);