Loading native/jni/src/suggest/core/dicnode/dic_node.h +5 −10 Original line number Diff line number Diff line Loading @@ -135,15 +135,15 @@ class DicNode { PROF_NODE_COPY(&parentDicNode->mProfiler, mProfiler); } void initAsChild(const DicNode *const dicNode, const int ptNodePos, const int childrenPtNodeArrayPos, const int probability, const int wordId, const bool hasChildren, const bool isBlacklistedOrNotAWord, const uint16_t mergedNodeCodePointCount, const int *const mergedNodeCodePoints) { void initAsChild(const DicNode *const dicNode, const int childrenPtNodeArrayPos, const int probability, const int wordId, const bool hasChildren, const bool isBlacklistedOrNotAWord, const uint16_t mergedNodeCodePointCount, const int *const mergedNodeCodePoints) { uint16_t newDepth = static_cast<uint16_t>(dicNode->getNodeCodePointCount() + 1); mIsCachedForNextSuggestion = dicNode->mIsCachedForNextSuggestion; const uint16_t newLeavingDepth = static_cast<uint16_t>( dicNode->mDicNodeProperties.getLeavingDepth() + mergedNodeCodePointCount); mDicNodeProperties.init(ptNodePos, childrenPtNodeArrayPos, mergedNodeCodePoints[0], mDicNodeProperties.init(childrenPtNodeArrayPos, mergedNodeCodePoints[0], probability, wordId, hasChildren, isBlacklistedOrNotAWord, newDepth, newLeavingDepth, dicNode->mDicNodeProperties.getPrevWordIds()); mDicNodeState.init(&dicNode->mDicNodeState, mergedNodeCodePointCount, Loading Loading @@ -208,11 +208,6 @@ class DicNode { return mDicNodeProperties.getWordId(); } // TODO: Remove int getPtNodePos() const { return mDicNodeProperties.getPtNodePos(); } // TODO: Use view class to return word id array. const int *getPrevWordIds() const { return mDicNodeProperties.getPrevWordIds(); Loading native/jni/src/suggest/core/dicnode/dic_node_vector.h +5 −5 Original line number Diff line number Diff line Loading @@ -58,13 +58,13 @@ class DicNodeVector { mDicNodes.back().initAsPassingChild(dicNode); } void pushLeavingChild(const DicNode *const dicNode, const int ptNodePos, const int childrenPtNodeArrayPos, const int probability, const int wordId, const bool hasChildren, const bool isBlacklistedOrNotAWord, const uint16_t mergedNodeCodePointCount, const int *const mergedNodeCodePoints) { void pushLeavingChild(const DicNode *const dicNode, const int childrenPtNodeArrayPos, const int probability, const int wordId, const bool hasChildren, const bool isBlacklistedOrNotAWord, const uint16_t mergedNodeCodePointCount, const int *const mergedNodeCodePoints) { ASSERT(!mLock); mDicNodes.emplace_back(); mDicNodes.back().initAsChild(dicNode, ptNodePos, childrenPtNodeArrayPos, probability, mDicNodes.back().initAsChild(dicNode, childrenPtNodeArrayPos, probability, wordId, hasChildren, isBlacklistedOrNotAWord, mergedNodeCodePointCount, mergedNodeCodePoints); } Loading native/jni/src/suggest/core/dicnode/internal/dic_node_properties.h +5 −14 Original line number Diff line number Diff line Loading @@ -29,18 +29,17 @@ namespace latinime { class DicNodeProperties { public: AK_FORCE_INLINE DicNodeProperties() : mPtNodePos(NOT_A_DICT_POS), mChildrenPtNodeArrayPos(NOT_A_DICT_POS), mProbability(NOT_A_PROBABILITY), mDicNodeCodePoint(NOT_A_CODE_POINT), mWordId(NOT_A_WORD_ID), mHasChildrenPtNodes(false), mIsBlacklistedOrNotAWord(false), mDepth(0), mLeavingDepth(0) {} : mChildrenPtNodeArrayPos(NOT_A_DICT_POS), mProbability(NOT_A_PROBABILITY), mDicNodeCodePoint(NOT_A_CODE_POINT), mWordId(NOT_A_WORD_ID), mHasChildrenPtNodes(false), mIsBlacklistedOrNotAWord(false), mDepth(0), mLeavingDepth(0) {} ~DicNodeProperties() {} // Should be called only once per DicNode is initialized. void init(const int pos, const int childrenPos, const int nodeCodePoint, const int probability, void init(const int childrenPos, const int nodeCodePoint, const int probability, const int wordId, const bool hasChildren, const bool isBlacklistedOrNotAWord, const uint16_t depth, const uint16_t leavingDepth, const int *const prevWordIds) { mPtNodePos = pos; mChildrenPtNodeArrayPos = childrenPos; mDicNodeCodePoint = nodeCodePoint; mProbability = probability; Loading @@ -54,7 +53,6 @@ class DicNodeProperties { // Init for root with prevWordsPtNodePos which is used for n-gram void init(const int rootPtNodeArrayPos, const int *const prevWordIds) { mPtNodePos = NOT_A_DICT_POS; mChildrenPtNodeArrayPos = rootPtNodeArrayPos; mDicNodeCodePoint = NOT_A_CODE_POINT; mProbability = NOT_A_PROBABILITY; Loading @@ -67,7 +65,6 @@ class DicNodeProperties { } void initByCopy(const DicNodeProperties *const dicNodeProp) { mPtNodePos = dicNodeProp->mPtNodePos; mChildrenPtNodeArrayPos = dicNodeProp->mChildrenPtNodeArrayPos; mDicNodeCodePoint = dicNodeProp->mDicNodeCodePoint; mProbability = dicNodeProp->mProbability; Loading @@ -81,7 +78,6 @@ class DicNodeProperties { // Init as passing child void init(const DicNodeProperties *const dicNodeProp, const int codePoint) { mPtNodePos = dicNodeProp->mPtNodePos; mChildrenPtNodeArrayPos = dicNodeProp->mChildrenPtNodeArrayPos; mDicNodeCodePoint = codePoint; // Overwrite the node char of a passing child mProbability = dicNodeProp->mProbability; Loading @@ -93,10 +89,6 @@ class DicNodeProperties { memmove(mPrevWordIds, dicNodeProp->mPrevWordIds, sizeof(mPrevWordIds)); } int getPtNodePos() const { return mPtNodePos; } int getChildrenPtNodeArrayPos() const { return mChildrenPtNodeArrayPos; } Loading Loading @@ -142,7 +134,6 @@ class DicNodeProperties { // Caution!!! // Use a default copy constructor and an assign operator because shallow copies are ok // for this class int mPtNodePos; int mChildrenPtNodeArrayPos; int mProbability; int mDicNodeCodePoint; Loading native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.cpp +2 −3 Original line number Diff line number Diff line Loading @@ -77,9 +77,8 @@ void Ver4PatriciaTriePolicy::createAndGetAllChildDicNodes(const DicNode *const d continue; } const int wordId = isTerminal ? ptNodeParams.getHeadPos() : NOT_A_WORD_ID; childDicNodes->pushLeavingChild(dicNode, ptNodeParams.getHeadPos(), ptNodeParams.getChildrenPos(), ptNodeParams.getProbability(), wordId, ptNodeParams.hasChildren(), childDicNodes->pushLeavingChild(dicNode, ptNodeParams.getChildrenPos(), ptNodeParams.getProbability(), wordId, ptNodeParams.hasChildren(), ptNodeParams.isBlacklisted() || ptNodeParams.isNotAWord() /* isBlacklistedOrNotAWord */, ptNodeParams.getCodePointCount(), ptNodeParams.getCodePoints()); Loading native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -377,7 +377,7 @@ int PatriciaTriePolicy::createAndGetLeavingChildNode(const DicNode *const dicNod // Skip PtNodes don't start with Unicode code point because they represent non-word information. if (CharUtils::isInUnicodeSpace(mergedNodeCodePoints[0])) { const int wordId = PatriciaTrieReadingUtils::isTerminal(flags) ? ptNodePos : NOT_A_WORD_ID; childDicNodes->pushLeavingChild(dicNode, ptNodePos, childrenPos, probability, wordId, childDicNodes->pushLeavingChild(dicNode, childrenPos, probability, wordId, PatriciaTrieReadingUtils::hasChildrenInFlags(flags), PatriciaTrieReadingUtils::isBlacklisted(flags) || PatriciaTrieReadingUtils::isNotAWord(flags), Loading Loading
native/jni/src/suggest/core/dicnode/dic_node.h +5 −10 Original line number Diff line number Diff line Loading @@ -135,15 +135,15 @@ class DicNode { PROF_NODE_COPY(&parentDicNode->mProfiler, mProfiler); } void initAsChild(const DicNode *const dicNode, const int ptNodePos, const int childrenPtNodeArrayPos, const int probability, const int wordId, const bool hasChildren, const bool isBlacklistedOrNotAWord, const uint16_t mergedNodeCodePointCount, const int *const mergedNodeCodePoints) { void initAsChild(const DicNode *const dicNode, const int childrenPtNodeArrayPos, const int probability, const int wordId, const bool hasChildren, const bool isBlacklistedOrNotAWord, const uint16_t mergedNodeCodePointCount, const int *const mergedNodeCodePoints) { uint16_t newDepth = static_cast<uint16_t>(dicNode->getNodeCodePointCount() + 1); mIsCachedForNextSuggestion = dicNode->mIsCachedForNextSuggestion; const uint16_t newLeavingDepth = static_cast<uint16_t>( dicNode->mDicNodeProperties.getLeavingDepth() + mergedNodeCodePointCount); mDicNodeProperties.init(ptNodePos, childrenPtNodeArrayPos, mergedNodeCodePoints[0], mDicNodeProperties.init(childrenPtNodeArrayPos, mergedNodeCodePoints[0], probability, wordId, hasChildren, isBlacklistedOrNotAWord, newDepth, newLeavingDepth, dicNode->mDicNodeProperties.getPrevWordIds()); mDicNodeState.init(&dicNode->mDicNodeState, mergedNodeCodePointCount, Loading Loading @@ -208,11 +208,6 @@ class DicNode { return mDicNodeProperties.getWordId(); } // TODO: Remove int getPtNodePos() const { return mDicNodeProperties.getPtNodePos(); } // TODO: Use view class to return word id array. const int *getPrevWordIds() const { return mDicNodeProperties.getPrevWordIds(); Loading
native/jni/src/suggest/core/dicnode/dic_node_vector.h +5 −5 Original line number Diff line number Diff line Loading @@ -58,13 +58,13 @@ class DicNodeVector { mDicNodes.back().initAsPassingChild(dicNode); } void pushLeavingChild(const DicNode *const dicNode, const int ptNodePos, const int childrenPtNodeArrayPos, const int probability, const int wordId, const bool hasChildren, const bool isBlacklistedOrNotAWord, const uint16_t mergedNodeCodePointCount, const int *const mergedNodeCodePoints) { void pushLeavingChild(const DicNode *const dicNode, const int childrenPtNodeArrayPos, const int probability, const int wordId, const bool hasChildren, const bool isBlacklistedOrNotAWord, const uint16_t mergedNodeCodePointCount, const int *const mergedNodeCodePoints) { ASSERT(!mLock); mDicNodes.emplace_back(); mDicNodes.back().initAsChild(dicNode, ptNodePos, childrenPtNodeArrayPos, probability, mDicNodes.back().initAsChild(dicNode, childrenPtNodeArrayPos, probability, wordId, hasChildren, isBlacklistedOrNotAWord, mergedNodeCodePointCount, mergedNodeCodePoints); } Loading
native/jni/src/suggest/core/dicnode/internal/dic_node_properties.h +5 −14 Original line number Diff line number Diff line Loading @@ -29,18 +29,17 @@ namespace latinime { class DicNodeProperties { public: AK_FORCE_INLINE DicNodeProperties() : mPtNodePos(NOT_A_DICT_POS), mChildrenPtNodeArrayPos(NOT_A_DICT_POS), mProbability(NOT_A_PROBABILITY), mDicNodeCodePoint(NOT_A_CODE_POINT), mWordId(NOT_A_WORD_ID), mHasChildrenPtNodes(false), mIsBlacklistedOrNotAWord(false), mDepth(0), mLeavingDepth(0) {} : mChildrenPtNodeArrayPos(NOT_A_DICT_POS), mProbability(NOT_A_PROBABILITY), mDicNodeCodePoint(NOT_A_CODE_POINT), mWordId(NOT_A_WORD_ID), mHasChildrenPtNodes(false), mIsBlacklistedOrNotAWord(false), mDepth(0), mLeavingDepth(0) {} ~DicNodeProperties() {} // Should be called only once per DicNode is initialized. void init(const int pos, const int childrenPos, const int nodeCodePoint, const int probability, void init(const int childrenPos, const int nodeCodePoint, const int probability, const int wordId, const bool hasChildren, const bool isBlacklistedOrNotAWord, const uint16_t depth, const uint16_t leavingDepth, const int *const prevWordIds) { mPtNodePos = pos; mChildrenPtNodeArrayPos = childrenPos; mDicNodeCodePoint = nodeCodePoint; mProbability = probability; Loading @@ -54,7 +53,6 @@ class DicNodeProperties { // Init for root with prevWordsPtNodePos which is used for n-gram void init(const int rootPtNodeArrayPos, const int *const prevWordIds) { mPtNodePos = NOT_A_DICT_POS; mChildrenPtNodeArrayPos = rootPtNodeArrayPos; mDicNodeCodePoint = NOT_A_CODE_POINT; mProbability = NOT_A_PROBABILITY; Loading @@ -67,7 +65,6 @@ class DicNodeProperties { } void initByCopy(const DicNodeProperties *const dicNodeProp) { mPtNodePos = dicNodeProp->mPtNodePos; mChildrenPtNodeArrayPos = dicNodeProp->mChildrenPtNodeArrayPos; mDicNodeCodePoint = dicNodeProp->mDicNodeCodePoint; mProbability = dicNodeProp->mProbability; Loading @@ -81,7 +78,6 @@ class DicNodeProperties { // Init as passing child void init(const DicNodeProperties *const dicNodeProp, const int codePoint) { mPtNodePos = dicNodeProp->mPtNodePos; mChildrenPtNodeArrayPos = dicNodeProp->mChildrenPtNodeArrayPos; mDicNodeCodePoint = codePoint; // Overwrite the node char of a passing child mProbability = dicNodeProp->mProbability; Loading @@ -93,10 +89,6 @@ class DicNodeProperties { memmove(mPrevWordIds, dicNodeProp->mPrevWordIds, sizeof(mPrevWordIds)); } int getPtNodePos() const { return mPtNodePos; } int getChildrenPtNodeArrayPos() const { return mChildrenPtNodeArrayPos; } Loading Loading @@ -142,7 +134,6 @@ class DicNodeProperties { // Caution!!! // Use a default copy constructor and an assign operator because shallow copies are ok // for this class int mPtNodePos; int mChildrenPtNodeArrayPos; int mProbability; int mDicNodeCodePoint; Loading
native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.cpp +2 −3 Original line number Diff line number Diff line Loading @@ -77,9 +77,8 @@ void Ver4PatriciaTriePolicy::createAndGetAllChildDicNodes(const DicNode *const d continue; } const int wordId = isTerminal ? ptNodeParams.getHeadPos() : NOT_A_WORD_ID; childDicNodes->pushLeavingChild(dicNode, ptNodeParams.getHeadPos(), ptNodeParams.getChildrenPos(), ptNodeParams.getProbability(), wordId, ptNodeParams.hasChildren(), childDicNodes->pushLeavingChild(dicNode, ptNodeParams.getChildrenPos(), ptNodeParams.getProbability(), wordId, ptNodeParams.hasChildren(), ptNodeParams.isBlacklisted() || ptNodeParams.isNotAWord() /* isBlacklistedOrNotAWord */, ptNodeParams.getCodePointCount(), ptNodeParams.getCodePoints()); Loading
native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -377,7 +377,7 @@ int PatriciaTriePolicy::createAndGetLeavingChildNode(const DicNode *const dicNod // Skip PtNodes don't start with Unicode code point because they represent non-word information. if (CharUtils::isInUnicodeSpace(mergedNodeCodePoints[0])) { const int wordId = PatriciaTrieReadingUtils::isTerminal(flags) ? ptNodePos : NOT_A_WORD_ID; childDicNodes->pushLeavingChild(dicNode, ptNodePos, childrenPos, probability, wordId, childDicNodes->pushLeavingChild(dicNode, childrenPos, probability, wordId, PatriciaTrieReadingUtils::hasChildrenInFlags(flags), PatriciaTrieReadingUtils::isBlacklisted(flags) || PatriciaTrieReadingUtils::isNotAWord(flags), Loading