Resolve all but two VC++ build warnings in pdfium.
authorBruce Dawson <brucedawson@google.com>
Tue, 6 Jan 2015 21:12:09 +0000 (13:12 -0800)
committerBruce Dawson <brucedawson@google.com>
Tue, 6 Jan 2015 21:12:09 +0000 (13:12 -0800)
pdfium builds on Win32 have about 85 warnings (250 in the XFA
branch, totaling over 480 lines!), mostly from four lines in
a header file and a warning that should be disabled. This
change resolves all but two of them and turns on
warning-as-errors. Bugs have been filed for the two
remaining warnings:
https://code.google.com/p/pdfium/issues/detail?id=100
the 64-bit warnings:
https://code.google.com/p/pdfium/issues/detail?id=101
and the Linux warnings:
https://code.google.com/p/pdfium/issues/detail?id=102

The fix to the double->float truncation bugs will also
improve code-generation.

R=bo_xu@foxitsoftware.com, scottmg@chromium.org, tsepez@chromium.org

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

build/standalone.gypi
core/src/fpdftext/fpdf_text_int.cpp
pdfium.gyp

index d335f05..0d650a3 100644 (file)
       'IntermediateDirectory': '$(OutDir)\\obj\\$(ProjectName)',
       'CharacterSet': '1',
     },
+    'msvs_disabled_warnings': [4800, 4996],
     'msvs_settings': {
       'VCCLCompilerTool': {
         'MinimalRebuild': 'false',
         'EnableFunctionLevelLinking': 'true',
         'RuntimeTypeInfo': 'false',
         'WarningLevel': '3',
-        'WarnAsError': 'false',
         'DebugInformationFormat': '3',
         'Detect64BitPortabilityProblems': 'false',
         'conditions': [
           }, {
             'ExceptionHandling': '0',
           }],
+          ['target_arch=="x64"', {
+            # 64-bit warnings need to be resolved.
+            # https://code.google.com/p/pdfium/issues/detail?id=101
+            'WarnAsError': 'false',
+          }, {
+            'WarnAsError': 'true',
+          }],
         ],
       },
       'VCLibrarianTool': {
index c9cfbdd..70178a5 100644 (file)
@@ -37,13 +37,13 @@ FX_BOOL _IsIgnoreSpaceCharacter(FX_WCHAR curChar)
 FX_FLOAT _NormalizeThreshold(FX_FLOAT threshold)
 {
     if (threshold < 300) {
-        return threshold / 2.0;
+        return threshold / 2.0f;
     } else if (threshold < 500) {
-        return threshold / 4.0;
+        return threshold / 4.0f;
     } else if (threshold < 700) {
-        return threshold / 5.0;
+        return threshold / 5.0f;
     }
-    return threshold / 6.0;
+    return threshold / 6.0f;
 }
 
 FX_FLOAT _CalculateBaseSpace(const CPDF_TextObject* pTextObj,
index 0ac0471..f50005d 100644 (file)
       'include_dirs': [
       ],
       'ldflags': [ '-L<(PRODUCT_DIR)',],
+      'msvs_settings': {
+        'VCCLCompilerTool': {
+          # Unresolved warnings in fx_codec_jpx_opj.cpp
+          # https://code.google.com/p/pdfium/issues/detail?id=100
+          'WarnAsError': 'false',
+        },
+      },
       'sources': [
         'core/include/fxcodec/fx_codec.h',
         'core/include/fxcodec/fx_codec_def.h',