Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0be559d9 authored by Keisuke Kuroyanagi's avatar Keisuke Kuroyanagi Committed by Android (Google) Code Review
Browse files

Merge "Use CodePointArrayView in DictionaryUtils."

parents 2b02a680 fc7d0540
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -109,7 +109,7 @@ int Dictionary::getProbability(const CodePointArrayView codePoints) const {
int Dictionary::getMaxProbabilityOfExactMatches(const CodePointArrayView codePoints) const {
    TimeKeeper::setCurrentTime();
    return DictionaryUtils::getMaxProbabilityOfExactMatches(
            mDictionaryStructureWithBufferPolicy.get(), codePoints.data(), codePoints.size());
            mDictionaryStructureWithBufferPolicy.get(), codePoints);
}

int Dictionary::getNgramProbability(const PrevWordsInfo *const prevWordsInfo,
+5 −5
Original line number Diff line number Diff line
@@ -29,7 +29,7 @@ namespace latinime {

/* static */ int DictionaryUtils::getMaxProbabilityOfExactMatches(
        const DictionaryStructureWithBufferPolicy *const dictionaryStructurePolicy,
        const int *const codePoints, const int codePointCount) {
        const CodePointArrayView codePoints) {
    std::vector<DicNode> current;
    std::vector<DicNode> next;

@@ -40,16 +40,16 @@ namespace latinime {
            dictionaryStructurePolicy, &prevWordIdArray, false /* tryLowerCaseSearch */);
    current.emplace_back();
    DicNodeUtils::initAsRoot(dictionaryStructurePolicy, prevWordIds, &current.front());
    for (int i = 0; i < codePointCount; ++i) {
    for (const int codePoint : codePoints) {
        // The base-lower input is used to ignore case errors and accent errors.
        const int codePoint = CharUtils::toBaseLowerCase(codePoints[i]);
        const int baseLowerCodePoint = CharUtils::toBaseLowerCase(codePoint);
        for (const DicNode &dicNode : current) {
            if (dicNode.isInDigraph() && dicNode.getNodeCodePoint() == codePoint) {
            if (dicNode.isInDigraph() && dicNode.getNodeCodePoint() == baseLowerCodePoint) {
                next.emplace_back(dicNode);
                next.back().advanceDigraphIndex();
                continue;
            }
            processChildDicNodes(dictionaryStructurePolicy, codePoint, &dicNode, &next);
            processChildDicNodes(dictionaryStructurePolicy, baseLowerCodePoint, &dicNode, &next);
        }
        current.clear();
        current.swap(next);
+2 −1
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@
#include <vector>

#include "defines.h"
#include "utils/int_array_view.h"

namespace latinime {

@@ -30,7 +31,7 @@ class DictionaryUtils {
 public:
    static int getMaxProbabilityOfExactMatches(
            const DictionaryStructureWithBufferPolicy *const dictionaryStructurePolicy,
            const int *const codePoints, const int codePointCount);
            const CodePointArrayView codePoints);

 private:
    DISALLOW_IMPLICIT_CONSTRUCTORS(DictionaryUtils);