From 1629f609d3722f25491bbbb53b2cce97a03a5867 Mon Sep 17 00:00:00 2001 From: Tom Sepez Date: Fri, 21 Apr 2017 14:11:26 -0700 Subject: Add CFX_RenderDevice::AutoRestorer() Avoid cleanup on every return path. Change-Id: I6978adb6f31020d812ac88c5d46c703d1461d373 Reviewed-on: https://pdfium-review.googlesource.com/4435 Reviewed-by: Lei Zhang Reviewed-by: Tom Sepez Commit-Queue: Tom Sepez --- core/fxge/cfx_renderdevice.h | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'core/fxge') diff --git a/core/fxge/cfx_renderdevice.h b/core/fxge/cfx_renderdevice.h index 794c2fec6b..6aa4528f05 100644 --- a/core/fxge/cfx_renderdevice.h +++ b/core/fxge/cfx_renderdevice.h @@ -83,6 +83,17 @@ class FXTEXT_CHARPOS { class CFX_RenderDevice { public: + class StateRestorer { + public: + explicit StateRestorer(CFX_RenderDevice* pDevice) : m_pDevice(pDevice) { + m_pDevice->SaveState(); + } + ~StateRestorer() { m_pDevice->RestoreState(false); } + + private: + CFX_RenderDevice* m_pDevice; + }; + CFX_RenderDevice(); virtual ~CFX_RenderDevice(); -- cgit v1.2.3