From b239e7709f52dc7fe150327e385860ef478482d2 Mon Sep 17 00:00:00 2001 From: openharmony_ci <120357966@qq.com> Date: Mon, 6 Feb 2023 07:31:33 +0000 Subject: [PATCH] =?UTF-8?q?=E5=9B=9E=E9=80=80=20'Pull=20Request=20!648=20:?= =?UTF-8?q?=20Fix=20napi=20global=20handle=20leak=E3=80=90part3=E3=80=91'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/ark/ark_native_engine_impl.cpp | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/native_engine/impl/ark/ark_native_engine_impl.cpp b/native_engine/impl/ark/ark_native_engine_impl.cpp index 39c5d9394..86b006dde 100644 --- a/native_engine/impl/ark/ark_native_engine_impl.cpp +++ b/native_engine/impl/ark/ark_native_engine_impl.cpp @@ -163,17 +163,10 @@ ArkNativeEngineImpl::ArkNativeEngineImpl( engineImpl->loadedModules_[module] = Global(ecmaVm, exports); } } else if (module->registerCallback != nullptr) { - NativeScopeManager* scopeManager = nativeEngine->GetScopeManager(); - if (scopeManager == nullptr) { - HILOG_ERROR("scope manager is null"); - return scope.Escape(exports); - } - NativeScope* nativeScope = scopeManager->Open(); NativeValue* exportObject = nativeEngine->CreateObject(); auto arkNativeEngine = static_cast(engineImpl->GetRootNativeEngine()); if (!arkNativeEngine) { HILOG_ERROR("init module failed"); - scopeManager->Close(nativeScope); return scope.Escape(exports); } #ifdef ENABLE_HITRACE @@ -188,7 +181,6 @@ ArkNativeEngineImpl::ArkNativeEngineImpl( Global globalExports = *exportObject; exports = globalExports.ToLocal(ecmaVm); engineImpl->loadedModules_[module] = Global(ecmaVm, exports); - scopeManager->Close(nativeScope); } else { HILOG_ERROR("init module failed"); return scope.Escape(exports); @@ -219,18 +211,12 @@ ArkNativeEngineImpl::ArkNativeEngineImpl( ArkNativeEngine* nativeEngine = new ArkNativeEngine(engineImpl, engineImpl->GetJsEngine(), false); std::string strModuleName = moduleName->ToString(); moduleManager->SetNativeEngine(strModuleName, nativeEngine); - NativeScopeManager* scopeManager = nativeEngine->GetScopeManager(); - if (scopeManager == nullptr) { - HILOG_ERROR("scope manager is null"); - return scope.Escape(exports); - } - NativeScope* nativeScope = scopeManager->Open(); + NativeValue* exportObject = nativeEngine->CreateObject(); if (exportObject != nullptr) { auto arkNativeEngine = static_cast(engineImpl->GetRootNativeEngine()); if (!arkNativeEngine) { HILOG_ERROR("exportObject is nullptr"); - scopeManager->Close(nativeScope); return scope.Escape(exports); } ArkNativeObject* exportObj = reinterpret_cast(exportObject); @@ -239,10 +225,8 @@ ArkNativeEngineImpl::ArkNativeEngineImpl( Global globalExports = *exportObject; exports = globalExports.ToLocal(ecmaVm); engineImpl->loadedModules_[module] = Global(ecmaVm, exports); - scopeManager->Close(nativeScope); } else { HILOG_ERROR("exportObject is nullptr"); - scopeManager->Close(nativeScope); return scope.Escape(exports); } } -- Gitee