Cherry-pick to XFA: Fix some clang warnings with -Wmissing-braces in pdfium.
authorNico Weber <thakis@chromium.org>
Wed, 1 Jul 2015 21:08:08 +0000 (14:08 -0700)
committerNico Weber <thakis@chromium.org>
Wed, 1 Jul 2015 21:11:22 +0000 (14:11 -0700)
Clang warns if there are missing braces around a subobject
initializer. The most common idiom that triggers this is:
  STRUCT s = {0};
if the first field of STRUCT is itself a struct. This can
be more simply written as:
  STRUCT s = {};
which also prevents the warning from firing.

Other instances of the warning have been fixed by adding
braces where appropriate.

R=brucedawson@chromium.org

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

core/src/fpdfapi/fpdf_page/fpdf_page_parser_old.cpp
core/src/fxcrt/fxcrt_windows.cpp
fpdfsdk/src/fpdf_flatten.cpp
fpdfsdk/src/javascript/util.cpp
samples/pdfium_test.cc
third_party/BUILD.gn
third_party/third_party.gyp

index ff1f6c4..3d12ee9 100644 (file)
@@ -154,7 +154,7 @@ void CPDF_StreamContentParser::Handle_BeginImage()
 }
 void CPDF_StreamContentParser::ParsePathObject()
 {
-    FX_FLOAT params[6] = {0};
+    FX_FLOAT params[6] = {};
     int nParams = 0;
     int last_pos = m_pSyntax->GetPos();
     while (1) {
index e3dff04..43765a7 100644 (file)
@@ -98,7 +98,7 @@ FX_FILESIZE CFXCRT_FileAccess_Win64::GetSize() const
     if (!m_hFile) {
         return 0;
     }
-    LARGE_INTEGER size = {0, 0};
+    LARGE_INTEGER size = {};
     if (!::GetFileSizeEx(m_hFile, &size)) {
         return 0;
     }
@@ -109,8 +109,8 @@ FX_FILESIZE CFXCRT_FileAccess_Win64::GetPosition() const
     if (!m_hFile) {
         return (FX_FILESIZE) - 1;
     }
-    LARGE_INTEGER dist = {0, 0};
-    LARGE_INTEGER newPos = {0, 0};
+    LARGE_INTEGER dist = {};
+    LARGE_INTEGER newPos = {};
     if (!::SetFilePointerEx(m_hFile, dist, &newPos, FILE_CURRENT)) {
         return (FX_FILESIZE) - 1;
     }
@@ -123,7 +123,7 @@ FX_FILESIZE CFXCRT_FileAccess_Win64::SetPosition(FX_FILESIZE pos)
     }
     LARGE_INTEGER dist;
     dist.QuadPart = pos;
-    LARGE_INTEGER newPos = {0, 0};
+    LARGE_INTEGER newPos = {};
     if (!::SetFilePointerEx(m_hFile, dist, &newPos, FILE_BEGIN)) {
         return (FX_FILESIZE) - 1;
     }
index b9edef9..9ef6117 100644 (file)
@@ -419,7 +419,7 @@ DLLEXPORT int STDCALL FPDFPage_Flatten( FPDF_PAGE page, int nFlag)
        {
                for (int iKey = 0; /*iKey < 100*/; iKey++)
                {
-                       char sExtend[5] = {0};
+                       char sExtend[5] = {};
                        FXSYS_itoa(iKey, sExtend, 10);
                        key = CFX_ByteString("FFT") + CFX_ByteString(sExtend);
 
index 22e1c6d..c4f0309 100644 (file)
@@ -303,7 +303,7 @@ FX_BOOL util::printd(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value&
                iMin = jsDate.GetMinutes();
                iSec = jsDate.GetSeconds();
 
-               struct tm time = {0};
+               struct tm time = {};
                time.tm_year = iYear-1900;
                time.tm_mon = iMonth;
                time.tm_mday = iDay;
@@ -360,7 +360,7 @@ FX_BOOL util::printd(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value&
                CFX_WideString strFormat;
 //             strFormat.Format(L"%d,%d,%d,%d,%d,%d",iYear, iMonth, iDay, iHour, iMin, iSec);
 //             CString strFormat = cppTm.Format(cFormat.c_str());
-               wchar_t buf[64] = {0};
+               wchar_t buf[64] = {};
                strFormat = wcsftime(buf, 64, cFormat.c_str(), &time);
                cFormat = buf;
                vRet = cFormat.c_str();
@@ -399,7 +399,7 @@ void util::printd(const std::wstring &cFormat2, CJS_Date jsDate, bool bXFAPictur
        iMin = jsDate.GetMinutes();
        iSec = jsDate.GetSeconds();
 
-       struct tm time = {0};
+       struct tm time = {};
        time.tm_year = iYear-1900;
        time.tm_mon = iMonth;
        time.tm_mday = iDay;
@@ -454,7 +454,7 @@ void util::printd(const std::wstring &cFormat2, CJS_Date jsDate, bool bXFAPictur
        }
 
        CFX_WideString strFormat;
-       wchar_t buf[64] = {0};
+       wchar_t buf[64] = {};
        strFormat = wcsftime(buf, 64, cFormat.c_str(), &time);
        cFormat = buf;
        cPurpose = cFormat;
index 7c6b8b9..417bd56 100644 (file)
@@ -216,7 +216,7 @@ static void WriteBmp(const char* pdf_name, int num, const void* buffer,
   if (!fp)
     return;
 
-  BITMAPINFO bmi = {0};
+  BITMAPINFO bmi = {};
   bmi.bmiHeader.biSize = sizeof(bmi) - sizeof(RGBQUAD);
   bmi.bmiHeader.biWidth = width;
   bmi.bmiHeader.biHeight = -height;  // top-down image
@@ -225,7 +225,7 @@ static void WriteBmp(const char* pdf_name, int num, const void* buffer,
   bmi.bmiHeader.biCompression = BI_RGB;
   bmi.bmiHeader.biSizeImage = 0;
 
-  BITMAPFILEHEADER file_header = {0};
+  BITMAPFILEHEADER file_header = {};
   file_header.bfType = 0x4d42;
   file_header.bfSize = sizeof(file_header) + bmi.bmiHeader.biSize + out_len;
   file_header.bfOffBits = file_header.bfSize - out_len;
index 549df8a..44d5e75 100644 (file)
@@ -95,10 +95,18 @@ source_set("fx_agg") {
 }
 
 source_set("fx_lcms2") {
+  config("fx_lcms2_warnings") {
+    if (is_clang) {
+      # cmslut.cc is sloppy with aggregate initialization. Version 2.7 of this
+      # library doesn't appear to have this problem.
+      cflags = [ "-Wno-missing-braces" ]
+    }
+  }
   configs -= [ "//build/config/compiler:chromium_code" ]
   configs += [
     "//build/config/compiler:no_chromium_code",
     "//third_party/pdfium:pdfium_config",
+    ":fx_lcms2_warnings",
   ]
   sources = [
     "lcms2-2.6/include/lcms2.h",
index ff65771..98ec814 100644 (file)
           ],
         }],
       ],
+      'variables': {
+        'clang_warning_flags': [
+          '-Wno-missing-braces',
+        ],
+      },
     },
     {
       'target_name': 'fx_libjpeg',