diff options
author | Tom Sepez <tsepez@chromium.org> | 2016-01-08 14:52:29 -0800 |
---|---|---|
committer | Tom Sepez <tsepez@chromium.org> | 2016-01-08 14:52:29 -0800 |
commit | 111d8db83ac04d15bd8d879e7dad4651ee8e27e9 (patch) | |
tree | 50a8c4d31e89b4f4936367b3c94d147956148c66 /core/src/fpdfapi/fpdf_page/fpdf_page_parser.cpp | |
parent | 8e3f8931c5dfb22ab3e0cf98821e2cca9369d69e (diff) | |
download | pdfium-111d8db83ac04d15bd8d879e7dad4651ee8e27e9.tar.xz |
Merge to XFA: Use unique_ptr in fpdf_page/.
Original Review URL: https://codereview.chromium.org/1568373003 .
(cherry picked from commit a893a05a5c8e1f666cbf7cf9043f5687bd06d084)e5ae7226fc3f
Includes the fix from e5ae7226fc3f.
TBR=thestig@chromium.org
Review URL: https://codereview.chromium.org/1565143004 .
Diffstat (limited to 'core/src/fpdfapi/fpdf_page/fpdf_page_parser.cpp')
-rw-r--r-- | core/src/fpdfapi/fpdf_page/fpdf_page_parser.cpp | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/core/src/fpdfapi/fpdf_page/fpdf_page_parser.cpp b/core/src/fpdfapi/fpdf_page/fpdf_page_parser.cpp index cfc581f4c8..d0cf9ed719 100644 --- a/core/src/fpdfapi/fpdf_page/fpdf_page_parser.cpp +++ b/core/src/fpdfapi/fpdf_page/fpdf_page_parser.cpp @@ -142,9 +142,6 @@ CPDF_StreamContentParser::CPDF_StreamContentParser( CPDF_StreamContentParser::~CPDF_StreamContentParser() { ClearAllParams(); - for (int i = 0; i < m_StateStack.GetSize(); ++i) { - delete m_StateStack[i]; - } FX_Free(m_pPathPoints); if (m_pLastImageDict) { m_pLastImageDict->Release(); @@ -937,19 +934,16 @@ void CPDF_StreamContentParser::Handle_EndPath() { AddPathObject(0, FALSE); } void CPDF_StreamContentParser::Handle_SaveGraphState() { - CPDF_AllStates* pStates = new CPDF_AllStates; + std::unique_ptr<CPDF_AllStates> pStates(new CPDF_AllStates); pStates->Copy(*m_pCurStates); - m_StateStack.Add(pStates); + m_StateStack.push_back(std::move(pStates)); } void CPDF_StreamContentParser::Handle_RestoreGraphState() { - int size = m_StateStack.GetSize(); - if (size == 0) { + if (m_StateStack.empty()) return; - } - CPDF_AllStates* pStates = m_StateStack.GetAt(size - 1); + std::unique_ptr<CPDF_AllStates> pStates = std::move(m_StateStack.back()); + m_StateStack.pop_back(); m_pCurStates->Copy(*pStates); - delete pStates; - m_StateStack.RemoveAt(size - 1); } void CPDF_StreamContentParser::Handle_Rectangle() { if (m_Options.m_bTextOnly) { |