diff options
author | 2014-09-03 18:33:10 +0900 | |
---|---|---|
committer | 2014-09-03 18:33:10 +0900 | |
commit | ac983b13a9ee97d9a1a0ecd4a12dff5b2e2552e5 (patch) | |
tree | 9a16f3624bb1a61cfa59727bcc7f0398bacd2d0b /native/jni/src | |
parent | 847a026cd81f52f7aee0d5fd75c14a3f8619ebaf (diff) | |
download | latinime-ac983b13a9ee97d9a1a0ecd4a12dff5b2e2552e5.tar.gz latinime-ac983b13a9ee97d9a1a0ecd4a12dff5b2e2552e5.tar.xz latinime-ac983b13a9ee97d9a1a0ecd4a12dff5b2e2552e5.zip |
Use word id to get shortcut iterator.
Bug: 14425059
Change-Id: I1b35a139bd29f70b328cbc82648783b99f633d72
Diffstat (limited to 'native/jni/src')
8 files changed, 17 insertions, 15 deletions
diff --git a/native/jni/src/suggest/core/policy/dictionary_structure_with_buffer_policy.h b/native/jni/src/suggest/core/policy/dictionary_structure_with_buffer_policy.h index e62543d67..36fa6e854 100644 --- a/native/jni/src/suggest/core/policy/dictionary_structure_with_buffer_policy.h +++ b/native/jni/src/suggest/core/policy/dictionary_structure_with_buffer_policy.h @@ -63,7 +63,7 @@ class DictionaryStructureWithBufferPolicy { virtual void iterateNgramEntries(const int *const prevWordIds, NgramListener *const listener) const = 0; - virtual BinaryDictionaryShortcutIterator getShortcutIterator(const int ptNodePos) const = 0; + virtual BinaryDictionaryShortcutIterator getShortcutIterator(const int wordId) const = 0; virtual const DictionaryHeaderStructurePolicy *getHeaderStructurePolicy() const = 0; diff --git a/native/jni/src/suggest/core/result/suggestions_output_utils.cpp b/native/jni/src/suggest/core/result/suggestions_output_utils.cpp index bd2aa5f00..ad860c4a4 100644 --- a/native/jni/src/suggest/core/result/suggestions_output_utils.cpp +++ b/native/jni/src/suggest/core/result/suggestions_output_utils.cpp @@ -141,7 +141,7 @@ const int SuggestionsOutputUtils::MIN_LEN_FOR_MULTI_WORD_AUTOCORRECT = 16; if (!terminalDicNode->hasMultipleWords()) { BinaryDictionaryShortcutIterator shortcutIt = traverseSession->getDictionaryStructurePolicy()->getShortcutIterator( - terminalDicNode->getPtNodePos()); + terminalDicNode->getWordId()); const bool sameAsTyped = scoringPolicy->sameAsTyped(traverseSession, terminalDicNode); outputShortcuts(&shortcutIt, finalScore, sameAsTyped, outSuggestionResults); } diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.cpp index eb7d45193..28c5eb105 100644 --- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.cpp +++ b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.cpp @@ -175,8 +175,8 @@ void Ver4PatriciaTriePolicy::iterateNgramEntries(const int *const prevWordIds, } BinaryDictionaryShortcutIterator Ver4PatriciaTriePolicy::getShortcutIterator( - const int ptNodePos) const { - const int shortcutPos = getShortcutPositionOfPtNode(ptNodePos); + const int wordId) const { + const int shortcutPos = getShortcutPositionOfPtNode(getTerminalPtNodePosFromWordId(wordId)); return BinaryDictionaryShortcutIterator(&mShortcutPolicy, shortcutPos); } diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.h b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.h index 55b71036e..bead2ff23 100644 --- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.h +++ b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.h @@ -97,7 +97,7 @@ class Ver4PatriciaTriePolicy : public DictionaryStructureWithBufferPolicy { void iterateNgramEntries(const int *const prevWordIds, NgramListener *const listener) const; - BinaryDictionaryShortcutIterator getShortcutIterator(const int ptNodePos) const; + BinaryDictionaryShortcutIterator getShortcutIterator(const int wordId) const; const DictionaryHeaderStructurePolicy *getHeaderStructurePolicy() const { return mHeaderPolicy; diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.cpp index 12196fcbc..88fe3efd3 100644 --- a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.cpp +++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.cpp @@ -342,8 +342,8 @@ void PatriciaTriePolicy::iterateNgramEntries(const int *const prevWordIds, } BinaryDictionaryShortcutIterator PatriciaTriePolicy::getShortcutIterator( - const int ptNodePos) const { - const int shortcutPos = getShortcutPositionOfPtNode(ptNodePos); + const int wordId) const { + const int shortcutPos = getShortcutPositionOfPtNode(getTerminalPtNodePosFromWordId(wordId)); return BinaryDictionaryShortcutIterator(&mShortcutListPolicy, shortcutPos); } diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.h b/native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.h index 95963bedb..08c3e1ddc 100644 --- a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.h +++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.h @@ -72,7 +72,7 @@ class PatriciaTriePolicy : public DictionaryStructureWithBufferPolicy { void iterateNgramEntries(const int *const prevWordIds, NgramListener *const listener) const; - BinaryDictionaryShortcutIterator getShortcutIterator(const int ptNodePos) const; + BinaryDictionaryShortcutIterator getShortcutIterator(const int wordId) const; const DictionaryHeaderStructurePolicy *getHeaderStructurePolicy() const { return &mHeaderPolicy; diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.cpp index 04f43f6cc..e11b94cdc 100644 --- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.cpp +++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.cpp @@ -157,8 +157,8 @@ int Ver4PatriciaTriePolicy::getProbabilityOfWord(const int *const prevWordIds, } BinaryDictionaryShortcutIterator Ver4PatriciaTriePolicy::getShortcutIterator( - const int ptNodePos) const { - const int shortcutPos = getShortcutPositionOfPtNode(ptNodePos); + const int wordId) const { + const int shortcutPos = getShortcutPositionOfWord(wordId); return BinaryDictionaryShortcutIterator(&mShortcutPolicy, shortcutPos); } @@ -180,10 +180,12 @@ void Ver4PatriciaTriePolicy::iterateNgramEntries(const int *const prevWordIds, } } -int Ver4PatriciaTriePolicy::getShortcutPositionOfPtNode(const int ptNodePos) const { - if (ptNodePos == NOT_A_DICT_POS) { +int Ver4PatriciaTriePolicy::getShortcutPositionOfWord(const int wordId) const { + if (wordId == NOT_A_WORD_ID) { return NOT_A_DICT_POS; } + const int ptNodePos = + mBuffers->getTerminalPositionLookupTable()->getTerminalPtNodePosition(wordId); const PtNodeParams ptNodeParams(mNodeReader.fetchPtNodeParamsInBufferFromPtNodePos(ptNodePos)); if (ptNodeParams.isDeleted()) { return NOT_A_DICT_POS; @@ -511,7 +513,7 @@ const WordProperty Ver4PatriciaTriePolicy::getWordProperty( } // Fetch shortcut information. std::vector<UnigramProperty::ShortcutProperty> shortcuts; - int shortcutPos = getShortcutPositionOfPtNode(ptNodePos); + int shortcutPos = getShortcutPositionOfWord(wordId); if (shortcutPos != NOT_A_DICT_POS) { int shortcutTarget[MAX_WORD_LENGTH]; const ShortcutDictContent *const shortcutDictContent = diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.h b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.h index 84357264b..9dc83d8da 100644 --- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.h +++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.h @@ -74,7 +74,7 @@ class Ver4PatriciaTriePolicy : public DictionaryStructureWithBufferPolicy { void iterateNgramEntries(const int *const prevWordIds, NgramListener *const listener) const; - BinaryDictionaryShortcutIterator getShortcutIterator(const int ptNodePos) const; + BinaryDictionaryShortcutIterator getShortcutIterator(const int wordId) const; const DictionaryHeaderStructurePolicy *getHeaderStructurePolicy() const { return mHeaderPolicy; @@ -135,7 +135,7 @@ class Ver4PatriciaTriePolicy : public DictionaryStructureWithBufferPolicy { std::vector<int> mTerminalPtNodePositionsForIteratingWords; mutable bool mIsCorrupted; - int getShortcutPositionOfPtNode(const int ptNodePos) const; + int getShortcutPositionOfWord(const int wordId) const; }; } // namespace latinime #endif // LATINIME_VER4_PATRICIA_TRIE_POLICY_H |