OLD | NEW |
1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
6 | 6 |
7 #include "core/fxcodec/fx_codec.h" | 7 #include "core/fxcodec/fx_codec.h" |
8 | 8 |
9 #include <cmath> | 9 #include <cmath> |
10 #include <memory> | 10 #include <memory> |
11 #include <utility> | 11 #include <utility> |
12 | 12 |
13 #include "core/fxcodec/codec/codec_int.h" | 13 #include "core/fxcodec/codec/codec_int.h" |
14 #include "core/fxcrt/fx_ext.h" | 14 #include "core/fxcrt/fx_ext.h" |
15 #include "core/fxcrt/fx_safe_types.h" | 15 #include "core/fxcrt/fx_safe_types.h" |
16 #include "third_party/base/logging.h" | 16 #include "third_party/base/logging.h" |
| 17 #include "third_party/base/ptr_util.h" |
17 | 18 |
18 CCodec_ModuleMgr::CCodec_ModuleMgr() | 19 CCodec_ModuleMgr::CCodec_ModuleMgr() |
19 : m_pBasicModule(new CCodec_BasicModule), | 20 : m_pBasicModule(new CCodec_BasicModule), |
20 m_pFaxModule(new CCodec_FaxModule), | 21 m_pFaxModule(new CCodec_FaxModule), |
21 m_pJpegModule(new CCodec_JpegModule), | 22 m_pJpegModule(new CCodec_JpegModule), |
22 m_pJpxModule(new CCodec_JpxModule), | 23 m_pJpxModule(new CCodec_JpxModule), |
23 m_pJbig2Module(new CCodec_Jbig2Module), | 24 m_pJbig2Module(new CCodec_Jbig2Module), |
24 m_pIccModule(new CCodec_IccModule), | 25 m_pIccModule(new CCodec_IccModule), |
25 #ifdef PDF_ENABLE_XFA | 26 #ifdef PDF_ENABLE_XFA |
26 m_pPngModule(new CCodec_PngModule), | 27 m_pPngModule(new CCodec_PngModule), |
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
295 ASSERT((uint32_t)count >= used_bytes); | 296 ASSERT((uint32_t)count >= used_bytes); |
296 if (used_bytes == count) { | 297 if (used_bytes == count) { |
297 m_SrcOffset++; | 298 m_SrcOffset++; |
298 GetNextOperator(); | 299 GetNextOperator(); |
299 return; | 300 return; |
300 } | 301 } |
301 count -= used_bytes; | 302 count -= used_bytes; |
302 m_Operator = 257 - count; | 303 m_Operator = 257 - count; |
303 } | 304 } |
304 | 305 |
305 CCodec_ScanlineDecoder* CCodec_BasicModule::CreateRunLengthDecoder( | 306 std::unique_ptr<CCodec_ScanlineDecoder> |
306 const uint8_t* src_buf, | 307 CCodec_BasicModule::CreateRunLengthDecoder(const uint8_t* src_buf, |
307 uint32_t src_size, | 308 uint32_t src_size, |
308 int width, | 309 int width, |
309 int height, | 310 int height, |
310 int nComps, | 311 int nComps, |
311 int bpc) { | 312 int bpc) { |
312 std::unique_ptr<CCodec_RLScanlineDecoder> pRLScanlineDecoder( | 313 auto pDecoder = pdfium::MakeUnique<CCodec_RLScanlineDecoder>(); |
313 new CCodec_RLScanlineDecoder); | 314 if (!pDecoder->Create(src_buf, src_size, width, height, nComps, bpc)) |
314 if (!pRLScanlineDecoder->Create(src_buf, src_size, width, height, nComps, | |
315 bpc)) { | |
316 return nullptr; | 315 return nullptr; |
317 } | |
318 | 316 |
319 return pRLScanlineDecoder.release(); | 317 return std::move(pDecoder); |
320 } | 318 } |
OLD | NEW |