From f3f1869409a59adbfde4b2b546f30c81051aad14 Mon Sep 17 00:00:00 2001 From: Tom Sepez Date: Tue, 6 Feb 2018 20:44:05 +0000 Subject: Avoid needless malloc for v8:Global array. They have move semantics, so they can directly be members of the array. Change-Id: Ia73cbc06fd22665693ae1a4efe6a6f64eca1b5fb Reviewed-on: https://pdfium-review.googlesource.com/25490 Reviewed-by: dsinclair Commit-Queue: Tom Sepez --- fxjs/fxjs_v8.cpp | 11 ++++------- fxjs/fxjs_v8.h | 2 +- 2 files changed, 5 insertions(+), 8 deletions(-) (limited to 'fxjs') diff --git a/fxjs/fxjs_v8.cpp b/fxjs/fxjs_v8.cpp index 7869bab038..773f9025b1 100644 --- a/fxjs/fxjs_v8.cpp +++ b/fxjs/fxjs_v8.cpp @@ -417,9 +417,7 @@ void CFXJS_Engine::InitializeEngine() { v8::Local obj = NewFxDynamicObj(i, true); if (!obj.IsEmpty()) { v8Context->Global()->Set(v8Context, pObjName, obj).FromJust(); - m_StaticObjects[i] = new v8::Global(GetIsolate(), obj); - } else { - m_StaticObjects[i] = nullptr; + m_StaticObjects[i] = v8::Global(GetIsolate(), obj); } } } @@ -444,10 +442,9 @@ void CFXJS_Engine::ReleaseEngine() { if (pObjDef->m_ObjType == FXJSOBJTYPE_GLOBAL) { pObj = context->Global()->GetPrototype()->ToObject(context).ToLocalChecked(); - } else if (m_StaticObjects[i] && !m_StaticObjects[i]->IsEmpty()) { - pObj = v8::Local::New(GetIsolate(), *m_StaticObjects[i]); - delete m_StaticObjects[i]; - m_StaticObjects[i] = nullptr; + } else if (!m_StaticObjects[i].IsEmpty()) { + pObj = v8::Local::New(GetIsolate(), m_StaticObjects[i]); + m_StaticObjects[i].Reset(); } if (!pObj.IsEmpty()) { diff --git a/fxjs/fxjs_v8.h b/fxjs/fxjs_v8.h index 9dcaeb84c1..3e8e861403 100644 --- a/fxjs/fxjs_v8.h +++ b/fxjs/fxjs_v8.h @@ -198,7 +198,7 @@ class CFXJS_Engine : public CJS_V8 { private: v8::Global m_V8Context; - std::vector*> m_StaticObjects; + std::vector> m_StaticObjects; std::map> m_ConstArrays; }; -- cgit v1.2.3