Fixes for re-enabling more MSVC level 4 warnings: pdfium/ edition (try 2) 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
diff --git a/core/include/fxcrt/fx_ucd.h b/core/include/fxcrt/fx_ucd.h index 447d555..9e1862a 100644 --- a/core/include/fxcrt/fx_ucd.h +++ b/core/include/fxcrt/fx_ucd.h
@@ -88,20 +88,6 @@ 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);
diff --git a/fpdfsdk/include/fpdfview.h b/fpdfsdk/include/fpdfview.h index a563762..f4f1375 100644 --- a/fpdfsdk/include/fpdfview.h +++ b/fpdfsdk/include/fpdfview.h
@@ -487,11 +487,7 @@ // 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 @@ // 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
diff --git a/fpdfsdk/src/fpdfview.cpp b/fpdfsdk/src/fpdfview.cpp index 10eaf5d..a9aa9a8 100644 --- a/fpdfsdk/src/fpdfview.cpp +++ b/fpdfsdk/src/fpdfview.cpp
@@ -725,8 +725,7 @@ 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 @@ 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)
diff --git a/samples/pdfium_test.cc b/samples/pdfium_test.cc index c504bf4..f8e5673 100644 --- a/samples/pdfium_test.cc +++ b/samples/pdfium_test.cc
@@ -230,7 +230,7 @@ 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);