From 2e2acbdc523735fdbbf69b1f9fee9a24e4303045 Mon Sep 17 00:00:00 2001 From: Lei Zhang Date: Tue, 16 Oct 2018 05:21:13 +0000 Subject: Make {A85,RunLength}Encode()'s buffer out parameter a unique_ptr. Change-Id: I3f06ea7ed39c8a8fff57e07f14ff6c21bedbc028 Reviewed-on: https://pdfium-review.googlesource.com/c/43998 Commit-Queue: Lei Zhang Reviewed-by: Tom Sepez --- core/fxge/win32/cfx_psrenderer.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'core/fxge') diff --git a/core/fxge/win32/cfx_psrenderer.cpp b/core/fxge/win32/cfx_psrenderer.cpp index e66e9685ff..11acfc8b3d 100644 --- a/core/fxge/win32/cfx_psrenderer.cpp +++ b/core/fxge/win32/cfx_psrenderer.cpp @@ -66,8 +66,10 @@ void PSCompressData(int PSLevel, *filter = "/FlateDecode filter "; } } else { - if (pEncoders->GetBasicModule()->RunLengthEncode({src_buf, src_size}, - &dest_buf, &dest_size)) { + std::unique_ptr dest_buf_unique; + if (pEncoders->GetBasicModule()->RunLengthEncode( + {src_buf, src_size}, &dest_buf_unique, &dest_size)) { + dest_buf = dest_buf_unique.release(); *filter = "/RunLengthDecode filter "; } } @@ -685,13 +687,12 @@ bool CFX_PSRenderer::DrawText(int nChars, } void CFX_PSRenderer::WritePSBinary(const uint8_t* data, int len) { - uint8_t* dest_buf; + std::unique_ptr dest_buf; uint32_t dest_size; CCodec_ModuleMgr* pEncoders = CPDF_ModuleMgr::Get()->GetCodecModule(); if (pEncoders->GetBasicModule()->A85Encode({data, static_cast(len)}, &dest_buf, &dest_size)) { - m_pStream->WriteBlock(dest_buf, dest_size); - FX_Free(dest_buf); + m_pStream->WriteBlock(dest_buf.get(), dest_size); } else { m_pStream->WriteBlock(data, len); } -- cgit v1.2.3