From 385d32f64613f08bad5cb63f0b8dc4f847f240f4 Mon Sep 17 00:00:00 2001 From: Tom Sepez Date: Fri, 26 May 2017 13:08:36 -0700 Subject: Fix CPDF_PageRenderContext cleanup Make CFX_RenderDevice, which owns the IFX_RenderDeviceDriver, responsible for restoring driver state as part of its destruction so that its callers don't have to do so out of turn. Then re-order CPDF_PageRenderContext destruction order so that the progressive renderer is destroyed before the device, and the device destroyed before the options because of unowned pointers to objects owned by these. Bug: 726755 Change-Id: I9a6f23da12140b2758b86e6f33f715ad1c679c3f Reviewed-on: https://pdfium-review.googlesource.com/6073 Reviewed-by: Lei Zhang Commit-Queue: Tom Sepez --- core/fpdfapi/cpdf_pagerendercontext.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'core/fpdfapi') diff --git a/core/fpdfapi/cpdf_pagerendercontext.h b/core/fpdfapi/cpdf_pagerendercontext.h index 27244e7fc3..5cbcdb7759 100644 --- a/core/fpdfapi/cpdf_pagerendercontext.h +++ b/core/fpdfapi/cpdf_pagerendercontext.h @@ -21,11 +21,12 @@ class CPDF_PageRenderContext { CPDF_PageRenderContext(); ~CPDF_PageRenderContext(); + // Specific destruction order required. std::unique_ptr m_pAnnots; + std::unique_ptr m_pOptions; std::unique_ptr m_pDevice; std::unique_ptr m_pContext; std::unique_ptr m_pRenderer; - std::unique_ptr m_pOptions; }; #endif // CORE_FPDFAPI_CPDF_PAGERENDERCONTEXT_H_ -- cgit v1.2.3