From de256b3ef1a0738f34906ed92f453a86d17af082 Mon Sep 17 00:00:00 2001 From: fengjq Date: Fri, 1 Dec 2023 17:49:58 +0800 Subject: [PATCH] Add exception branch before delete async_work Signed-off-by: fengjq --- .../js/src/common/napi/n_async/n_async_work_callback.cpp | 4 +++- .../js/src/common/napi/n_async/n_async_work_promise.cpp | 4 +++- utils/filemgmt_libn/src/n_async/n_async_work_callback.cpp | 8 ++++++-- utils/filemgmt_libn/src/n_async/n_async_work_promise.cpp | 4 +++- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/interfaces/kits/js/src/common/napi/n_async/n_async_work_callback.cpp b/interfaces/kits/js/src/common/napi/n_async/n_async_work_callback.cpp index be644d529..be826e19b 100644 --- a/interfaces/kits/js/src/common/napi/n_async/n_async_work_callback.cpp +++ b/interfaces/kits/js/src/common/napi/n_async/n_async_work_callback.cpp @@ -65,7 +65,9 @@ static void CallbackComplete(napi_env env, napi_status status, void *data) } napi_close_handle_scope(env, scope); - napi_delete_async_work(env, ctx->awork_); + if (ctx->awork_ != nullptr) { + napi_delete_async_work(env, ctx->awork_); + } delete ctx; } diff --git a/interfaces/kits/js/src/common/napi/n_async/n_async_work_promise.cpp b/interfaces/kits/js/src/common/napi/n_async/n_async_work_promise.cpp index 978096042..5758fde6b 100644 --- a/interfaces/kits/js/src/common/napi/n_async/n_async_work_promise.cpp +++ b/interfaces/kits/js/src/common/napi/n_async/n_async_work_promise.cpp @@ -57,7 +57,9 @@ static void PromiseOnComplete(napi_env env, napi_status status, void *data) } ctx->deferred_ = nullptr; - napi_delete_async_work(env, ctx->awork_); + if (ctx->awork_ != nullptr) { + napi_delete_async_work(env, ctx->awork_); + } delete ctx; } diff --git a/utils/filemgmt_libn/src/n_async/n_async_work_callback.cpp b/utils/filemgmt_libn/src/n_async/n_async_work_callback.cpp index 3df058b85..d107310d0 100644 --- a/utils/filemgmt_libn/src/n_async/n_async_work_callback.cpp +++ b/utils/filemgmt_libn/src/n_async/n_async_work_callback.cpp @@ -114,7 +114,9 @@ static void CallbackComplete(napi_env env, napi_status status, void *data) HILOGE("Failed to call function for %{public}d", stat); } napi_close_handle_scope(env, scope); - napi_delete_async_work(env, ctx->awork_); + if (ctx->awork_ != nullptr) { + napi_delete_async_work(env, ctx->awork_); + } delete ctx; } @@ -180,7 +182,9 @@ static void AfterWorkCallback(napi_env env, napi_status status, void *data, NCon } napi_close_handle_scope(env, scope); - napi_delete_async_work(env, ctx->awork_); + if (ctx->awork_ != nullptr) { + napi_delete_async_work(env, ctx->awork_); + } } void NAsyncWorkCallback::ThreadSafeSchedule(NContextCBComplete cbComplete) diff --git a/utils/filemgmt_libn/src/n_async/n_async_work_promise.cpp b/utils/filemgmt_libn/src/n_async/n_async_work_promise.cpp index 443c450ef..121bc53ce 100644 --- a/utils/filemgmt_libn/src/n_async/n_async_work_promise.cpp +++ b/utils/filemgmt_libn/src/n_async/n_async_work_promise.cpp @@ -55,7 +55,9 @@ static void PromiseOnComplete(napi_env env, napi_status status, void *data) } } ctx->deferred_ = nullptr; - napi_delete_async_work(env, ctx->awork_); + if (ctx->awork_ != nullptr) { + napi_delete_async_work(env, ctx->awork_); + } delete ctx; } -- Gitee