summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Sepez <tsepez@chromium.org>2018-02-06 20:44:05 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-02-06 20:44:05 +0000
commitf3f1869409a59adbfde4b2b546f30c81051aad14 (patch)
treeda2ca002c530bc069d22044a77ed0349496c4912
parent837b1751975e4cbcb1ff56d0e68c1ac2b8dbd712 (diff)
downloadpdfium-f3f1869409a59adbfde4b2b546f30c81051aad14.tar.xz
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 <dsinclair@chromium.org> Commit-Queue: Tom Sepez <tsepez@chromium.org>
-rw-r--r--fxjs/fxjs_v8.cpp11
-rw-r--r--fxjs/fxjs_v8.h2
2 files changed, 5 insertions, 8 deletions
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<v8::Object> obj = NewFxDynamicObj(i, true);
if (!obj.IsEmpty()) {
v8Context->Global()->Set(v8Context, pObjName, obj).FromJust();
- m_StaticObjects[i] = new v8::Global<v8::Object>(GetIsolate(), obj);
- } else {
- m_StaticObjects[i] = nullptr;
+ m_StaticObjects[i] = v8::Global<v8::Object>(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<v8::Object>::New(GetIsolate(), *m_StaticObjects[i]);
- delete m_StaticObjects[i];
- m_StaticObjects[i] = nullptr;
+ } else if (!m_StaticObjects[i].IsEmpty()) {
+ pObj = v8::Local<v8::Object>::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<v8::Context> m_V8Context;
- std::vector<v8::Global<v8::Object>*> m_StaticObjects;
+ std::vector<v8::Global<v8::Object>> m_StaticObjects;
std::map<WideString, v8::Global<v8::Array>> m_ConstArrays;
};