Fix bug of dictionary dynamic updating methods.
Bug: 6669677 Change-Id: I5483adb03e1ac0c27bbfd99d5f4d7cc29809d70amain
parent
b8e857f799
commit
f38969f3f8
|
@ -59,9 +59,9 @@ class DynamicPatriciaTrieReadingUtils {
|
||||||
static AK_FORCE_INLINE NodeFlags updateAndGetFlags(const NodeFlags originalFlags,
|
static AK_FORCE_INLINE NodeFlags updateAndGetFlags(const NodeFlags originalFlags,
|
||||||
const bool isMoved, const bool isDeleted) {
|
const bool isMoved, const bool isDeleted) {
|
||||||
NodeFlags flags = originalFlags;
|
NodeFlags flags = originalFlags;
|
||||||
flags = isMoved ? ((flags & (!MASK_MOVED)) | FLAG_IS_MOVED) : flags;
|
flags = isMoved ? ((flags & (~MASK_MOVED)) | FLAG_IS_MOVED) : flags;
|
||||||
flags = isDeleted ? ((flags & (!MASK_MOVED)) | FLAG_IS_DELETED) : flags;
|
flags = isDeleted ? ((flags & (~MASK_MOVED)) | FLAG_IS_DELETED) : flags;
|
||||||
flags = (!isMoved && !isDeleted) ? ((flags & (!MASK_MOVED)) | FLAG_IS_NOT_MOVED) : flags;
|
flags = (!isMoved && !isDeleted) ? ((flags & (~MASK_MOVED)) | FLAG_IS_NOT_MOVED) : flags;
|
||||||
return flags;
|
return flags;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,7 @@ namespace latinime {
|
||||||
bool DynamicPatriciaTrieWritingHelper::addUnigramWord(
|
bool DynamicPatriciaTrieWritingHelper::addUnigramWord(
|
||||||
DynamicPatriciaTrieReadingHelper *const readingHelper,
|
DynamicPatriciaTrieReadingHelper *const readingHelper,
|
||||||
const int *const wordCodePoints, const int codePointCount, const int probability) {
|
const int *const wordCodePoints, const int codePointCount, const int probability) {
|
||||||
int parentPos = NOT_A_VALID_WORD_POS;
|
int parentPos = NOT_A_DICT_POS;
|
||||||
while (!readingHelper->isEnd()) {
|
while (!readingHelper->isEnd()) {
|
||||||
const int matchedCodePointCount = readingHelper->getPrevTotalCodePointCount();
|
const int matchedCodePointCount = readingHelper->getPrevTotalCodePointCount();
|
||||||
if (!readingHelper->isMatchedCodePoint(0 /* index */,
|
if (!readingHelper->isMatchedCodePoint(0 /* index */,
|
||||||
|
|
|
@ -76,7 +76,7 @@ bool BufferWithExtendableBuffer::checkAndPrepareWriting(const int pos, const int
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
mUsedAdditionalBufferSize += size;
|
mUsedAdditionalBufferSize += size;
|
||||||
} else if (pos + size >= tailPosition) {
|
} else if (pos + size > tailPosition) {
|
||||||
// The access will beyond the tail of used region.
|
// The access will beyond the tail of used region.
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue