Fix more sign comparison errors.
authorLei Zhang <thestig@chromium.org>
Mon, 17 Aug 2015 19:20:05 +0000 (12:20 -0700)
committerLei Zhang <thestig@chromium.org>
Mon, 17 Aug 2015 19:20:05 +0000 (12:20 -0700)
R=tsepez@chromium.org

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

core/include/fpdfapi/fpdf_resource.h
core/src/fpdfdoc/doc_ap.cpp
fpdfsdk/src/fpdftext_embeddertest.cpp
fpdfsdk/src/javascript/PublicMethods.cpp

index 5b6f349..d687c97 100644 (file)
@@ -21,7 +21,6 @@ class CPDF_CMap;
 class CPDF_Color;
 class CPDF_ColorSpace;
 class CPDF_Face;
-class CPDF_Font;
 class CPDF_FontEncoding;
 class CPDF_Form;
 class CPDF_Function;
@@ -101,6 +100,7 @@ class CPDF_Font {
                                 CPDF_Dictionary* pFontDict);
   static CPDF_Font* GetStockFont(CPDF_Document* pDoc,
                                  const CFX_ByteStringC& fontname);
+  static const FX_DWORD kInvalidCharCode = static_cast<FX_DWORD>(-1);
 
   virtual ~CPDF_Font();
 
index cffaad9..f9bb3a7 100644 (file)
@@ -133,7 +133,7 @@ int32_t CPVT_Provider::GetCharWidth(int32_t nFontIndex,
                                     int32_t nWordStyle) {
   if (CPDF_Font* pPDFFont = m_pFontMap->GetPDFFont(nFontIndex)) {
     FX_DWORD charcode = pPDFFont->CharCodeFromUnicode(word);
-    if (charcode != -1) {
+    if (charcode != CPDF_Font::kInvalidCharCode) {
       return pPDFFont->GetCharWidthF(charcode);
     }
   }
@@ -155,14 +155,15 @@ int32_t CPVT_Provider::GetWordFontIndex(FX_WORD word,
                                         int32_t charset,
                                         int32_t nFontIndex) {
   if (CPDF_Font* pDefFont = m_pFontMap->GetPDFFont(0)) {
-    if (pDefFont->CharCodeFromUnicode(word) != -1) {
+    if (pDefFont->CharCodeFromUnicode(word) != CPDF_Font::kInvalidCharCode) {
       return 0;
     }
   }
-  if (CPDF_Font* pSysFont = m_pFontMap->GetPDFFont(1))
-    if (pSysFont->CharCodeFromUnicode(word) != -1) {
+  if (CPDF_Font* pSysFont = m_pFontMap->GetPDFFont(1)) {
+    if (pSysFont->CharCodeFromUnicode(word) != CPDF_Font::kInvalidCharCode) {
       return 1;
     }
+  }
   return -1;
 }
 FX_BOOL CPVT_Provider::IsLatinWord(FX_WORD word) {
@@ -175,6 +176,7 @@ FX_BOOL CPVT_Provider::IsLatinWord(FX_WORD word) {
 int32_t CPVT_Provider::GetDefaultFontIndex() {
   return 0;
 }
+
 static CFX_ByteString GetPDFWordString(IPVT_FontMap* pFontMap,
                                        int32_t nFontIndex,
                                        FX_WORD Word,
@@ -182,23 +184,26 @@ static CFX_ByteString GetPDFWordString(IPVT_FontMap* pFontMap,
   CFX_ByteString sWord;
   if (SubWord > 0) {
     sWord.Format("%c", SubWord);
-  } else {
-    if (pFontMap) {
-      if (CPDF_Font* pPDFFont = pFontMap->GetPDFFont(nFontIndex)) {
-        if (pPDFFont->GetBaseFont().Compare("Symbol") == 0 ||
-            pPDFFont->GetBaseFont().Compare("ZapfDingbats") == 0) {
-          sWord.Format("%c", Word);
-        } else {
-          FX_DWORD dwCharCode = pPDFFont->CharCodeFromUnicode(Word);
-          if (dwCharCode != -1) {
-            pPDFFont->AppendChar(sWord, dwCharCode);
-          }
-        }
+    return sWord;
+  }
+
+  if (!pFontMap)
+    return sWord;
+
+  if (CPDF_Font* pPDFFont = pFontMap->GetPDFFont(nFontIndex)) {
+    if (pPDFFont->GetBaseFont().Compare("Symbol") == 0 ||
+        pPDFFont->GetBaseFont().Compare("ZapfDingbats") == 0) {
+      sWord.Format("%c", Word);
+    } else {
+      FX_DWORD dwCharCode = pPDFFont->CharCodeFromUnicode(Word);
+      if (dwCharCode != CPDF_Font::kInvalidCharCode) {
+        pPDFFont->AppendChar(sWord, dwCharCode);
       }
     }
   }
   return sWord;
 }
+
 static CFX_ByteString GetWordRenderString(const CFX_ByteString& strWords) {
   if (strWords.GetLength() > 0) {
     return PDF_EncodeString(strWords) + " Tj\n";
index dd3737a..b3fe9e4 100644 (file)
@@ -40,13 +40,17 @@ TEST_F(FPDFTextEmbeddertest, Text) {
   memset(fixed_buffer, 0xbd, sizeof(fixed_buffer));
 
   // Check includes the terminating NUL that is provided.
-  EXPECT_EQ(sizeof(expected), FPDFText_GetText(textpage, 0, 128, fixed_buffer));
+  int num_chars = FPDFText_GetText(textpage, 0, 128, fixed_buffer);
+  ASSERT_GE(num_chars, 0);
+  EXPECT_EQ(sizeof(expected), static_cast<size_t>(num_chars));
   EXPECT_TRUE(check_unsigned_shorts(expected, fixed_buffer, sizeof(expected)));
 
   // Count does not include the terminating NUL in the string literal.
   EXPECT_EQ(sizeof(expected) - 1, FPDFText_CountChars(textpage));
   for (size_t i = 0; i < sizeof(expected) - 1; ++i) {
-    EXPECT_EQ(expected[i], FPDFText_GetUnicode(textpage, i)) << " at " << i;
+    EXPECT_EQ(static_cast<unsigned int>(expected[i]),
+              FPDFText_GetUnicode(textpage, i))
+        << " at " << i;
   }
 
   EXPECT_EQ(12.0, FPDFText_GetFontSize(textpage, 0));
index d0ecd29..c83ad05 100644 (file)
@@ -1496,12 +1496,9 @@ FX_BOOL CJS_PublicMethods::AFDate_Format(IFXJS_Context* cc,
                                 L"m/d/yy h:MM tt",
                                 L"m/d/yy HH:MM"};
 
-  ASSERT(iIndex < FX_ArraySize(cFormats));
-
-  if (iIndex < 0)
-    iIndex = 0;
-  if (iIndex >= FX_ArraySize(cFormats))
+  if (iIndex < 0 || (static_cast<size_t>(iIndex) >= FX_ArraySize(cFormats)))
     iIndex = 0;
+
   CJS_Parameters newParams;
   CJS_Value val(isolate, cFormats[iIndex]);
   newParams.push_back(val);
@@ -1539,12 +1536,9 @@ FX_BOOL CJS_PublicMethods::AFDate_Keystroke(IFXJS_Context* cc,
                                 L"m/d/yy h:MM tt",
                                 L"m/d/yy HH:MM"};
 
-  ASSERT(iIndex < FX_ArraySize(cFormats));
-
-  if (iIndex < 0)
-    iIndex = 0;
-  if (iIndex >= FX_ArraySize(cFormats))
+  if (iIndex < 0 || (static_cast<size_t>(iIndex) >= FX_ArraySize(cFormats)))
     iIndex = 0;
+
   CJS_Parameters newParams;
   CJS_Value val(isolate, cFormats[iIndex]);
   newParams.push_back(val);
@@ -1569,12 +1563,9 @@ FX_BOOL CJS_PublicMethods::AFTime_Format(IFXJS_Context* cc,
   const FX_WCHAR* cFormats[] = {L"HH:MM", L"h:MM tt", L"HH:MM:ss",
                                 L"h:MM:ss tt"};
 
-  ASSERT(iIndex < FX_ArraySize(cFormats));
-
-  if (iIndex < 0)
-    iIndex = 0;
-  if (iIndex >= FX_ArraySize(cFormats))
+  if (iIndex < 0 || (static_cast<size_t>(iIndex) >= FX_ArraySize(cFormats)))
     iIndex = 0;
+
   CJS_Parameters newParams;
   CJS_Value val(isolate, cFormats[iIndex]);
   newParams.push_back(val);
@@ -1597,12 +1588,9 @@ FX_BOOL CJS_PublicMethods::AFTime_Keystroke(IFXJS_Context* cc,
   const FX_WCHAR* cFormats[] = {L"HH:MM", L"h:MM tt", L"HH:MM:ss",
                                 L"h:MM:ss tt"};
 
-  ASSERT(iIndex < FX_ArraySize(cFormats));
-
-  if (iIndex < 0)
-    iIndex = 0;
-  if (iIndex >= FX_ArraySize(cFormats))
+  if (iIndex < 0 || (static_cast<size_t>(iIndex) >= FX_ArraySize(cFormats)))
     iIndex = 0;
+
   CJS_Parameters newParams;
   CJS_Value val(isolate, cFormats[iIndex]);
   newParams.push_back(val);
@@ -1698,22 +1686,21 @@ FX_BOOL CJS_PublicMethods::AFSpecial_KeystrokeEx(IFXJS_Context* cc,
   if (wstrMask.IsEmpty())
     return TRUE;
 
-  std::wstring wstrValue = valEvent.c_str();
+  const size_t wstrMaskLen = wstrMask.GetLength();
+  const std::wstring wstrValue = valEvent.c_str();
 
   if (pEvent->WillCommit()) {
     if (wstrValue.empty())
       return TRUE;
-    int iIndexMask = 0;
-    for (std::wstring::iterator it = wstrValue.begin(); it != wstrValue.end();
-         it++) {
-      wchar_t w_Value = *it;
+    size_t iIndexMask = 0;
+    for (const auto& w_Value : wstrValue) {
       if (!maskSatisfied(w_Value, wstrMask[iIndexMask]))
         break;
       iIndexMask++;
     }
 
-    if (iIndexMask != wstrMask.GetLength() ||
-        (iIndexMask != wstrValue.size() && wstrMask.GetLength() != 0)) {
+    if (iIndexMask != wstrMaskLen ||
+        (iIndexMask != wstrValue.size() && wstrMaskLen != 0)) {
       Alert(
           pContext,
           JSGetStringFromID(pContext, IDS_STRING_JSAFNUMBER_KEYSTROKE).c_str());
@@ -1729,16 +1716,16 @@ FX_BOOL CJS_PublicMethods::AFSpecial_KeystrokeEx(IFXJS_Context* cc,
 
   int iIndexMask = pEvent->SelStart();
 
-  if (wstrValue.length() - (pEvent->SelEnd() - pEvent->SelStart()) +
-          wChange.length() >
-      (FX_DWORD)wstrMask.GetLength()) {
+  size_t combined_len = wstrValue.length() + wChange.length() -
+                        (pEvent->SelEnd() - pEvent->SelStart());
+  if (combined_len > wstrMaskLen) {
     Alert(pContext,
           JSGetStringFromID(pContext, IDS_STRING_JSPARAM_TOOLONG).c_str());
     pEvent->Rc() = FALSE;
     return TRUE;
   }
 
-  if (iIndexMask >= wstrMask.GetLength() && (!wChange.empty())) {
+  if (iIndexMask >= wstrMaskLen && (!wChange.empty())) {
     Alert(pContext,
           JSGetStringFromID(pContext, IDS_STRING_JSPARAM_TOOLONG).c_str());
     pEvent->Rc() = FALSE;
@@ -1746,7 +1733,7 @@ FX_BOOL CJS_PublicMethods::AFSpecial_KeystrokeEx(IFXJS_Context* cc,
   }
 
   for (std::wstring::iterator it = wChange.begin(); it != wChange.end(); it++) {
-    if (iIndexMask >= wstrMask.GetLength()) {
+    if (iIndexMask >= wstrMaskLen) {
       Alert(pContext,
             JSGetStringFromID(pContext, IDS_STRING_JSPARAM_TOOLONG).c_str());
       pEvent->Rc() = FALSE;