From 0bc2fc7d33811e6ed265d1a09b2de32eecdb4b35 Mon Sep 17 00:00:00 2001 From: liuyanzhi Date: Wed, 12 Apr 2023 03:52:44 +0000 Subject: [PATCH] fixed eebea51 from https://gitee.com/liuyanzhi2020/notification_ans_standard/pulls/971 fix napi Signed-off-by: liuyanzhi Change-Id: I84f61923578f137c7fa85b3021f0970b9289c752 --- frameworks/js/napi/src/ans_template.cpp | 10 +- frameworks/js/napi/src/cancel.cpp | 34 +++++- frameworks/js/napi/src/display_badge.cpp | 18 +++- frameworks/js/napi/src/distributed.cpp | 50 +++++++-- frameworks/js/napi/src/disturb_mode.cpp | 26 ++++- .../js/napi/src/enable_notification.cpp | 34 +++++- frameworks/js/napi/src/get_active.cpp | 26 ++++- .../js/napi/src/manager/napi_cancel.cpp | 38 ++++++- .../napi/src/manager/napi_display_badge.cpp | 20 +++- .../js/napi/src/manager/napi_distributed.cpp | 50 +++++++-- .../js/napi/src/manager/napi_disturb_mode.cpp | 26 ++++- .../src/manager/napi_enable_notification.cpp | 38 ++++++- .../js/napi/src/manager/napi_get_active.cpp | 29 ++++- .../js/napi/src/manager/napi_publish.cpp | 29 ++++- .../js/napi/src/manager/napi_remove_group.cpp | 9 +- frameworks/js/napi/src/manager/napi_slot.cpp | 100 +++++++++++++++--- .../js/napi/src/manager/napi_template.cpp | 11 +- frameworks/js/napi/src/publish.cpp | 26 ++++- frameworks/js/napi/src/reminder/publish.cpp | 45 ++++++-- frameworks/js/napi/src/remove.cpp | 18 +++- frameworks/js/napi/src/slot.cpp | 90 +++++++++++++--- frameworks/js/napi/src/subscribe.cpp | 10 +- .../js/napi/src/subscribe/napi_remove.cpp | 10 +- .../js/napi/src/subscribe/napi_subscribe.cpp | 20 +++- frameworks/js/napi/src/unsubscribe.cpp | 10 +- 25 files changed, 666 insertions(+), 111 deletions(-) diff --git a/frameworks/js/napi/src/ans_template.cpp b/frameworks/js/napi/src/ans_template.cpp index 0321e1eaa..a38b28b51 100644 --- a/frameworks/js/napi/src/ans_template.cpp +++ b/frameworks/js/napi/src/ans_template.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021-2022 Huawei Device Co., Ltd. + * Copyright (c) 2021-2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -107,7 +107,13 @@ napi_value IsSupportTemplate(napi_env env, napi_callback_info info) (void *)asyncCallbackinfo, &asyncCallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asyncCallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asyncCallbackinfo->asyncWork); + if (status != napi_ok) { + delete asyncCallbackinfo; + asyncCallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asyncCallbackinfo->info.isCallback) { return Common::NapiGetNull(env); diff --git a/frameworks/js/napi/src/cancel.cpp b/frameworks/js/napi/src/cancel.cpp index 7f7e47b48..4074a391f 100644 --- a/frameworks/js/napi/src/cancel.cpp +++ b/frameworks/js/napi/src/cancel.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021-2022 Huawei Device Co., Ltd. + * Copyright (c) 2021-2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -160,7 +160,13 @@ napi_value Cancel(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); @@ -214,7 +220,13 @@ napi_value CancelAll(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); @@ -272,7 +284,13 @@ napi_value CancelGroup(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); @@ -388,7 +406,13 @@ napi_value CancelAsBundle(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); diff --git a/frameworks/js/napi/src/display_badge.cpp b/frameworks/js/napi/src/display_badge.cpp index cced5ba2d..c3500e656 100644 --- a/frameworks/js/napi/src/display_badge.cpp +++ b/frameworks/js/napi/src/display_badge.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021-2022 Huawei Device Co., Ltd. + * Copyright (c) 2021-2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -169,7 +169,13 @@ napi_value DisplayBadge(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); @@ -245,7 +251,13 @@ napi_value IsBadgeDisplayed(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); diff --git a/frameworks/js/napi/src/distributed.cpp b/frameworks/js/napi/src/distributed.cpp index 659dc810a..2713c468e 100644 --- a/frameworks/js/napi/src/distributed.cpp +++ b/frameworks/js/napi/src/distributed.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 Huawei Device Co., Ltd. + * Copyright (c) 2022-2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -210,7 +210,13 @@ napi_value IsDistributedEnabled(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); @@ -268,7 +274,13 @@ napi_value EnableDistributed(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); @@ -325,7 +337,13 @@ napi_value EnableDistributedByBundle(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); @@ -383,7 +401,13 @@ napi_value EnableDistributedSelf(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); @@ -454,7 +478,13 @@ napi_value IsDistributedEnableByBundle(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); @@ -529,7 +559,13 @@ napi_value GetDeviceRemindType(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); diff --git a/frameworks/js/napi/src/disturb_mode.cpp b/frameworks/js/napi/src/disturb_mode.cpp index f4d4bd55c..f0829c07f 100644 --- a/frameworks/js/napi/src/disturb_mode.cpp +++ b/frameworks/js/napi/src/disturb_mode.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021-2022 Huawei Device Co., Ltd. + * Copyright (c) 2021-2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -191,7 +191,13 @@ napi_value SetDoNotDisturbDate(napi_env env, napi_callback_info info) }, (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); @@ -309,7 +315,13 @@ napi_value GetDoNotDisturbDate(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); @@ -373,7 +385,13 @@ napi_value SupportDoNotDisturbMode(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); diff --git a/frameworks/js/napi/src/enable_notification.cpp b/frameworks/js/napi/src/enable_notification.cpp index d870bae7b..79b3073d0 100644 --- a/frameworks/js/napi/src/enable_notification.cpp +++ b/frameworks/js/napi/src/enable_notification.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021-2022 Huawei Device Co., Ltd. + * Copyright (c) 2021-2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -174,7 +174,13 @@ napi_value EnableNotification(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); @@ -257,7 +263,13 @@ napi_value IsNotificationEnabled(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); @@ -307,7 +319,13 @@ napi_value IsNotificationEnabledSelf(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); @@ -357,7 +375,13 @@ napi_value RequestEnableNotification(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); diff --git a/frameworks/js/napi/src/get_active.cpp b/frameworks/js/napi/src/get_active.cpp index 1477ff598..4db66d3e3 100644 --- a/frameworks/js/napi/src/get_active.cpp +++ b/frameworks/js/napi/src/get_active.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021-2022 Huawei Device Co., Ltd. + * Copyright (c) 2021-2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -101,7 +101,13 @@ napi_value GetAllActiveNotifications(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); @@ -194,7 +200,13 @@ napi_value GetActiveNotifications(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); @@ -266,7 +278,13 @@ napi_value GetActiveNotificationCount(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); diff --git a/frameworks/js/napi/src/manager/napi_cancel.cpp b/frameworks/js/napi/src/manager/napi_cancel.cpp index de99f633f..d94f39a7b 100644 --- a/frameworks/js/napi/src/manager/napi_cancel.cpp +++ b/frameworks/js/napi/src/manager/napi_cancel.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 Huawei Device Co., Ltd. + * Copyright (c) 2022-2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -68,7 +68,14 @@ napi_value NapiCancel(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } + if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); } else { @@ -121,7 +128,14 @@ napi_value NapiCancelAll(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } + if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); } else { @@ -178,7 +192,14 @@ napi_value NapiCancelGroup(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } + if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); } else { @@ -238,7 +259,14 @@ napi_value NapiCancelAsBundle(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } + if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); } else { diff --git a/frameworks/js/napi/src/manager/napi_display_badge.cpp b/frameworks/js/napi/src/manager/napi_display_badge.cpp index a10fd162e..385fe6c36 100644 --- a/frameworks/js/napi/src/manager/napi_display_badge.cpp +++ b/frameworks/js/napi/src/manager/napi_display_badge.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021-2022 Huawei Device Co., Ltd. + * Copyright (c) 2021-2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -72,7 +72,14 @@ napi_value NapiDisplayBadge(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } + if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); } else { @@ -147,7 +154,14 @@ napi_value NapiIsBadgeDisplayed(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } + if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); } else { diff --git a/frameworks/js/napi/src/manager/napi_distributed.cpp b/frameworks/js/napi/src/manager/napi_distributed.cpp index 45d928b28..e43ecb8f8 100644 --- a/frameworks/js/napi/src/manager/napi_distributed.cpp +++ b/frameworks/js/napi/src/manager/napi_distributed.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 Huawei Device Co., Ltd. + * Copyright (c) 2022-2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -84,7 +84,13 @@ napi_value NapiIsDistributedEnabled(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); @@ -143,7 +149,13 @@ napi_value NapiEnableDistributed(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); @@ -201,7 +213,13 @@ napi_value NapiEnableDistributedByBundle(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); @@ -260,7 +278,13 @@ napi_value NapiEnableDistributedSelf(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); @@ -332,7 +356,13 @@ napi_value NapiIsDistributedEnableByBundle(napi_env env, napi_callback_info info (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); @@ -408,7 +438,13 @@ napi_value NapiGetDeviceRemindType(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); diff --git a/frameworks/js/napi/src/manager/napi_disturb_mode.cpp b/frameworks/js/napi/src/manager/napi_disturb_mode.cpp index 5f10b765c..5f47c878f 100644 --- a/frameworks/js/napi/src/manager/napi_disturb_mode.cpp +++ b/frameworks/js/napi/src/manager/napi_disturb_mode.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 Huawei Device Co., Ltd. + * Copyright (c) 2022-2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -73,7 +73,13 @@ napi_value NapiSetDoNotDisturbDate(napi_env env, napi_callback_info info) }, (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); @@ -153,7 +159,13 @@ napi_value NapiGetDoNotDisturbDate(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); @@ -218,7 +230,13 @@ napi_value NapiSupportDoNotDisturbMode(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); diff --git a/frameworks/js/napi/src/manager/napi_enable_notification.cpp b/frameworks/js/napi/src/manager/napi_enable_notification.cpp index 07a609928..9d8217dc9 100644 --- a/frameworks/js/napi/src/manager/napi_enable_notification.cpp +++ b/frameworks/js/napi/src/manager/napi_enable_notification.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 Huawei Device Co., Ltd. + * Copyright (c) 2022-2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -76,7 +76,14 @@ napi_value NapiEnableNotification(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } + if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); } else { @@ -154,7 +161,14 @@ napi_value NapiIsNotificationEnabled(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } + if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); } else { @@ -203,7 +217,14 @@ napi_value NapiIsNotificationEnabledSelf(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } + if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); } else { @@ -250,7 +271,14 @@ napi_value NapiRequestEnableNotification(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } + if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); } else { diff --git a/frameworks/js/napi/src/manager/napi_get_active.cpp b/frameworks/js/napi/src/manager/napi_get_active.cpp index c2eaa020b..d231e1454 100644 --- a/frameworks/js/napi/src/manager/napi_get_active.cpp +++ b/frameworks/js/napi/src/manager/napi_get_active.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 Huawei Device Co., Ltd. + * Copyright (c) 2022-2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -103,7 +103,14 @@ napi_value NapiGetAllActiveNotifications(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } + if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); } else { @@ -194,7 +201,14 @@ napi_value NapiGetActiveNotifications(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } + if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); } else { @@ -264,7 +278,14 @@ napi_value NapiGetActiveNotificationCount(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } + if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); } else { diff --git a/frameworks/js/napi/src/manager/napi_publish.cpp b/frameworks/js/napi/src/manager/napi_publish.cpp index 1abec2d77..9a493e69b 100644 --- a/frameworks/js/napi/src/manager/napi_publish.cpp +++ b/frameworks/js/napi/src/manager/napi_publish.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 Huawei Device Co., Ltd. + * Copyright (c) 2022-2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -74,7 +74,14 @@ napi_value NapiPublish(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } + if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); } else { @@ -134,7 +141,14 @@ napi_value NapiShowNotification(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } + return nullptr; } @@ -192,7 +206,14 @@ napi_value NapiPublishAsBundle(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } + if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); } else { diff --git a/frameworks/js/napi/src/manager/napi_remove_group.cpp b/frameworks/js/napi/src/manager/napi_remove_group.cpp index c42b2e5f1..68f0b82d5 100644 --- a/frameworks/js/napi/src/manager/napi_remove_group.cpp +++ b/frameworks/js/napi/src/manager/napi_remove_group.cpp @@ -132,7 +132,14 @@ napi_value NapiRemoveGroupByBundle(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } + if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); } else { diff --git a/frameworks/js/napi/src/manager/napi_slot.cpp b/frameworks/js/napi/src/manager/napi_slot.cpp index 5140ded7b..9da87678b 100644 --- a/frameworks/js/napi/src/manager/napi_slot.cpp +++ b/frameworks/js/napi/src/manager/napi_slot.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 Huawei Device Co., Ltd. + * Copyright (c) 2022-2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -76,7 +76,14 @@ napi_value NapiAddSlot(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } + if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); } else { @@ -130,7 +137,14 @@ napi_value NapiAddSlots(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } + if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); } else { @@ -185,7 +199,14 @@ napi_value NapiSetSlotByBundle(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } + if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); } else { @@ -259,7 +280,14 @@ napi_value NapiGetSlot(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } + if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); } else { @@ -316,7 +344,14 @@ napi_value NapiGetSlotNumByBundle(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } + if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); } else { @@ -403,7 +438,13 @@ napi_value NapiGetSlots(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); @@ -493,7 +534,14 @@ napi_value NapiGetSlotsByBundle(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } + if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); } else { @@ -548,7 +596,14 @@ napi_value NapiRemoveSlot(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } + if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); } else { @@ -601,7 +656,14 @@ napi_value NapiRemoveAllSlots(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } + if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); } else { @@ -657,7 +719,14 @@ napi_value NapiEnableNotificationSlot(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } + if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); } else { @@ -714,7 +783,14 @@ napi_value NapiIsEnableNotificationSlot(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } + if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); } else { diff --git a/frameworks/js/napi/src/manager/napi_template.cpp b/frameworks/js/napi/src/manager/napi_template.cpp index d3297da6c..461ff6019 100644 --- a/frameworks/js/napi/src/manager/napi_template.cpp +++ b/frameworks/js/napi/src/manager/napi_template.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021-2022 Huawei Device Co., Ltd. + * Copyright (c) 2021-2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -70,7 +70,14 @@ napi_value NapiIsSupportTemplate(napi_env env, napi_callback_info info) (void *)asyncCallbackinfo, &asyncCallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asyncCallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asyncCallbackinfo->asyncWork); + if (status != napi_ok) { + delete asyncCallbackinfo; + asyncCallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } + if (asyncCallbackinfo->info.isCallback) { return Common::NapiGetNull(env); } else { diff --git a/frameworks/js/napi/src/publish.cpp b/frameworks/js/napi/src/publish.cpp index f19f339b9..d5465c023 100644 --- a/frameworks/js/napi/src/publish.cpp +++ b/frameworks/js/napi/src/publish.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021-2022 Huawei Device Co., Ltd. + * Copyright (c) 2021-2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -148,7 +148,13 @@ napi_value Publish(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); @@ -345,7 +351,13 @@ napi_value ShowNotification(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } return nullptr; } @@ -462,7 +474,13 @@ napi_value PublishAsBundle(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); diff --git a/frameworks/js/napi/src/reminder/publish.cpp b/frameworks/js/napi/src/reminder/publish.cpp index 5fc61c165..58171caaf 100644 --- a/frameworks/js/napi/src/reminder/publish.cpp +++ b/frameworks/js/napi/src/reminder/publish.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021-2022 Huawei Device Co., Ltd. + * Copyright (c) 2021-2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -315,7 +315,14 @@ napi_value CancelReminderInner(napi_env env, napi_callback_info info, bool isThr }, (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return NotificationNapi::Common::NapiGetNull(env); + } callbackPtr.release(); if (asynccallbackinfo->info.isCallback) { @@ -383,7 +390,14 @@ napi_value CancelAllRemindersInner(napi_env env, napi_callback_info info, bool i }, (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return NotificationNapi::Common::NapiGetNull(env); + } callbackPtr.release(); if (asynccallbackinfo->info.isCallback) { @@ -700,7 +714,14 @@ napi_value InnerGetValidReminders(napi_env env, napi_callback_info info, bool is }, (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return NotificationNapi::Common::NapiGetNull(env); + } callbackPtr.release(); if (asynccallbackinfo->info.isCallback) { @@ -781,7 +802,13 @@ napi_value PublishReminderInner(napi_env env, napi_callback_info info, bool isTh (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return NotificationNapi::Common::NapiGetNull(env); + } callbackPtr.release(); if (asynccallbackinfo->info.isCallback) { @@ -852,7 +879,13 @@ napi_value AddSlotInner(napi_env env, napi_callback_info info, bool isThrow) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return NotificationNapi::Common::NapiGetNull(env); + } callbackPtr.release(); if (asynccallbackinfo->info.isCallback) { diff --git a/frameworks/js/napi/src/remove.cpp b/frameworks/js/napi/src/remove.cpp index e5944aa07..550025427 100644 --- a/frameworks/js/napi/src/remove.cpp +++ b/frameworks/js/napi/src/remove.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021-2022 Huawei Device Co., Ltd. + * Copyright (c) 2021-2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -348,7 +348,13 @@ napi_value RemoveAll(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); @@ -416,7 +422,13 @@ napi_value RemoveGroupByBundle(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); diff --git a/frameworks/js/napi/src/slot.cpp b/frameworks/js/napi/src/slot.cpp index 9afff9aec..ea5ed14c4 100644 --- a/frameworks/js/napi/src/slot.cpp +++ b/frameworks/js/napi/src/slot.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021-2022 Huawei Device Co., Ltd. + * Copyright (c) 2021-2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -531,7 +531,13 @@ napi_value AddSlot(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); @@ -586,7 +592,13 @@ napi_value AddSlots(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); @@ -642,7 +654,13 @@ napi_value SetSlotByBundle(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); @@ -718,7 +736,13 @@ napi_value GetSlot(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); @@ -776,7 +800,13 @@ napi_value GetSlotNumByBundle(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); @@ -864,7 +894,13 @@ napi_value GetSlots(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); @@ -954,7 +990,13 @@ napi_value GetSlotsByBundle(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); @@ -1010,7 +1052,13 @@ napi_value RemoveSlot(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); @@ -1064,7 +1112,13 @@ napi_value RemoveAllSlots(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); @@ -1181,7 +1235,13 @@ napi_value EnableNotificationSlot(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); @@ -1291,7 +1351,13 @@ napi_value IsEnableNotificationSlot(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); diff --git a/frameworks/js/napi/src/subscribe.cpp b/frameworks/js/napi/src/subscribe.cpp index 58a7cc2a8..93e74383a 100644 --- a/frameworks/js/napi/src/subscribe.cpp +++ b/frameworks/js/napi/src/subscribe.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021 Huawei Device Co., Ltd. + * Copyright (c) 2021-2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -1209,7 +1209,13 @@ napi_value Subscribe(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); diff --git a/frameworks/js/napi/src/subscribe/napi_remove.cpp b/frameworks/js/napi/src/subscribe/napi_remove.cpp index 206f2b7a4..7a0934f82 100644 --- a/frameworks/js/napi/src/subscribe/napi_remove.cpp +++ b/frameworks/js/napi/src/subscribe/napi_remove.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 Huawei Device Co., Ltd. + * Copyright (c) 2022-2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -141,7 +141,13 @@ napi_value NapiRemoveAll(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); diff --git a/frameworks/js/napi/src/subscribe/napi_subscribe.cpp b/frameworks/js/napi/src/subscribe/napi_subscribe.cpp index b73236cfa..34212c46c 100644 --- a/frameworks/js/napi/src/subscribe/napi_subscribe.cpp +++ b/frameworks/js/napi/src/subscribe/napi_subscribe.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 Huawei Device Co., Ltd. + * Copyright (c) 2022-2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -98,7 +98,14 @@ napi_value NapiSubscribe(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } + if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); } else { @@ -168,7 +175,14 @@ napi_value NapiUnsubscribe(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } + if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); } else { diff --git a/frameworks/js/napi/src/unsubscribe.cpp b/frameworks/js/napi/src/unsubscribe.cpp index f5a4a0da1..262977b3a 100644 --- a/frameworks/js/napi/src/unsubscribe.cpp +++ b/frameworks/js/napi/src/unsubscribe.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021-2022 Huawei Device Co., Ltd. + * Copyright (c) 2021-2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -121,7 +121,13 @@ napi_value Unsubscribe(napi_env env, napi_callback_info info) (void *)asynccallbackinfo, &asynccallbackinfo->asyncWork); - NAPI_CALL(env, napi_queue_async_work(env, asynccallbackinfo->asyncWork)); + napi_status status = napi_queue_async_work(env, asynccallbackinfo->asyncWork); + if (status != napi_ok) { + delete asynccallbackinfo; + asynccallbackinfo = nullptr; + ANS_LOGE("napi_queue_async_work failed return: %{public}d", status); + return Common::NapiGetNull(env); + } if (asynccallbackinfo->info.isCallback) { return Common::NapiGetNull(env); -- Gitee