Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1319)

Side by Side Diff: fpdfsdk/src/jsapi/fxjs_v8.cpp

Issue 1417973009: Fix memory leak in FXJS_ReleaseRuntime. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: cleanup and fixes Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #include "../../include/jsapi/fxjs_v8.h" 7 #include "../../include/jsapi/fxjs_v8.h"
8 8
9 #include "../../../core/include/fxcrt/fx_basic.h" 9 #include "../../../core/include/fxcrt/fx_basic.h"
10 10
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after
328 v8::Local<v8::Context>::New(pIsolate, v8PersistentContext); 328 v8::Local<v8::Context>::New(pIsolate, v8PersistentContext);
329 v8::Context::Scope context_scope(context); 329 v8::Context::Scope context_scope(context);
330 330
331 FXJS_PerIsolateData* pData = FXJS_PerIsolateData::Get(pIsolate); 331 FXJS_PerIsolateData* pData = FXJS_PerIsolateData::Get(pIsolate);
332 if (!pData) 332 if (!pData)
333 return; 333 return;
334 334
335 int maxID = CFXJS_ObjDefinition::MaxID(pIsolate); 335 int maxID = CFXJS_ObjDefinition::MaxID(pIsolate);
336 for (int i = 0; i < maxID; ++i) { 336 for (int i = 0; i < maxID; ++i) {
337 CFXJS_ObjDefinition* pObjDef = CFXJS_ObjDefinition::ForID(pIsolate, i); 337 CFXJS_ObjDefinition* pObjDef = CFXJS_ObjDefinition::ForID(pIsolate, i);
338 if (!pObjDef->m_StaticObj.IsEmpty()) { 338 v8::Local<v8::Object> pObj;
339 v8::Local<v8::Object> pObj = 339 if (pObjDef->m_ObjType == FXJSOBJTYPE_GLOBAL) {
340 v8::Local<v8::Object>::New(pIsolate, pObjDef->m_StaticObj); 340 pObj =
341 context->Global()->GetPrototype()->ToObject(context).ToLocalChecked();
342 } else if (!pObjDef->m_StaticObj.IsEmpty()) {
343 pObj = v8::Local<v8::Object>::New(pIsolate, pObjDef->m_StaticObj);
344 }
345
346 if (!pObj.IsEmpty()) {
341 if (pObjDef->m_pDestructor) 347 if (pObjDef->m_pDestructor)
342 pObjDef->m_pDestructor(pObj); 348 pObjDef->m_pDestructor(pObj);
343 FXJS_FreePrivate(pObj); 349 FXJS_FreePrivate(pObj);
344 } 350 }
345 delete pObjDef; 351 delete pObjDef;
346 } 352 }
347 353
348 pIsolate->SetData(g_embedderDataSlot, nullptr); 354 pIsolate->SetData(g_embedderDataSlot, nullptr);
349 delete pData; 355 delete pData;
350 } 356 }
(...skipping 395 matching lines...) Expand 10 before | Expand all | Expand 10 after
746 return v8::Local<v8::Array>(); 752 return v8::Local<v8::Array>();
747 v8::Local<v8::Context> context = pIsolate->GetCurrentContext(); 753 v8::Local<v8::Context> context = pIsolate->GetCurrentContext();
748 return v8::Local<v8::Array>::Cast(pValue->ToObject(context).ToLocalChecked()); 754 return v8::Local<v8::Array>::Cast(pValue->ToObject(context).ToLocalChecked());
749 } 755 }
750 756
751 void FXJS_ValueCopy(v8::Local<v8::Value>& pTo, v8::Local<v8::Value> pFrom) { 757 void FXJS_ValueCopy(v8::Local<v8::Value>& pTo, v8::Local<v8::Value> pFrom) {
752 pTo = pFrom; 758 pTo = pFrom;
753 } 759 }
754 760
755 761
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698