From 1a7df91fd3ac8aef1b2846186d0de5ed2ed15ff4 Mon Sep 17 00:00:00 2001 From: yangfan Date: Sat, 12 Mar 2022 22:14:56 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Djsengine=E6=9E=90=E6=9E=84?= =?UTF-8?q?=E5=B4=A9=E6=BA=83=EF=BC=8C=E8=B0=83=E6=95=B4nativeengine?= =?UTF-8?q?=E5=92=8CJSView=E6=9E=90=E6=9E=84=E6=97=B6=E5=BA=8F=EF=BC=8C?= =?UTF-8?q?=E4=BF=9D=E8=AF=81JSview=E6=9E=90=E6=9E=84=E5=AE=8C=E5=86=8D?= =?UTF-8?q?=E6=9E=90=E6=9E=84Platform=E7=9A=84container?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: yangfan Change-Id: I66373ad9c263efa7e51f0d28e36f23e2ff9e2694 --- adapter/ohos/entrance/ace_container.cpp | 9 +++++++-- .../engine/jsi/jsi_declarative_engine.cpp | 13 ++++--------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/adapter/ohos/entrance/ace_container.cpp b/adapter/ohos/entrance/ace_container.cpp index 23ee7ae6bd7..aa601f13c4c 100644 --- a/adapter/ohos/entrance/ace_container.cpp +++ b/adapter/ohos/entrance/ace_container.cpp @@ -583,8 +583,13 @@ void AceContainer::DestroyContainer(int32_t instanceId) taskExecutor->PostSyncTask([] { LOGI("Wait JS thread..."); }, TaskExecutor::TaskType::JS); } container->DestroyView(); // Stop all threads(ui,gpu,io) for current ability. - EngineHelper::RemoveEngine(instanceId); - AceEngine::Get().RemoveContainer(instanceId); + if (taskExecutor) { + taskExecutor->PostTask([instanceId] { + LOGI("Remove on Platform thread..."); + EngineHelper::RemoveEngine(instanceId); + AceEngine::Get().RemoveContainer(instanceId); + }, TaskExecutor::TaskType::PLATFORM); + } } void AceContainer::SetView( diff --git a/frameworks/bridge/declarative_frontend/engine/jsi/jsi_declarative_engine.cpp b/frameworks/bridge/declarative_frontend/engine/jsi/jsi_declarative_engine.cpp index 3cd30d80a28..64d6d7853f3 100644 --- a/frameworks/bridge/declarative_frontend/engine/jsi/jsi_declarative_engine.cpp +++ b/frameworks/bridge/declarative_frontend/engine/jsi/jsi_declarative_engine.cpp @@ -877,12 +877,6 @@ JsiDeclarativeEngine::~JsiDeclarativeEngine() { CHECK_RUN_ON(JS); LOG_DESTROY(); - - if (!runtime_ && nativeEngine_ != nullptr) { - nativeEngine_->CancelCheckUVLoop(); - delete nativeEngine_; - nativeEngine_ = nullptr; - } } void JsiDeclarativeEngine::Destroy() @@ -897,11 +891,12 @@ void JsiDeclarativeEngine::Destroy() #endif engineInstance_->GetDelegate()->RemoveTaskObserver(); - - if (nativeEngine_ != nullptr) { + if (!runtime_ && nativeEngine_ != nullptr) { + nativeEngine_->CancelCheckUVLoop(); engineInstance_->DestroyAllRootViewHandle(); + delete nativeEngine_; + nativeEngine_ = nullptr; } - if (nativeXComponent_) { delete nativeXComponent_; nativeXComponent_ = nullptr; -- Gitee