From 974b4a6c4bceb50bbe5bf316e9e273b62eaeceac Mon Sep 17 00:00:00 2001 From: tsepez Date: Tue, 13 Dec 2016 12:48:13 -0800 Subject: Return unique_ptr<>s from fxcodec/ Review-Url: https://codereview.chromium.org/2572843002 --- core/fpdfapi/parser/fpdf_parser_decode.cpp | 7 +++---- core/fpdfapi/parser/fpdf_parser_decode.h | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+), 4 deletions(-) (limited to 'core/fpdfapi/parser') diff --git a/core/fpdfapi/parser/fpdf_parser_decode.cpp b/core/fpdfapi/parser/fpdf_parser_decode.cpp index 6398c71835..884b5c50d1 100644 --- a/core/fpdfapi/parser/fpdf_parser_decode.cpp +++ b/core/fpdfapi/parser/fpdf_parser_decode.cpp @@ -245,7 +245,7 @@ uint32_t RunLengthDecode(const uint8_t* src_buf, return std::min(i + 1, src_size); } -CCodec_ScanlineDecoder* FPDFAPI_CreateFaxDecoder( +std::unique_ptr FPDFAPI_CreateFaxDecoder( const uint8_t* src_buf, uint32_t src_size, int width, @@ -273,7 +273,7 @@ CCodec_ScanlineDecoder* FPDFAPI_CreateFaxDecoder( Columns, Rows); } -CCodec_ScanlineDecoder* FPDFAPI_CreateFlateDecoder( +std::unique_ptr FPDFAPI_CreateFlateDecoder( const uint8_t* src_buf, uint32_t src_size, int width, @@ -288,9 +288,8 @@ CCodec_ScanlineDecoder* FPDFAPI_CreateFlateDecoder( Colors = pParams->GetIntegerFor("Colors", 1); BitsPerComponent = pParams->GetIntegerFor("BitsPerComponent", 8); Columns = pParams->GetIntegerFor("Columns", 1); - if (!CheckFlateDecodeParams(Colors, BitsPerComponent, Columns)) { + if (!CheckFlateDecodeParams(Colors, BitsPerComponent, Columns)) return nullptr; - } } return CPDF_ModuleMgr::Get()->GetFlateModule()->CreateDecoder( src_buf, src_size, width, height, nComps, bpc, predictor, Colors, diff --git a/core/fpdfapi/parser/fpdf_parser_decode.h b/core/fpdfapi/parser/fpdf_parser_decode.h index 4d99f1559d..dc8ecf0c9b 100644 --- a/core/fpdfapi/parser/fpdf_parser_decode.h +++ b/core/fpdfapi/parser/fpdf_parser_decode.h @@ -7,8 +7,11 @@ #ifndef CORE_FPDFAPI_PARSER_FPDF_PARSER_DECODE_H_ #define CORE_FPDFAPI_PARSER_FPDF_PARSER_DECODE_H_ +#include + #include "core/fxcrt/fx_basic.h" +class CCodec_ScanlineDecoder; class CPDF_Dictionary; // Indexed by 8-bit char code, contains unicode code points. @@ -45,6 +48,22 @@ uint32_t RunLengthDecode(const uint8_t* src_buf, uint8_t*& dest_buf, uint32_t& dest_size); +std::unique_ptr FPDFAPI_CreateFaxDecoder( + const uint8_t* src_buf, + uint32_t src_size, + int width, + int height, + const CPDF_Dictionary* pParams); + +std::unique_ptr FPDFAPI_CreateFlateDecoder( + const uint8_t* src_buf, + uint32_t src_size, + int width, + int height, + int nComps, + int bpc, + const CPDF_Dictionary* pParams); + // Public for testing. uint32_t A85Decode(const uint8_t* src_buf, uint32_t src_size, -- cgit v1.2.3