From f1251c1ff2b3452854681d0648b4c1ca4180ff0d Mon Sep 17 00:00:00 2001 From: Dan Sinclair Date: Tue, 20 Oct 2015 16:24:45 -0400 Subject: [Merge to XFA] Revert "Revert "Add type cast definitions for CPDF_Dictionary."" This reverts commit 937840e1722d1f2b77d80575d6e710d760662c9c. Add type cast definitions for CPDF_Dictionary. This CL adds ToCPDFDictionary type definitions and updates one file to use instead of straight casts. I had to fix two places where we'd casted off the constness of the original pointer. BUG=pdfium:201 R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1420583003 . (cherry picked from commit 39869b641511c882d78e17548293cdb458c36f38) Review URL: https://codereview.chromium.org/1410343003 . --- core/src/fpdfapi/fpdf_parser/fpdf_parser_decode.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'core/src/fpdfapi/fpdf_parser/fpdf_parser_decode.cpp') diff --git a/core/src/fpdfapi/fpdf_parser/fpdf_parser_decode.cpp b/core/src/fpdfapi/fpdf_parser/fpdf_parser_decode.cpp index 2d6e9f3436..55c62e2878 100644 --- a/core/src/fpdfapi/fpdf_parser/fpdf_parser_decode.cpp +++ b/core/src/fpdfapi/fpdf_parser/fpdf_parser_decode.cpp @@ -283,7 +283,7 @@ ICodec_ScanlineDecoder* FPDFAPI_CreateFlateDecoder( int predictor = 0; int Colors = 0, BitsPerComponent = 0, Columns = 0; if (pParams) { - predictor = ((CPDF_Dictionary*)pParams)->GetInteger(FX_BSTRC("Predictor")); + predictor = pParams->GetInteger(FX_BSTRC("Predictor")); Colors = pParams->GetInteger(FX_BSTRC("Colors"), 1); BitsPerComponent = pParams->GetInteger(FX_BSTRC("BitsPerComponent"), 8); Columns = pParams->GetInteger(FX_BSTRC("Columns"), 1); @@ -306,9 +306,8 @@ FX_DWORD FPDFAPI_FlateOrLZWDecode(FX_BOOL bLZW, FX_BOOL bEarlyChange = TRUE; int Colors = 0, BitsPerComponent = 0, Columns = 0; if (pParams) { - predictor = ((CPDF_Dictionary*)pParams)->GetInteger(FX_BSTRC("Predictor")); - bEarlyChange = - ((CPDF_Dictionary*)pParams)->GetInteger(FX_BSTRC("EarlyChange"), 1); + predictor = pParams->GetInteger(FX_BSTRC("Predictor")); + bEarlyChange = pParams->GetInteger(FX_BSTRC("EarlyChange"), 1); Colors = pParams->GetInteger(FX_BSTRC("Colors"), 1); BitsPerComponent = pParams->GetInteger(FX_BSTRC("BitsPerComponent"), 8); Columns = pParams->GetInteger(FX_BSTRC("Columns"), 1); @@ -365,7 +364,9 @@ FX_BOOL PDF_DataDecode(const uint8_t* src_buf, int estimated_size = i == DecoderList.GetSize() - 1 ? last_estimated_size : 0; CFX_ByteString decoder = DecoderList[i]; - CPDF_Dictionary* pParam = (CPDF_Dictionary*)ParamList[i]; + // Use ToDictionary here because we can push NULL into the ParamList. + CPDF_Dictionary* pParam = + ToDictionary(static_cast(ParamList[i])); uint8_t* new_buf = NULL; FX_DWORD new_size = (FX_DWORD)-1; int offset = -1; -- cgit v1.2.3