am 19c46d32: am c9688ef2: Fix a small bug

* commit '19c46d323ae536a72fd105ae3d7a04d131313b3a':
  Fix a small bug
main
Jean Chalard 2013-05-15 10:52:57 -07:00 committed by Android Git Automerger
commit d8217ff0e3
4 changed files with 12 additions and 3 deletions

View File

@ -66,6 +66,7 @@ class BinaryFormat {
static int detectFormat(const uint8_t *const dict); static int detectFormat(const uint8_t *const dict);
static int getHeaderSize(const uint8_t *const dict); static int getHeaderSize(const uint8_t *const dict);
static int getFlags(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, static void readHeaderValue(const uint8_t *const dict, const char *const key, int *outValue,
const int outValueSize); const int outValueSize);
static int readHeaderValueInt(const uint8_t *const dict, const char *const key); 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) { inline int BinaryFormat::getHeaderSize(const uint8_t *const dict) {
switch (detectFormat(dict)) { switch (detectFormat(dict)) {
case 1: case 1:

View File

@ -210,8 +210,7 @@ class DicNode {
} }
bool isImpossibleBigramWord() const { bool isImpossibleBigramWord() const {
const int probability = mDicNodeProperties.getProbability(); if (mDicNodeProperties.hasBlacklistedOrNotAWordFlag()) {
if (probability == 0) {
return true; return true;
} }
const int prevWordLen = mDicNodeState.mDicNodeStatePrevWord.getPrevWordLength() const int prevWordLen = mDicNodeState.mDicNodeStatePrevWord.getPrevWordLength()

View File

@ -19,6 +19,7 @@
#include <stdint.h> #include <stdint.h>
#include "binary_format.h"
#include "defines.h" #include "defines.h"
namespace latinime { namespace latinime {
@ -144,6 +145,10 @@ class DicNodeProperties {
return mChildrenCount > 0 || mDepth != mLeavingDepth; return mChildrenCount > 0 || mDepth != mLeavingDepth;
} }
bool hasBlacklistedOrNotAWordFlag() const {
return BinaryFormat::hasBlacklistedOrNotAWordFlag(mFlags);
}
private: private:
// Caution!!! // Caution!!!
// Use a default copy constructor and an assign operator because shallow copies are ok // Use a default copy constructor and an assign operator because shallow copies are ok

View File

@ -72,7 +72,7 @@ class TerminalAttributes {
} }
bool isBlacklistedOrNotAWord() const { bool isBlacklistedOrNotAWord() const {
return mFlags & (BinaryFormat::FLAG_IS_BLACKLISTED | BinaryFormat::FLAG_IS_NOT_A_WORD); return BinaryFormat::hasBlacklistedOrNotAWordFlag(mFlags);
} }
private: private: