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

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

Merge "Use reference instead of pointer for WordProperty()."

parents d158c430 bbf0d414
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -586,7 +586,7 @@ static bool latinime_BinaryDictionary_migrateNative(JNIEnv *env, jclass clazz, j
        }
        if (!dictionaryStructureWithBufferPolicy->addUnigramEntry(
                CodePointArrayView(wordCodePoints, wordCodePointCount),
                wordProperty.getUnigramProperty())) {
                &wordProperty.getUnigramProperty())) {
            LogUtils::logToJava(env, "Cannot add unigram to the new dict.");
            return false;
        }
@@ -605,7 +605,7 @@ static bool latinime_BinaryDictionary_migrateNative(JNIEnv *env, jclass clazz, j
                return false;
            }
        }
        for (const NgramProperty &ngramProperty : *wordProperty.getNgramProperties()) {
        for (const NgramProperty &ngramProperty : wordProperty.getNgramProperties()) {
            if (!dictionaryStructureWithBufferPolicy->addNgramEntry(&ngramProperty)) {
                LogUtils::logToJava(env, "Cannot add ngram to the new dict.");
                return false;
+13 −8
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@
#include "jni.h"
#include "suggest/core/dictionary/property/ngram_property.h"
#include "suggest/core/dictionary/property/unigram_property.h"
#include "utils/int_array_view.h"

namespace latinime {

@@ -33,10 +34,10 @@ class WordProperty {
    WordProperty()
            : mCodePoints(), mUnigramProperty(), mNgrams() {}

    WordProperty(const std::vector<int> &&codePoints, const UnigramProperty *const unigramProperty,
            const std::vector<NgramProperty> *const ngrams)
            : mCodePoints(std::move(codePoints)), mUnigramProperty(*unigramProperty),
              mNgrams(*ngrams) {}
    WordProperty(const std::vector<int> &&codePoints, const UnigramProperty &unigramProperty,
            const std::vector<NgramProperty> &ngrams)
            : mCodePoints(std::move(codePoints)), mUnigramProperty(unigramProperty),
              mNgrams(ngrams) {}

    void outputProperties(JNIEnv *const env, jintArray outCodePoints, jbooleanArray outFlags,
            jintArray outProbabilityInfo, jobject outNgramPrevWordsArray,
@@ -44,12 +45,16 @@ class WordProperty {
            jobject outNgramProbabilities, jobject outShortcutTargets,
            jobject outShortcutProbabilities) const;

    const UnigramProperty *getUnigramProperty() const {
        return &mUnigramProperty;
    const CodePointArrayView getCodePoints() const {
        return CodePointArrayView(mCodePoints);
    }

    const std::vector<NgramProperty> *getNgramProperties() const {
        return &mNgrams;
    const UnigramProperty &getUnigramProperty() const {
        return mUnigramProperty;
    }

    const std::vector<NgramProperty> &getNgramProperties() const {
        return mNgrams;
    }

 private:
+1 −1
Original line number Diff line number Diff line
@@ -614,7 +614,7 @@ const WordProperty Ver4PatriciaTriePolicy::getWordProperty(
    const UnigramProperty unigramProperty(ptNodeParams.representsBeginningOfSentence(),
            ptNodeParams.isNotAWord(), ptNodeParams.isPossiblyOffensive(),
            ptNodeParams.getProbability(), *historicalInfo, std::move(shortcuts));
    return WordProperty(wordCodePoints.toVector(), &unigramProperty, &ngrams);
    return WordProperty(wordCodePoints.toVector(), unigramProperty, ngrams);
}

int Ver4PatriciaTriePolicy::getNextWordAndNextToken(const int token, int *const outCodePoints,
+1 −1
Original line number Diff line number Diff line
@@ -478,7 +478,7 @@ const WordProperty PatriciaTriePolicy::getWordProperty(
    const UnigramProperty unigramProperty(ptNodeParams.representsBeginningOfSentence(),
            ptNodeParams.isNotAWord(), ptNodeParams.isPossiblyOffensive(),
            ptNodeParams.getProbability(), HistoricalInfo(), std::move(shortcuts));
    return WordProperty(wordCodePoints.toVector(), &unigramProperty, &ngrams);
    return WordProperty(wordCodePoints.toVector(), unigramProperty, ngrams);
}

int PatriciaTriePolicy::getNextWordAndNextToken(const int token, int *const outCodePoints,
+1 −1
Original line number Diff line number Diff line
@@ -560,7 +560,7 @@ const WordProperty Ver4PatriciaTriePolicy::getWordProperty(
            wordAttributes.isNotAWord(), wordAttributes.isBlacklisted(),
            wordAttributes.isPossiblyOffensive(), wordAttributes.getProbability(),
            *historicalInfo, std::move(shortcuts));
    return WordProperty(wordCodePoints.toVector(), &unigramProperty, &ngrams);
    return WordProperty(wordCodePoints.toVector(), unigramProperty, ngrams);
}

int Ver4PatriciaTriePolicy::getNextWordAndNextToken(const int token, int *const outCodePoints,