XFA: merge patch from CL 731673003, fix incorrect operator
authorBruce Dawson <brucedawson@google.com>
Tue, 23 Dec 2014 20:00:44 +0000 (12:00 -0800)
committerBruce Dawson <brucedawson@google.com>
Tue, 23 Dec 2014 20:00:44 +0000 (12:00 -0800)
Fixing operator so that bCheckRight isn't always true. Unknown effect!

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
TBR=jun_fang@foxitsoftware.com

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

core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp

index 0397971..f650b77 100644 (file)
@@ -2532,7 +2532,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];