Loading native/src/bigram_dictionary.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -111,7 +111,7 @@ int BigramDictionary::getBigrams(unsigned short *prevWord, int prevWordLength, i mMaxBigrams = maxBigrams; if (HAS_BIGRAM && IS_LATEST_DICT_VERSION) { int pos = mParentDictionary->isValidWord(prevWord, prevWordLength); int pos = mParentDictionary->getBigramPosition(prevWord, prevWordLength); if (DEBUG_DICT) { LOGI("Pos -> %d", pos); } Loading native/src/dictionary.cpp +8 −0 Original line number Diff line number Diff line Loading @@ -57,4 +57,12 @@ bool Dictionary::isValidWord(unsigned short *word, int length) { return mUnigramDictionary->isValidWord(word, length); } int Dictionary::getBigramPosition(unsigned short *word, int length) { if (IS_LATEST_DICT_VERSION) { return mUnigramDictionary->getBigramPosition(DICTIONARY_HEADER_SIZE, word, 0, length); } else { return mUnigramDictionary->getBigramPosition(0, word, 0, length); } } } // namespace latinime native/src/dictionary.h +3 −0 Original line number Diff line number Diff line Loading @@ -62,6 +62,9 @@ public: const int pos, unsigned short *c, int *childrenPosition, bool *terminal, int *freq); // TODO: delete this int getBigramPosition(unsigned short *word, int length); private: bool hasBigram(); Loading native/src/unigram_dictionary.cpp +5 −4 Original line number Diff line number Diff line Loading @@ -932,15 +932,16 @@ inline bool UnigramDictionary::processCurrentNodeForExactMatch(const int firstCh // TODO: use uint32_t instead of unsigned short bool UnigramDictionary::isValidWord(unsigned short *word, int length) { if (IS_LATEST_DICT_VERSION) { return (getFrequency(DICTIONARY_HEADER_SIZE, word, 0, length) != NOT_VALID_WORD); return (getBigramPosition(DICTIONARY_HEADER_SIZE, word, 0, length) != NOT_VALID_WORD); } else { return (getFrequency(0, word, 0, length) != NOT_VALID_WORD); return (getBigramPosition(0, word, 0, length) != NOT_VALID_WORD); } } // Require strict exact match. int UnigramDictionary::getFrequency(int pos, unsigned short *word, int offset, int length) const { int UnigramDictionary::getBigramPosition(int pos, unsigned short *word, int offset, int length) const { // returns address of bigram data of that word // return -99 if not found Loading @@ -957,7 +958,7 @@ int UnigramDictionary::getFrequency(int pos, unsigned short *word, int offset, i } } else { if (childPos != 0) { int t = getFrequency(childPos, word, offset + 1, length); int t = getBigramPosition(childPos, word, offset + 1, length); if (t > 0) { return t; } Loading native/src/unigram_dictionary.h +1 −1 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ public: int fullWordMultiplier, int maxWordLength, int maxWords, int maxProximityChars, const bool isLatestDictVersion); bool isValidWord(unsigned short *word, int length); int getBigramPosition(int pos, unsigned short *word, int offset, int length) const; int getSuggestions(const ProximityInfo *proximityInfo, const int *xcoordinates, const int *ycoordinates, const int *codes, const int codesSize, const int flags, unsigned short *outWords, int *frequencies); Loading @@ -59,7 +60,6 @@ private: void getSuggestionCandidates(const int skipPos, const int excessivePos, const int transposedPos, int *nextLetters, const int nextLettersSize, const int maxDepth); int getFrequency(int pos, unsigned short *word, int offset, int length) const; void getVersionNumber(); bool checkIfDictVersionIsLatest(); int getAddress(int *pos); Loading Loading
native/src/bigram_dictionary.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -111,7 +111,7 @@ int BigramDictionary::getBigrams(unsigned short *prevWord, int prevWordLength, i mMaxBigrams = maxBigrams; if (HAS_BIGRAM && IS_LATEST_DICT_VERSION) { int pos = mParentDictionary->isValidWord(prevWord, prevWordLength); int pos = mParentDictionary->getBigramPosition(prevWord, prevWordLength); if (DEBUG_DICT) { LOGI("Pos -> %d", pos); } Loading
native/src/dictionary.cpp +8 −0 Original line number Diff line number Diff line Loading @@ -57,4 +57,12 @@ bool Dictionary::isValidWord(unsigned short *word, int length) { return mUnigramDictionary->isValidWord(word, length); } int Dictionary::getBigramPosition(unsigned short *word, int length) { if (IS_LATEST_DICT_VERSION) { return mUnigramDictionary->getBigramPosition(DICTIONARY_HEADER_SIZE, word, 0, length); } else { return mUnigramDictionary->getBigramPosition(0, word, 0, length); } } } // namespace latinime
native/src/dictionary.h +3 −0 Original line number Diff line number Diff line Loading @@ -62,6 +62,9 @@ public: const int pos, unsigned short *c, int *childrenPosition, bool *terminal, int *freq); // TODO: delete this int getBigramPosition(unsigned short *word, int length); private: bool hasBigram(); Loading
native/src/unigram_dictionary.cpp +5 −4 Original line number Diff line number Diff line Loading @@ -932,15 +932,16 @@ inline bool UnigramDictionary::processCurrentNodeForExactMatch(const int firstCh // TODO: use uint32_t instead of unsigned short bool UnigramDictionary::isValidWord(unsigned short *word, int length) { if (IS_LATEST_DICT_VERSION) { return (getFrequency(DICTIONARY_HEADER_SIZE, word, 0, length) != NOT_VALID_WORD); return (getBigramPosition(DICTIONARY_HEADER_SIZE, word, 0, length) != NOT_VALID_WORD); } else { return (getFrequency(0, word, 0, length) != NOT_VALID_WORD); return (getBigramPosition(0, word, 0, length) != NOT_VALID_WORD); } } // Require strict exact match. int UnigramDictionary::getFrequency(int pos, unsigned short *word, int offset, int length) const { int UnigramDictionary::getBigramPosition(int pos, unsigned short *word, int offset, int length) const { // returns address of bigram data of that word // return -99 if not found Loading @@ -957,7 +958,7 @@ int UnigramDictionary::getFrequency(int pos, unsigned short *word, int offset, i } } else { if (childPos != 0) { int t = getFrequency(childPos, word, offset + 1, length); int t = getBigramPosition(childPos, word, offset + 1, length); if (t > 0) { return t; } Loading
native/src/unigram_dictionary.h +1 −1 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ public: int fullWordMultiplier, int maxWordLength, int maxWords, int maxProximityChars, const bool isLatestDictVersion); bool isValidWord(unsigned short *word, int length); int getBigramPosition(int pos, unsigned short *word, int offset, int length) const; int getSuggestions(const ProximityInfo *proximityInfo, const int *xcoordinates, const int *ycoordinates, const int *codes, const int codesSize, const int flags, unsigned short *outWords, int *frequencies); Loading @@ -59,7 +60,6 @@ private: void getSuggestionCandidates(const int skipPos, const int excessivePos, const int transposedPos, int *nextLetters, const int nextLettersSize, const int maxDepth); int getFrequency(int pos, unsigned short *word, int offset, int length) const; void getVersionNumber(); bool checkIfDictVersionIsLatest(); int getAddress(int *pos); Loading