diff options
author | Tom Sepez <tsepez@chromium.org> | 2017-01-30 14:49:24 -0800 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2017-01-31 00:42:43 +0000 |
commit | 51d02b341dd56f8e365444cb9e4af7e0ffe55ae5 (patch) | |
tree | 616f11f803bc067eecc2c2c94684b3062a190221 /xfa/fxgraphics | |
parent | 02d83e1f963f56f61de670161e12ffb131c56d7b (diff) | |
download | pdfium-51d02b341dd56f8e365444cb9e4af7e0ffe55ae5.tar.xz |
use std::vector in cfx_graphics.h and xfa_ffwidget.h
Change-Id: I19f2e729b58de42506e8fc2811dd06d406470314
Reviewed-on: https://pdfium-review.googlesource.com/2470
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'xfa/fxgraphics')
-rw-r--r-- | xfa/fxgraphics/cfx_graphics.cpp | 37 | ||||
-rw-r--r-- | xfa/fxgraphics/cfx_graphics.h | 3 |
2 files changed, 18 insertions, 22 deletions
diff --git a/xfa/fxgraphics/cfx_graphics.cpp b/xfa/fxgraphics/cfx_graphics.cpp index 059872f81c..120634ca51 100644 --- a/xfa/fxgraphics/cfx_graphics.cpp +++ b/xfa/fxgraphics/cfx_graphics.cpp @@ -630,30 +630,25 @@ FWL_Error CFX_Graphics::EnableAntialiasing(bool isAntialiasing) { } FWL_Error CFX_Graphics::SaveGraphState() { - if (m_type == FX_CONTEXT_Device && m_renderDevice) { - m_renderDevice->SaveState(); - m_infoStack.Add(new TInfo(m_info)); - return FWL_Error::Succeeded; - } - return FWL_Error::PropertyInvalid; + if (m_type != FX_CONTEXT_Device || !m_renderDevice) + return FWL_Error::PropertyInvalid; + + m_renderDevice->SaveState(); + m_infoStack.push_back(pdfium::MakeUnique<TInfo>(m_info)); + return FWL_Error::Succeeded; } FWL_Error CFX_Graphics::RestoreGraphState() { - if (m_type == FX_CONTEXT_Device && m_renderDevice) { - m_renderDevice->RestoreState(false); - int32_t size = m_infoStack.GetSize(); - if (size <= 0) { - return FWL_Error::IntermediateValueInvalid; - } - int32_t topIndex = size - 1; - std::unique_ptr<TInfo> info(m_infoStack.GetAt(topIndex)); - if (!info) - return FWL_Error::IntermediateValueInvalid; - m_info = *info; - m_infoStack.RemoveAt(topIndex); - return FWL_Error::Succeeded; - } - return FWL_Error::PropertyInvalid; + if (m_type != FX_CONTEXT_Device || !m_renderDevice) + return FWL_Error::PropertyInvalid; + + m_renderDevice->RestoreState(false); + if (m_infoStack.empty() || !m_infoStack.back()) + return FWL_Error::IntermediateValueInvalid; + + m_info = *m_infoStack.back(); + m_infoStack.pop_back(); + return FWL_Error::Succeeded; } FWL_Error CFX_Graphics::GetLineCap(CFX_GraphStateData::LineCap& lineCap) const { diff --git a/xfa/fxgraphics/cfx_graphics.h b/xfa/fxgraphics/cfx_graphics.h index e18564bf6d..48784254b0 100644 --- a/xfa/fxgraphics/cfx_graphics.h +++ b/xfa/fxgraphics/cfx_graphics.h @@ -8,6 +8,7 @@ #define XFA_FXGRAPHICS_CFX_GRAPHICS_H_ #include <memory> +#include <vector> #include "core/fxcrt/fx_system.h" #include "core/fxge/cfx_fxgedevice.h" @@ -233,7 +234,7 @@ class CFX_Graphics { CFX_RectF& rect); CFX_RenderDevice* m_renderDevice; - CFX_ArrayTemplate<TInfo*> m_infoStack; + std::vector<std::unique_ptr<TInfo>> m_infoStack; std::unique_ptr<CAGG_Graphics> m_aggGraphics; friend class CAGG_Graphics; }; |