diff options
author | Lei Zhang <thestig@chromium.org> | 2015-10-08 12:32:46 -0700 |
---|---|---|
committer | Lei Zhang <thestig@chromium.org> | 2015-10-08 12:32:46 -0700 |
commit | d1cb813d23df38a8e21df3314658995ded7c4b45 (patch) | |
tree | 121280512f7b23d2648b86f04840f5ecb4493226 /core/src/fxcodec/jbig2/JBig2_SymbolDict.cpp | |
parent | 67fd5df1a378195ae3fb40c862a4e6e58731020a (diff) | |
download | pdfium-d1cb813d23df38a8e21df3314658995ded7c4b45.tar.xz |
Merge to XFA: Put CJBig2_SymbolDict's images in a CJBig2_List container.
Also mark it private.
TBR=tsepez@chromium.org
Review URL: https://codereview.chromium.org/1395613003 .
(cherry picked from commit 8793b4a071fad51a770b93838e0752505b020e43)
Review URL: https://codereview.chromium.org/1397853002 .
Diffstat (limited to 'core/src/fxcodec/jbig2/JBig2_SymbolDict.cpp')
-rw-r--r-- | core/src/fxcodec/jbig2/JBig2_SymbolDict.cpp | 33 |
1 files changed, 10 insertions, 23 deletions
diff --git a/core/src/fxcodec/jbig2/JBig2_SymbolDict.cpp b/core/src/fxcodec/jbig2/JBig2_SymbolDict.cpp index 1ec56dfacc..a8f8a94529 100644 --- a/core/src/fxcodec/jbig2/JBig2_SymbolDict.cpp +++ b/core/src/fxcodec/jbig2/JBig2_SymbolDict.cpp @@ -10,12 +10,17 @@ #include "JBig2_Image.h" CJBig2_SymbolDict::CJBig2_SymbolDict() { - SDNUMEXSYMS = 0; - SDEXSYMS = NULL; m_bContextRetained = FALSE; m_gbContext = m_grContext = NULL; } +CJBig2_SymbolDict::~CJBig2_SymbolDict() { + if (m_bContextRetained) { + FX_Free(m_gbContext); + FX_Free(m_grContext); + } +} + nonstd::unique_ptr<CJBig2_SymbolDict> CJBig2_SymbolDict::DeepCopy() const { nonstd::unique_ptr<CJBig2_SymbolDict> dst; const CJBig2_SymbolDict* src = this; @@ -23,27 +28,9 @@ nonstd::unique_ptr<CJBig2_SymbolDict> CJBig2_SymbolDict::DeepCopy() const { return dst; dst.reset(new CJBig2_SymbolDict); - dst->SDNUMEXSYMS = src->SDNUMEXSYMS; - dst->SDEXSYMS = FX_Alloc(CJBig2_Image*, src->SDNUMEXSYMS); - for (FX_DWORD i = 0; i < src->SDNUMEXSYMS; ++i) { - if (src->SDEXSYMS[i]) { - dst->SDEXSYMS[i] = new CJBig2_Image(*(src->SDEXSYMS[i])); - } else { - dst->SDEXSYMS[i] = NULL; - } + for (size_t i = 0; i < src->m_SDEXSYMS.size(); ++i) { + CJBig2_Image* image = src->m_SDEXSYMS.get(i); + dst->m_SDEXSYMS.push_back(image ? new CJBig2_Image(*image) : nullptr); } return dst; } - -CJBig2_SymbolDict::~CJBig2_SymbolDict() { - if (SDEXSYMS) { - for (FX_DWORD i = 0; i < SDNUMEXSYMS; i++) { - delete SDEXSYMS[i]; - } - FX_Free(SDEXSYMS); - } - if (m_bContextRetained) { - FX_Free(m_gbContext); - FX_Free(m_grContext); - } -} |