From 7b43d987fa9d225c4305f4681dc8e27f244279a8 Mon Sep 17 00:00:00 2001 From: Keisuke Kuroyanagi Date: Fri, 18 Apr 2014 17:57:28 -0700 Subject: [PATCH] Pass max trie structure size to on memory Ver4DictBuffers. Bug: 14166482 Bug: 14161647 Change-Id: I3b0dd192d7a81c3809f1873bb66ef8fe637f8af0 --- .../dictionary/structure/v4/ver4_dict_buffers.cpp | 5 ++--- .../policyimpl/dictionary/structure/v4/ver4_dict_buffers.h | 6 +++--- .../structure/v4/ver4_patricia_trie_writing_helper.cpp | 3 ++- .../policyimpl/dictionary/utils/dict_file_writing_utils.cpp | 3 ++- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.cpp index 9319ea982..eda882d46 100644 --- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.cpp +++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.cpp @@ -130,11 +130,10 @@ Ver4DictBuffers::Ver4DictBuffers(const char *const dictPath, mShortcutDictContent(dictPath, isUpdatable), mIsUpdatable(isUpdatable) {} -Ver4DictBuffers::Ver4DictBuffers(const HeaderPolicy *const headerPolicy) +Ver4DictBuffers::Ver4DictBuffers(const HeaderPolicy *const headerPolicy, const int maxTrieSize) : mHeaderBuffer(nullptr), mDictBuffer(nullptr), mHeaderPolicy(), mExpandableHeaderBuffer(Ver4DictConstants::MAX_DICTIONARY_SIZE), - mExpandableTrieBuffer(Ver4DictConstants::MAX_DICTIONARY_SIZE), - mTerminalPositionLookupTable(), + mExpandableTrieBuffer(maxTrieSize), mTerminalPositionLookupTable(), mProbabilityDictContent(headerPolicy->hasHistoricalInfoOfWords()), mBigramDictContent(headerPolicy->hasHistoricalInfoOfWords()), mShortcutDictContent(), mIsUpdatable(true) {} diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.h b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.h index ab756bb41..fc41432f4 100644 --- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.h +++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.h @@ -39,8 +39,8 @@ class Ver4DictBuffers { MmappedBuffer::MmappedBufferPtr headerBuffer); static AK_FORCE_INLINE Ver4DictBuffersPtr createVer4DictBuffers( - const HeaderPolicy *const headerPolicy) { - return Ver4DictBuffersPtr(new Ver4DictBuffers(headerPolicy)); + const HeaderPolicy *const headerPolicy, const int maxTrieSize) { + return Ver4DictBuffersPtr(new Ver4DictBuffers(headerPolicy, maxTrieSize)); } AK_FORCE_INLINE bool isValid() const { @@ -122,7 +122,7 @@ class Ver4DictBuffers { Ver4DictBuffers(const char *const dictDirPath, const MmappedBuffer::MmappedBufferPtr headerBuffer, const bool isUpdatable); - Ver4DictBuffers(const HeaderPolicy *const headerPolicy); + Ver4DictBuffers(const HeaderPolicy *const headerPolicy, const int maxTrieSize); const MmappedBuffer::MmappedBufferPtr mHeaderBuffer; const MmappedBuffer::MmappedBufferPtr mDictBuffer; diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_writing_helper.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_writing_helper.cpp index 2b1f60e5d..12298d967 100644 --- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_writing_helper.cpp +++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_writing_helper.cpp @@ -55,7 +55,8 @@ bool Ver4PatriciaTrieWritingHelper::writeToDictFileWithGC(const int rootPtNodeAr const char *const dictDirPath) { const HeaderPolicy *const headerPolicy = mBuffers->getHeaderPolicy(); Ver4DictBuffers::Ver4DictBuffersPtr dictBuffers( - Ver4DictBuffers::createVer4DictBuffers(headerPolicy)); + Ver4DictBuffers::createVer4DictBuffers(headerPolicy, + Ver4DictConstants::MAX_DICTIONARY_SIZE)); int unigramCount = 0; int bigramCount = 0; if (!runGC(rootPtNodeArrayPos, headerPolicy, dictBuffers.get(), &unigramCount, &bigramCount)) { diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/dict_file_writing_utils.cpp b/native/jni/src/suggest/policyimpl/dictionary/utils/dict_file_writing_utils.cpp index 4459e86a3..87fa5994c 100644 --- a/native/jni/src/suggest/policyimpl/dictionary/utils/dict_file_writing_utils.cpp +++ b/native/jni/src/suggest/policyimpl/dictionary/utils/dict_file_writing_utils.cpp @@ -49,7 +49,8 @@ const char *const DictFileWritingUtils::TEMP_FILE_SUFFIX_FOR_WRITING_DICT_FILE = const DictionaryHeaderStructurePolicy::AttributeMap *const attributeMap) { HeaderPolicy headerPolicy(FormatUtils::VERSION_4, localeAsCodePointVector, attributeMap); Ver4DictBuffers::Ver4DictBuffersPtr dictBuffers( - Ver4DictBuffers::createVer4DictBuffers(&headerPolicy)); + Ver4DictBuffers::createVer4DictBuffers(&headerPolicy, + Ver4DictConstants::MAX_DICT_EXTENDED_REGION_SIZE)); headerPolicy.fillInAndWriteHeaderToBuffer(true /* updatesLastDecayedTime */, 0 /* unigramCount */, 0 /* bigramCount */, 0 /* extendedRegionSize */, dictBuffers->getWritableHeaderBuffer());