From c22d671728605bc614dc84ec6a42a5647808b30d Mon Sep 17 00:00:00 2001 From: Tom Sepez Date: Tue, 5 Jun 2018 22:33:31 +0000 Subject: Introduce IJS_Runtime::ScopedEventContext helper class. This proves that m_EventContextArray is, in fact, a stack. Tidy one function by using AutoRestorer while at it. Change-Id: I319538b4eadcd9ce83319aa73861635dd5eb8c36 Reviewed-on: https://pdfium-review.googlesource.com/33970 Reviewed-by: dsinclair Commit-Queue: Tom Sepez --- fxjs/cjs_runtime.cpp | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) (limited to 'fxjs/cjs_runtime.cpp') diff --git a/fxjs/cjs_runtime.cpp b/fxjs/cjs_runtime.cpp index 22dc904c1f..a8640eaa34 100644 --- a/fxjs/cjs_runtime.cpp +++ b/fxjs/cjs_runtime.cpp @@ -80,9 +80,8 @@ CJS_Runtime::CJS_Runtime(CPDFSDK_FormFillEnvironment* pFormFillEnv) if (m_isolateManaged || FXJS_GlobalIsolateRefCount() == 0) DefineJSObjects(); - IJS_EventContext* pContext = NewEventContext(); + ScopedEventContext pContext(this); InitializeEngine(); - ReleaseEventContext(pContext); SetFormFillEnvToDocument(); } @@ -153,11 +152,8 @@ IJS_EventContext* CJS_Runtime::NewEventContext() { } void CJS_Runtime::ReleaseEventContext(IJS_EventContext* pContext) { - auto it = std::find(m_EventContextArray.begin(), m_EventContextArray.end(), - pdfium::FakeUniquePtr( - static_cast(pContext))); - if (it != m_EventContextArray.end()) - m_EventContextArray.erase(it); + ASSERT(pContext == m_EventContextArray.back().get()); + m_EventContextArray.pop_back(); } CJS_EventContext* CJS_Runtime::GetCurrentEventContext() const { -- cgit v1.2.3