Fixes for re-enabling more MSVC level 4 warnings: pdfium/ edition (try 2)
authorLei Zhang <thestig@chromium.org>
Wed, 9 Jul 2014 18:47:15 +0000 (11:47 -0700)
committerLei Zhang <thestig@chromium.org>
Wed, 9 Jul 2014 18:47:15 +0000 (11:47 -0700)
This contains fixes for the following sorts of issues:
* Nonstandard extension: unnamed struct/union

This also changes the signature of FPDF_FillRect() to enable the cleanest
possible changes in https://codereview.chromium.org/372273005 .

BUG=81439
TEST=none

Original patch by Peter Kasting <pkasting@chromium.org>
Original code review: https://codereview.chromium.org/376003003/

R=pkasting@chromium.org

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

core/include/fxcrt/fx_ucd.h
fpdfsdk/include/fpdfview.h
fpdfsdk/src/fpdfview.cpp
samples/pdfium_test.cc

index 447d555..9e1862a 100644 (file)
@@ -88,20 +88,6 @@ enum FX_CHARTYPE {
     FX_CHARTYPE_ArabicForm                     = (11 << FX_CHARTYPEBITS),
     FX_CHARTYPE_Arabic                         = (12 << FX_CHARTYPEBITS),
 };
-typedef struct _FX_CHARPROPERTIES {
-    union {
-        struct {
-            FX_DWORD   dwBreakType             : 6;
-            FX_DWORD   dwBidiClass             : 5;
-            FX_DWORD   dwCharType              : 4;
-            FX_DWORD   dwRotation              : 1;
-            FX_DWORD   dwCJKSpecial    : 1;
-            FX_DWORD   dwVertIndex             : 6;
-            FX_DWORD   dwBidiIndex             : 9;
-        };
-        FX_DWORD       dwCharProps;
-    };
-} FX_CHARPROPERTIES;
 FX_DWORD FX_GetUnicodeProperties(FX_WCHAR wch);
 FX_BOOL        FX_IsCtrlCode(FX_WCHAR ch);
 FX_BOOL        FX_IsRotationCode(FX_WCHAR ch);
index a563762..f4f1375 100644 (file)
@@ -487,11 +487,7 @@ DLLEXPORT FPDF_BITMAP STDCALL FPDFBitmap_CreateEx(int width, int height, int for
 //                     top                     -       The top side position. Starting from 0 at the top-most scan line.
 //                     width           -       Number of pixels to be filled in each scan line.
 //                     height          -       Number of scan lines to be filled.
-//                     red                     -       A number from 0 to 255, identifying the red intensity.
-//                     green           -       A number from 0 to 255, identifying the green intensity.
-//                     blue            -       A number from 0 to 255, identifying the blue intensity.
-//                     alpha           -       (Only if the alpha channeled is used when bitmap created) A number from 0 to 255,
-//                                                     identifying the alpha value.
+//                     color           -       A 32-bit value specifing the color, in 8888 ARGB format.
 // Return value:
 //                     None.
 // Comments:
@@ -500,8 +496,7 @@ DLLEXPORT FPDF_BITMAP STDCALL FPDFBitmap_CreateEx(int width, int height, int for
 //                     instead the background will be replaced by the source color and alpha.
 //                     If alpha channel is not used, the "alpha" parameter is ignored.
 //
-DLLEXPORT void STDCALL FPDFBitmap_FillRect(FPDF_BITMAP bitmap, int left, int top, int width, int height, 
-                                                                       int red, int green, int blue, int alpha);
+DLLEXPORT void STDCALL FPDFBitmap_FillRect(FPDF_BITMAP bitmap, int left, int top, int width, int height, FPDF_DWORD color);
 
 // Function: FPDFBitmap_GetBuffer
 //                     Get data buffer of an FXDIB
index 10eaf5d..a9aa9a8 100644 (file)
@@ -725,8 +725,7 @@ DLLEXPORT FPDF_BITMAP STDCALL FPDFBitmap_CreateEx(int width, int height, int for
        return pBitmap;
 }
 
-DLLEXPORT void STDCALL FPDFBitmap_FillRect(FPDF_BITMAP bitmap, int left, int top, int width, int height, 
-                                                                       int red, int green, int blue, int alpha)
+DLLEXPORT void STDCALL FPDFBitmap_FillRect(FPDF_BITMAP bitmap, int left, int top, int width, int height, FPDF_DWORD color)
 {
        if (bitmap == NULL) return;
 #ifdef _SKIA_SUPPORT_
@@ -735,9 +734,9 @@ DLLEXPORT void STDCALL FPDFBitmap_FillRect(FPDF_BITMAP bitmap, int left, int top
        CFX_FxgeDevice device;
 #endif
        device.Attach((CFX_DIBitmap*)bitmap);
-       if (!((CFX_DIBitmap*)bitmap)->HasAlpha()) alpha = 255;
+       if (!((CFX_DIBitmap*)bitmap)->HasAlpha()) color |= 0xFF000000;
        FX_RECT rect(left, top, left+width, top+height);
-       device.FillRect(&rect, FXARGB_MAKE(alpha, red, green, blue));
+       device.FillRect(&rect, color);
 }
 
 DLLEXPORT void* STDCALL FPDFBitmap_GetBuffer(FPDF_BITMAP bitmap)
index c504bf4..f8e5673 100644 (file)
@@ -230,7 +230,7 @@ void RenderPdf(const char* name, const char* pBuf, size_t len,
     int width = static_cast<int>(FPDF_GetPageWidth(page));
     int height = static_cast<int>(FPDF_GetPageHeight(page));
     FPDF_BITMAP bitmap = FPDFBitmap_Create(width, height, 0);
-    FPDFBitmap_FillRect(bitmap, 0, 0, width, height, 255, 255, 255, 255);
+    FPDFBitmap_FillRect(bitmap, 0, 0, width, height, 0xFFFFFFFF);
 
     FPDF_RenderPageBitmap(bitmap, page, 0, 0, width, height, 0, 0);
     FPDF_FFLDraw(form, bitmap, page, 0, 0, width, height, 0, 0);