Fixing operator so that bCheckRight isn't always true. Unknown effect!
authorBruce Dawson <brucedawson@google.com>
Tue, 18 Nov 2014 21:50:28 +0000 (13:50 -0800)
committerBruce Dawson <brucedawson@google.com>
Tue, 18 Nov 2014 21:50:28 +0000 (13:50 -0800)
VC++'s /analyze points out that this expression:
    FX_BOOL bCheckRight = type != 'D' || type != 'W';"
is always true. This means that the tests for the right edge of a word

Original patch from Bruce Dawson(brucedawson@chromium.org)

BUG=427616
R=jun_fang@foxitsoftware.com

Review URL: https://codereview.chromium.org/731673003

core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp

index 5df4a6f..0299134 100644 (file)
@@ -2536,7 +2536,7 @@ FX_BOOL CPDF_SyntaxParser::IsWholeWord(FX_FILESIZE startpos, FX_FILESIZE limit,
     FX_BYTE type = _PDF_CharType[tag[0]];
     FX_BOOL bCheckLeft = type != 'D' && type != 'W';
     type = _PDF_CharType[tag[taglen - 1]];
-    FX_BOOL bCheckRight = type != 'D' || type != 'W';
+    FX_BOOL bCheckRight = type != 'D' && type != 'W';
     FX_BYTE ch;
     if (bCheckRight && startpos + (FX_INT32)taglen <= limit && GetCharAt(startpos + (FX_INT32)taglen, ch)) {
         FX_BYTE type = _PDF_CharType[ch];