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 "JBig2_SymbolDict.h" | 7 #include "JBig2_SymbolDict.h" |
8 | 8 |
9 #include "../../../include/fxcrt/fx_memory.h" | 9 #include "../../../include/fxcrt/fx_memory.h" |
10 #include "JBig2_Image.h" | 10 #include "JBig2_Image.h" |
11 | 11 |
12 CJBig2_SymbolDict::CJBig2_SymbolDict() { | 12 CJBig2_SymbolDict::CJBig2_SymbolDict() { |
13 m_bContextRetained = FALSE; | |
14 m_gbContext = m_grContext = NULL; | |
15 } | 13 } |
16 | 14 |
17 CJBig2_SymbolDict::~CJBig2_SymbolDict() { | 15 CJBig2_SymbolDict::~CJBig2_SymbolDict() { |
18 if (m_bContextRetained) { | |
19 FX_Free(m_gbContext); | |
20 FX_Free(m_grContext); | |
21 } | |
22 } | 16 } |
23 | 17 |
24 nonstd::unique_ptr<CJBig2_SymbolDict> CJBig2_SymbolDict::DeepCopy() const { | 18 nonstd::unique_ptr<CJBig2_SymbolDict> CJBig2_SymbolDict::DeepCopy() const { |
25 nonstd::unique_ptr<CJBig2_SymbolDict> dst; | |
26 const CJBig2_SymbolDict* src = this; | 19 const CJBig2_SymbolDict* src = this; |
27 if (src->m_bContextRetained || src->m_gbContext || src->m_grContext) | 20 nonstd::unique_ptr<CJBig2_SymbolDict> dst(new CJBig2_SymbolDict); |
28 return dst; | |
29 | |
30 dst.reset(new CJBig2_SymbolDict); | |
31 for (size_t i = 0; i < src->m_SDEXSYMS.size(); ++i) { | 21 for (size_t i = 0; i < src->m_SDEXSYMS.size(); ++i) { |
32 CJBig2_Image* image = src->m_SDEXSYMS.get(i); | 22 CJBig2_Image* image = src->m_SDEXSYMS.get(i); |
33 dst->m_SDEXSYMS.push_back(image ? new CJBig2_Image(*image) : nullptr); | 23 dst->m_SDEXSYMS.push_back(image ? new CJBig2_Image(*image) : nullptr); |
34 } | 24 } |
| 25 dst->m_gbContext = src->m_gbContext; |
| 26 dst->m_grContext = src->m_grContext; |
35 return dst; | 27 return dst; |
36 } | 28 } |
OLD | NEW |