From c9688ef2679699737152ee9f1a2234280a73c1db Mon Sep 17 00:00:00 2001 From: Jean Chalard Date: Mon, 22 Apr 2013 18:01:35 +0900 Subject: [PATCH] Fix a small bug Tests results in Ibcd6c110f1d5582425f9592c42e31152131ef80c Bug: 7226877 Change-Id: I8d03bae3264974eff7b790e27c073b0a8758d17a --- native/jni/src/binary_format.h | 5 +++++ native/jni/src/suggest/core/dicnode/dic_node.h | 3 +-- native/jni/src/suggest/core/dicnode/dic_node_properties.h | 5 +++++ native/jni/src/terminal_attributes.h | 2 +- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/native/jni/src/binary_format.h b/native/jni/src/binary_format.h index 2d2e19501..ad16039ef 100644 --- a/native/jni/src/binary_format.h +++ b/native/jni/src/binary_format.h @@ -66,6 +66,7 @@ class BinaryFormat { static int detectFormat(const uint8_t *const dict); static int getHeaderSize(const uint8_t *const dict); static int getFlags(const uint8_t *const dict); + static bool hasBlacklistedOrNotAWordFlag(const int flags); static void readHeaderValue(const uint8_t *const dict, const char *const key, int *outValue, const int outValueSize); static int readHeaderValueInt(const uint8_t *const dict, const char *const key); @@ -162,6 +163,10 @@ inline int BinaryFormat::getFlags(const uint8_t *const dict) { } } +inline bool BinaryFormat::hasBlacklistedOrNotAWordFlag(const int flags) { + return flags & (FLAG_IS_BLACKLISTED | FLAG_IS_NOT_A_WORD); +} + inline int BinaryFormat::getHeaderSize(const uint8_t *const dict) { switch (detectFormat(dict)) { case 1: diff --git a/native/jni/src/suggest/core/dicnode/dic_node.h b/native/jni/src/suggest/core/dicnode/dic_node.h index f8d2df452..e8432546b 100644 --- a/native/jni/src/suggest/core/dicnode/dic_node.h +++ b/native/jni/src/suggest/core/dicnode/dic_node.h @@ -210,8 +210,7 @@ class DicNode { } bool isImpossibleBigramWord() const { - const int probability = mDicNodeProperties.getProbability(); - if (probability == 0) { + if (mDicNodeProperties.hasBlacklistedOrNotAWordFlag()) { return true; } const int prevWordLen = mDicNodeState.mDicNodeStatePrevWord.getPrevWordLength() diff --git a/native/jni/src/suggest/core/dicnode/dic_node_properties.h b/native/jni/src/suggest/core/dicnode/dic_node_properties.h index 173ef35d0..63a6b1340 100644 --- a/native/jni/src/suggest/core/dicnode/dic_node_properties.h +++ b/native/jni/src/suggest/core/dicnode/dic_node_properties.h @@ -19,6 +19,7 @@ #include +#include "binary_format.h" #include "defines.h" namespace latinime { @@ -144,6 +145,10 @@ class DicNodeProperties { return mChildrenCount > 0 || mDepth != mLeavingDepth; } + bool hasBlacklistedOrNotAWordFlag() const { + return BinaryFormat::hasBlacklistedOrNotAWordFlag(mFlags); + } + private: // Caution!!! // Use a default copy constructor and an assign operator because shallow copies are ok diff --git a/native/jni/src/terminal_attributes.h b/native/jni/src/terminal_attributes.h index 144ae1452..92ef71c2c 100644 --- a/native/jni/src/terminal_attributes.h +++ b/native/jni/src/terminal_attributes.h @@ -72,7 +72,7 @@ class TerminalAttributes { } bool isBlacklistedOrNotAWord() const { - return mFlags & (BinaryFormat::FLAG_IS_BLACKLISTED | BinaryFormat::FLAG_IS_NOT_A_WORD); + return BinaryFormat::hasBlacklistedOrNotAWordFlag(mFlags); } private: