Index: third_party/android_prediction/CHROMIUM.diff |
diff --git a/third_party/android_prediction/CHROMIUM.diff b/third_party/android_prediction/CHROMIUM.diff |
new file mode 100644 |
index 0000000000000000000000000000000000000000..4a56701242be197a33e14ee95c9e5c68f72f7369 |
--- /dev/null |
+++ b/third_party/android_prediction/CHROMIUM.diff |
@@ -0,0 +1,378 @@ |
+Only in third_party/android_prediction/: BUILD.gn |
+Only in third_party/android_prediction/: CHROMIUM.diff |
+diff -ru /usr/local/google/home/riajiang/Downloads/android_prediction/defines.h third_party/android_prediction/defines.h |
+--- /usr/local/google/home/riajiang/Downloads/android_prediction/defines.h 2015-08-04 11:08:28.000000000 -0700 |
++++ third_party/android_prediction/defines.h 2015-08-05 17:18:47.846770065 -0700 |
+@@ -17,6 +17,8 @@ |
+ #ifndef LATINIME_DEFINES_H |
+ #define LATINIME_DEFINES_H |
+ |
++#include "base/macros.h" |
++ |
+ #ifdef __GNUC__ |
+ #define AK_FORCE_INLINE __attribute__((always_inline)) __inline__ |
+ #else // __GNUC__ |
+@@ -39,8 +41,8 @@ |
+ // TODO: Use size_t instead of int. |
+ // Disclaimer: You will see a compile error if you use this macro against a variable-length array. |
+ // Sorry for the inconvenience. It isn't supported. |
+-template <typename T, int N> |
+-char (&ArraySizeHelper(T (&array)[N]))[N]; |
++// template <typename T, int N> |
++// char (&ArraySizeHelper(T (&array)[N]))[N]; |
+ #define NELEMS(x) (sizeof(ArraySizeHelper(x))) |
+ |
+ AK_FORCE_INLINE static int intArrayToCharArray(const int *const source, const int sourceSize, |
+@@ -348,6 +350,7 @@ |
+ #define DISALLOW_ASSIGNMENT_OPERATOR(TypeName) \ |
+ void operator=(const TypeName&) = delete |
+ |
++/* |
+ #define DISALLOW_COPY_AND_ASSIGN(TypeName) \ |
+ DISALLOW_COPY_CONSTRUCTOR(TypeName); \ |
+ DISALLOW_ASSIGNMENT_OPERATOR(TypeName) |
+@@ -355,6 +358,7 @@ |
+ #define DISALLOW_IMPLICIT_CONSTRUCTORS(TypeName) \ |
+ DISALLOW_DEFAULT_CONSTRUCTOR(TypeName); \ |
+ DISALLOW_COPY_AND_ASSIGN(TypeName) |
++*/ |
+ |
+ // Used as a return value for character comparison |
+ typedef enum { |
+Only in third_party/android_prediction/: LICENSE |
+Only in third_party/android_prediction/: README.chromium |
+diff -ru /usr/local/google/home/riajiang/Downloads/android_prediction/suggest/core/dictionary/dictionary.cpp third_party/android_prediction/suggest/core/dictionary/dictionary.cpp |
+--- /usr/local/google/home/riajiang/Downloads/android_prediction/suggest/core/dictionary/dictionary.cpp 2015-08-04 11:08:28.000000000 -0700 |
++++ third_party/android_prediction/suggest/core/dictionary/dictionary.cpp 2015-08-05 17:18:47.574768333 -0700 |
+@@ -16,31 +16,29 @@ |
+-#include "utils/log_utils.h" |
+ |
+ const int Dictionary::HEADER_ATTRIBUTE_BUFFER_SIZE = 32; |
+ |
+-Dictionary::Dictionary(JNIEnv *env, DictionaryStructureWithBufferPolicy::StructurePolicyPtr |
++Dictionary::Dictionary(DictionaryStructureWithBufferPolicy::StructurePolicyPtr |
+ dictionaryStructureWithBufferPolicy) |
+ : mDictionaryStructureWithBufferPolicy(std::move(dictionaryStructureWithBufferPolicy)), |
+ mGestureSuggest(new Suggest(GestureSuggestPolicyFactory::getGestureSuggestPolicy())), |
+ mTypingSuggest(new Suggest(TypingSuggestPolicyFactory::getTypingSuggestPolicy())) { |
+- logDictionaryInfo(env); |
+ } |
+ |
+ void Dictionary::getSuggestions(ProximityInfo *proximityInfo, DicTraverseSession *traverseSession, |
+@@ -191,32 +189,4 @@ |
+ token, outCodePoints, outCodePointCount); |
+ } |
+ |
+-void Dictionary::logDictionaryInfo(JNIEnv *const env) const { |
+- int dictionaryIdCodePointBuffer[HEADER_ATTRIBUTE_BUFFER_SIZE]; |
+- int versionStringCodePointBuffer[HEADER_ATTRIBUTE_BUFFER_SIZE]; |
+- int dateStringCodePointBuffer[HEADER_ATTRIBUTE_BUFFER_SIZE]; |
+- const DictionaryHeaderStructurePolicy *const headerPolicy = |
+- getDictionaryStructurePolicy()->getHeaderStructurePolicy(); |
+- headerPolicy->readHeaderValueOrQuestionMark("dictionary", dictionaryIdCodePointBuffer, |
+- HEADER_ATTRIBUTE_BUFFER_SIZE); |
+- headerPolicy->readHeaderValueOrQuestionMark("version", versionStringCodePointBuffer, |
+- HEADER_ATTRIBUTE_BUFFER_SIZE); |
+- headerPolicy->readHeaderValueOrQuestionMark("date", dateStringCodePointBuffer, |
+- HEADER_ATTRIBUTE_BUFFER_SIZE); |
+- |
+- char dictionaryIdCharBuffer[HEADER_ATTRIBUTE_BUFFER_SIZE]; |
+- char versionStringCharBuffer[HEADER_ATTRIBUTE_BUFFER_SIZE]; |
+- char dateStringCharBuffer[HEADER_ATTRIBUTE_BUFFER_SIZE]; |
+- intArrayToCharArray(dictionaryIdCodePointBuffer, HEADER_ATTRIBUTE_BUFFER_SIZE, |
+- dictionaryIdCharBuffer, HEADER_ATTRIBUTE_BUFFER_SIZE); |
+- intArrayToCharArray(versionStringCodePointBuffer, HEADER_ATTRIBUTE_BUFFER_SIZE, |
+- versionStringCharBuffer, HEADER_ATTRIBUTE_BUFFER_SIZE); |
+- intArrayToCharArray(dateStringCodePointBuffer, HEADER_ATTRIBUTE_BUFFER_SIZE, |
+- dateStringCharBuffer, HEADER_ATTRIBUTE_BUFFER_SIZE); |
+- |
+- LogUtils::logToJava(env, |
+- "Dictionary info: dictionary = %s ; version = %s ; date = %s", |
+- dictionaryIdCharBuffer, versionStringCharBuffer, dateStringCharBuffer); |
+-} |
+- |
+ } // namespace latinime |
+diff -ru /usr/local/google/home/riajiang/Downloads/android_prediction/suggest/core/dictionary/dictionary.h third_party/android_prediction/suggest/core/dictionary/dictionary.h |
+--- /usr/local/google/home/riajiang/Downloads/android_prediction/suggest/core/dictionary/dictionary.h 2015-08-04 11:08:28.000000000 -0700 |
++++ third_party/android_prediction/suggest/core/dictionary/dictionary.h 2015-08-05 17:18:47.574768333 -0700 |
+@@ -19,13 +19,12 @@ |
+-#include "jni.h" |
+ |
+@@ -59,7 +58,7 @@ |
+ static const int KIND_FLAG_EXACT_MATCH = 0x40000000; |
+ static const int KIND_FLAG_EXACT_MATCH_WITH_INTENTIONAL_OMISSION = 0x20000000; |
+ |
+- Dictionary(JNIEnv *env, DictionaryStructureWithBufferPolicy::StructurePolicyPtr |
++ Dictionary(DictionaryStructureWithBufferPolicy::StructurePolicyPtr |
+ dictionaryStructureWithBufferPolicy); |
+ |
+ void getSuggestions(ProximityInfo *proximityInfo, DicTraverseSession *traverseSession, |
+@@ -136,8 +135,6 @@ |
+ mDictionaryStructureWithBufferPolicy; |
+ const SuggestInterfacePtr mGestureSuggest; |
+ const SuggestInterfacePtr mTypingSuggest; |
+- |
+- void logDictionaryInfo(JNIEnv *const env) const; |
+ }; |
+ } // namespace latinime |
+ #endif // LATINIME_DICTIONARY_H |
+Only in /usr/local/google/home/riajiang/Downloads/android_prediction/suggest/core/dictionary/property: word_property.cpp |
+diff -ru /usr/local/google/home/riajiang/Downloads/android_prediction/suggest/core/dictionary/property/word_property.h third_party/android_prediction/suggest/core/dictionary/property/word_property.h |
+--- /usr/local/google/home/riajiang/Downloads/android_prediction/suggest/core/dictionary/property/word_property.h 2015-08-04 11:08:28.000000000 -0700 |
++++ third_party/android_prediction/suggest/core/dictionary/property/word_property.h 2015-08-05 17:18:47.578768359 -0700 |
+@@ -19,10 +19,9 @@ |
+-#include "jni.h" |
+ |
+@@ -38,10 +37,6 @@ |
+ const std::vector<BigramProperty> *const bigrams) |
+ : mCodePoints(*codePoints), mUnigramProperty(*unigramProperty), mBigrams(*bigrams) {} |
+ |
+- void outputProperties(JNIEnv *const env, jintArray outCodePoints, jbooleanArray outFlags, |
+- jintArray outProbabilityInfo, jobject outBigramTargets, jobject outBigramProbabilities, |
+- jobject outShortcutTargets, jobject outShortcutProbabilities) const; |
+- |
+ const UnigramProperty *getUnigramProperty() const { |
+ return &mUnigramProperty; |
+ } |
+diff -ru /usr/local/google/home/riajiang/Downloads/android_prediction/suggest/core/layout/proximity_info.cpp third_party/android_prediction/suggest/core/layout/proximity_info.cpp |
+--- /usr/local/google/home/riajiang/Downloads/android_prediction/suggest/core/layout/proximity_info.cpp 2015-08-04 11:08:28.000000000 -0700 |
++++ third_party/android_prediction/suggest/core/layout/proximity_info.cpp 2015-08-05 17:18:47.578768359 -0700 |
+@@ -16,46 +16,49 @@ |
+-#include "jni.h" |
+ |
+ namespace latinime { |
+ |
+-static AK_FORCE_INLINE void safeGetOrFillZeroIntArrayRegion(JNIEnv *env, jintArray jArray, |
+- jsize len, jint *buffer) { |
++static AK_FORCE_INLINE void safeGetOrFillZeroIntArrayRegion(const int *jArray, |
++ int len, int *buffer) { |
+ if (jArray && buffer) { |
+- env->GetIntArrayRegion(jArray, 0, len, buffer); |
++ for (int i = 0; i < len; i++) { |
++ buffer[i] = jArray[i]; |
++ } |
+ } else if (buffer) { |
+ memset(buffer, 0, len * sizeof(buffer[0])); |
+ } |
+ } |
+ |
+-static AK_FORCE_INLINE void safeGetOrFillZeroFloatArrayRegion(JNIEnv *env, jfloatArray jArray, |
+- jsize len, jfloat *buffer) { |
++static AK_FORCE_INLINE void safeGetOrFillZeroFloatArrayRegion(const float *jArray, |
++ int len, float *buffer) { |
+ if (jArray && buffer) { |
+- env->GetFloatArrayRegion(jArray, 0, len, buffer); |
++ for (int i = 0; i < len; i++) { |
++ buffer[i] = jArray[i]; |
++ } |
+ } else if (buffer) { |
+ memset(buffer, 0, len * sizeof(buffer[0])); |
+ } |
+ } |
+ |
+-ProximityInfo::ProximityInfo(JNIEnv *env, const jstring localeJStr, |
++ProximityInfo::ProximityInfo(const std::string localeJStr, |
+ const int keyboardWidth, const int keyboardHeight, const int gridWidth, |
+ const int gridHeight, const int mostCommonKeyWidth, const int mostCommonKeyHeight, |
+- const jintArray proximityChars, const int keyCount, const jintArray keyXCoordinates, |
+- const jintArray keyYCoordinates, const jintArray keyWidths, const jintArray keyHeights, |
+- const jintArray keyCharCodes, const jfloatArray sweetSpotCenterXs, |
+- const jfloatArray sweetSpotCenterYs, const jfloatArray sweetSpotRadii) |
++ int *proximityChars, int proximitySize, const int keyCount, const int *keyXCoordinates, |
++ const int *keyYCoordinates, const int *keyWidths, const int *keyHeights, |
++ const int *keyCharCodes, const float *sweetSpotCenterXs, |
++ const float *sweetSpotCenterYs, const float *sweetSpotRadii) |
+ : GRID_WIDTH(gridWidth), GRID_HEIGHT(gridHeight), MOST_COMMON_KEY_WIDTH(mostCommonKeyWidth), |
+ MOST_COMMON_KEY_WIDTH_SQUARE(mostCommonKeyWidth * mostCommonKeyWidth), |
+ NORMALIZED_SQUARED_MOST_COMMON_KEY_HYPOTENUSE(1.0f + |
+@@ -73,7 +76,7 @@ |
+ /* proximityCharsLength */]), |
+ mLowerCodePointToKeyMap() { |
+ /* Let's check the input array length here to make sure */ |
+- const jsize proximityCharsLength = env->GetArrayLength(proximityChars); |
++ int proximityCharsLength = proximitySize; |
+ if (proximityCharsLength != GRID_WIDTH * GRID_HEIGHT * MAX_PROXIMITY_CHARS_SIZE) { |
+ AKLOGE("Invalid proximityCharsLength: %d", proximityCharsLength); |
+ ASSERT(false); |
+@@ -82,23 +85,25 @@ |
+ if (DEBUG_PROXIMITY_INFO) { |
+ AKLOGI("Create proximity info array %d", proximityCharsLength); |
+ } |
+- const jsize localeCStrUtf8Length = env->GetStringUTFLength(localeJStr); |
++ const int localeCStrUtf8Length = localeJStr.length(); |
+ if (localeCStrUtf8Length >= MAX_LOCALE_STRING_LENGTH) { |
+ AKLOGI("Locale string length too long: length=%d", localeCStrUtf8Length); |
+ ASSERT(false); |
+ } |
+ memset(mLocaleStr, 0, sizeof(mLocaleStr)); |
+- env->GetStringUTFRegion(localeJStr, 0, env->GetStringLength(localeJStr), mLocaleStr); |
+- safeGetOrFillZeroIntArrayRegion(env, proximityChars, proximityCharsLength, |
++ for (int i = 0; i < localeCStrUtf8Length; i++) { |
++ mLocaleStr[i] = localeJStr[i]; |
++ } |
++ safeGetOrFillZeroIntArrayRegion(proximityChars, proximityCharsLength, |
+ mProximityCharsArray); |
+- safeGetOrFillZeroIntArrayRegion(env, keyXCoordinates, KEY_COUNT, mKeyXCoordinates); |
+- safeGetOrFillZeroIntArrayRegion(env, keyYCoordinates, KEY_COUNT, mKeyYCoordinates); |
+- safeGetOrFillZeroIntArrayRegion(env, keyWidths, KEY_COUNT, mKeyWidths); |
+- safeGetOrFillZeroIntArrayRegion(env, keyHeights, KEY_COUNT, mKeyHeights); |
+- safeGetOrFillZeroIntArrayRegion(env, keyCharCodes, KEY_COUNT, mKeyCodePoints); |
+- safeGetOrFillZeroFloatArrayRegion(env, sweetSpotCenterXs, KEY_COUNT, mSweetSpotCenterXs); |
+- safeGetOrFillZeroFloatArrayRegion(env, sweetSpotCenterYs, KEY_COUNT, mSweetSpotCenterYs); |
+- safeGetOrFillZeroFloatArrayRegion(env, sweetSpotRadii, KEY_COUNT, mSweetSpotRadii); |
++ safeGetOrFillZeroIntArrayRegion(keyXCoordinates, KEY_COUNT, mKeyXCoordinates); |
++ safeGetOrFillZeroIntArrayRegion(keyYCoordinates, KEY_COUNT, mKeyYCoordinates); |
++ safeGetOrFillZeroIntArrayRegion(keyWidths, KEY_COUNT, mKeyWidths); |
++ safeGetOrFillZeroIntArrayRegion(keyHeights, KEY_COUNT, mKeyHeights); |
++ safeGetOrFillZeroIntArrayRegion(keyCharCodes, KEY_COUNT, mKeyCodePoints); |
++ safeGetOrFillZeroFloatArrayRegion(sweetSpotCenterXs, KEY_COUNT, mSweetSpotCenterXs); |
++ safeGetOrFillZeroFloatArrayRegion(sweetSpotCenterYs, KEY_COUNT, mSweetSpotCenterYs); |
++ safeGetOrFillZeroFloatArrayRegion(sweetSpotRadii, KEY_COUNT, mSweetSpotRadii); |
+ initializeG(); |
+ } |
+ |
+diff -ru /usr/local/google/home/riajiang/Downloads/android_prediction/suggest/core/layout/proximity_info.h third_party/android_prediction/suggest/core/layout/proximity_info.h |
+--- /usr/local/google/home/riajiang/Downloads/android_prediction/suggest/core/layout/proximity_info.h 2015-08-04 11:08:28.000000000 -0700 |
++++ third_party/android_prediction/suggest/core/layout/proximity_info.h 2015-08-05 17:18:47.578768359 -0700 |
+@@ -17,23 +17,23 @@ |
+ #ifndef LATINIME_PROXIMITY_INFO_H |
+ #define LATINIME_PROXIMITY_INFO_H |
+ |
++#include <string> |
+ #include <unordered_map> |
+ |
+-#include "jni.h" |
+ |
+ namespace latinime { |
+ |
+ class ProximityInfo { |
+ public: |
+- ProximityInfo(JNIEnv *env, const jstring localeJStr, |
++ ProximityInfo(const std::string localeJStr, |
+ const int keyboardWidth, const int keyboardHeight, const int gridWidth, |
+ const int gridHeight, const int mostCommonKeyWidth, const int mostCommonKeyHeight, |
+- const jintArray proximityChars, const int keyCount, const jintArray keyXCoordinates, |
+- const jintArray keyYCoordinates, const jintArray keyWidths, const jintArray keyHeights, |
+- const jintArray keyCharCodes, const jfloatArray sweetSpotCenterXs, |
+- const jfloatArray sweetSpotCenterYs, const jfloatArray sweetSpotRadii); |
++ int *proximityChars, int proximitySize, const int keyCount, const int *keyXCoordinates, |
++ const int *keyYCoordinates, const int *keyWidths, const int *keyHeights, |
++ const int *keyCharCodes, const float *sweetSpotCenterXs, |
++ const float *sweetSpotCenterYs, const float *sweetSpotRadii); |
+ ~ProximityInfo(); |
+ bool hasSpaceProximity(const int x, const int y) const; |
+ float getNormalizedSquaredDistanceFromCenterFloatG( |
+diff -ru /usr/local/google/home/riajiang/Downloads/android_prediction/suggest/core/result/suggestion_results.cpp third_party/android_prediction/suggest/core/result/suggestion_results.cpp |
+--- /usr/local/google/home/riajiang/Downloads/android_prediction/suggest/core/result/suggestion_results.cpp 2015-08-04 11:08:28.000000000 -0700 |
++++ third_party/android_prediction/suggest/core/result/suggestion_results.cpp 2015-08-05 17:18:47.582768384 -0700 |
+@@ -14,39 +14,10 @@ |
+ * limitations under the License. |
+ */ |
+-#include "utils/jni_data_utils.h" |
+ |
+ namespace latinime { |
+ |
+-void SuggestionResults::outputSuggestions(JNIEnv *env, jintArray outSuggestionCount, |
+- jintArray outputCodePointsArray, jintArray outScoresArray, jintArray outSpaceIndicesArray, |
+- jintArray outTypesArray, jintArray outAutoCommitFirstWordConfidenceArray, |
+- jfloatArray outLanguageWeight) { |
+- int outputIndex = 0; |
+- while (!mSuggestedWords.empty()) { |
+- const SuggestedWord &suggestedWord = mSuggestedWords.top(); |
+- suggestedWord.getCodePointCount(); |
+- const int start = outputIndex * MAX_WORD_LENGTH; |
+- JniDataUtils::outputCodePoints(env, outputCodePointsArray, start, |
+- MAX_WORD_LENGTH /* maxLength */, suggestedWord.getCodePoint(), |
+- suggestedWord.getCodePointCount(), true /* needsNullTermination */); |
+- JniDataUtils::putIntToArray(env, outScoresArray, outputIndex, suggestedWord.getScore()); |
+- JniDataUtils::putIntToArray(env, outSpaceIndicesArray, outputIndex, |
+- suggestedWord.getIndexToPartialCommit()); |
+- JniDataUtils::putIntToArray(env, outTypesArray, outputIndex, suggestedWord.getType()); |
+- if (mSuggestedWords.size() == 1) { |
+- JniDataUtils::putIntToArray(env, outAutoCommitFirstWordConfidenceArray, 0 /* index */, |
+- suggestedWord.getAutoCommitFirstWordConfidence()); |
+- } |
+- ++outputIndex; |
+- mSuggestedWords.pop(); |
+- } |
+- JniDataUtils::putIntToArray(env, outSuggestionCount, 0 /* index */, outputIndex); |
+- JniDataUtils::putFloatToArray(env, outLanguageWeight, 0 /* index */, mLanguageWeight); |
+-} |
+- |
+ void SuggestionResults::addPrediction(const int *const codePoints, const int codePointCount, |
+ const int probability) { |
+ if (probability == NOT_A_PROBABILITY) { |
+diff -ru /usr/local/google/home/riajiang/Downloads/android_prediction/suggest/core/result/suggestion_results.h third_party/android_prediction/suggest/core/result/suggestion_results.h |
+--- /usr/local/google/home/riajiang/Downloads/android_prediction/suggest/core/result/suggestion_results.h 2015-08-04 11:08:28.000000000 -0700 |
++++ third_party/android_prediction/suggest/core/result/suggestion_results.h 2015-08-05 17:18:47.582768384 -0700 |
+@@ -20,22 +20,17 @@ |
+-#include "jni.h" |
+ |
+ namespace latinime { |
+ |
+ class SuggestionResults { |
+ public: |
+ explicit SuggestionResults(const int maxSuggestionCount) |
+- : mMaxSuggestionCount(maxSuggestionCount), mLanguageWeight(NOT_A_LANGUAGE_WEIGHT), |
+- mSuggestedWords() {} |
++ : mSuggestedWords(), mMaxSuggestionCount(maxSuggestionCount), |
++ mLanguageWeight(NOT_A_LANGUAGE_WEIGHT) {} |
+ |
+- // Returns suggestion count. |
+- void outputSuggestions(JNIEnv *env, jintArray outSuggestionCount, jintArray outCodePointsArray, |
+- jintArray outScoresArray, jintArray outSpaceIndicesArray, jintArray outTypesArray, |
+- jintArray outAutoCommitFirstWordConfidenceArray, jfloatArray outLanguageWeight); |
+ void addPrediction(const int *const codePoints, const int codePointCount, const int score); |
+ void addSuggestion(const int *const codePoints, const int codePointCount, |
+ const int score, const int type, const int indexToPartialCommit, |
+@@ -51,13 +46,14 @@ |
+ return mSuggestedWords.size(); |
+ } |
+ |
++ std::priority_queue< |
++ SuggestedWord, std::vector<SuggestedWord>, SuggestedWord::Comparator> mSuggestedWords; |
++ |
+ private: |
+ DISALLOW_IMPLICIT_CONSTRUCTORS(SuggestionResults); |
+ |
+ const int mMaxSuggestionCount; |
+ float mLanguageWeight; |
+- std::priority_queue< |
+- SuggestedWord, std::vector<SuggestedWord>, SuggestedWord::Comparator> mSuggestedWords; |
+ }; |
+ } // namespace latinime |
+ #endif // LATINIME_SUGGESTION_RESULTS_H |
+diff -ru /usr/local/google/home/riajiang/Downloads/android_prediction/suggest/core/session/dic_traverse_session.h third_party/android_prediction/suggest/core/session/dic_traverse_session.h |
+--- /usr/local/google/home/riajiang/Downloads/android_prediction/suggest/core/session/dic_traverse_session.h 2015-08-04 11:08:28.000000000 -0700 |
++++ third_party/android_prediction/suggest/core/session/dic_traverse_session.h 2015-08-05 17:18:47.582768384 -0700 |
+@@ -19,11 +19,10 @@ |
+-#include "jni.h" |
+ |
+@@ -37,11 +36,11 @@ |
+ public: |
+ |
+ // A factory method for DicTraverseSession |
+- static AK_FORCE_INLINE void *getSessionInstance(JNIEnv *env, jstring localeStr, |
+- jlong dictSize) { |
++ static AK_FORCE_INLINE void *getSessionInstance(std::string localeStr, |
++ long dictSize) { |
+ // To deal with the trade-off between accuracy and memory space, large cache is used for |
+ // dictionaries larger that the threshold |
+- return new DicTraverseSession(env, localeStr, |
++ return new DicTraverseSession(localeStr, |
+ dictSize >= DICTIONARY_SIZE_THRESHOLD_TO_USE_LARGE_CACHE_FOR_SUGGESTION); |
+ } |
+ |
+@@ -49,7 +48,7 @@ |
+ delete traverseSession; |
+ } |
+ |
+- AK_FORCE_INLINE DicTraverseSession(JNIEnv *env, jstring localeStr, bool usesLargeCache) |
++ AK_FORCE_INLINE DicTraverseSession(std::string localeStr, bool usesLargeCache) |
+ : mProximityInfo(nullptr), mDictionary(nullptr), mSuggestOptions(nullptr), |
+ mDicNodesCache(usesLargeCache), mMultiBigramMap(), mInputSize(0), mMaxPointerCount(1), |
+ mMultiWordCostMultiplier(1.0f) { |
+Only in /usr/local/google/home/riajiang/Downloads/android_prediction/utils: jni_data_utils.cpp |
+Only in /usr/local/google/home/riajiang/Downloads/android_prediction/utils: jni_data_utils.h |
+Only in /usr/local/google/home/riajiang/Downloads/android_prediction/utils: log_utils.cpp |
+Only in /usr/local/google/home/riajiang/Downloads/android_prediction/utils: log_utils.h |