| 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 |