summaryrefslogtreecommitdiff
path: root/core/src/fpdfapi/fpdf_page/fpdf_page_parser.cpp
diff options
context:
space:
mode:
authorTom Sepez <tsepez@chromium.org>2016-01-08 14:52:29 -0800
committerTom Sepez <tsepez@chromium.org>2016-01-08 14:52:29 -0800
commit111d8db83ac04d15bd8d879e7dad4651ee8e27e9 (patch)
tree50a8c4d31e89b4f4936367b3c94d147956148c66 /core/src/fpdfapi/fpdf_page/fpdf_page_parser.cpp
parent8e3f8931c5dfb22ab3e0cf98821e2cca9369d69e (diff)
downloadpdfium-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.cpp16
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) {