diff --git a/frameworks/js/napi/src/ans_template.cpp b/frameworks/js/napi/src/ans_template.cpp index 0321e1eaa4cf3a550093f455be76e1d52c17ff44..a38b28b51566fa26db9ae10864858362e379c427 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 7f7e47b48116e9b1c942fde0bbe0e6b9f59bc642..4074a391f8c10036572c3a994bc618e797375828 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 cced5ba2df85e502fc911d12e1882ae40f2f6175..c3500e656218c27ade55bdda5846ccf77dbdd6db 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 659dc810a7b14671effe565ad2da18fbcf70b392..2713c468e765fad77c7102838a754cdc0bc37fb9 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 f4d4bd55cd249d7b89d72c200df6173f226399f0..f0829c07f12a68228cf0862f410c7cac9100b34f 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 d870bae7b525127228a3e75403ed07a1d668d7f2..79b3073d07de93793211b323a7bdb89777e3ee54 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 1477ff59877513e7cb47ba339fe1860de25b379f..4db66d3e39ba1294dbc128e146e915a4b5e2923f 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 de99f633fbaa9c8914028fcf8900f222283ed8d8..d94f39a7b870d1c3ce119f5038c70fd1451bf27f 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 a10fd162e51e3b4612a614c59510dbd9eb81d98c..385fe6c36b38efa71700c830c2f21b3574c09aa6 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 45d928b28264c7dee7be1ac8b0a384e20a66f546..e43ecb8f8734615fec3af08156885fe107b0a146 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 5f10b765cc553b182a8735745aa22bf9383ba160..5f47c878fc2d34a45772383d85691cbcb9022490 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 07a6099285736e21f069c347697ff028eeb720a3..9d8217dc92ed2162a65d45e6620151ad7bb9b91a 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 c2eaa020bfc25be1d21a87e6469e924c341ac83e..d231e1454f850ae400e210681ad1448fa0e36063 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 1abec2d77c365aaf92b0ccc5f888621b1e6b0e04..9a493e69b194bdc0f9a388c6c57b49c62828f968 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 c42b2e5f1bc773c4583a54a51c24906ae60e5561..68f0b82d5e844e1895d64fdcdc98f299d5e22262 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 5140ded7b21264e2fbef3311335e0502c218c5a8..9da87678b28613c0bbf08bef2eced1eb047a43e8 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 d3297da6ccc7d88216052827fb6aeebbabf38d73..461ff60199b9e7fb83c41a6d59123c446e663e73 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 f19f339b92b822a0fd4d40e118e4c65d0c65a75e..d5465c023097a6757f66ee14bafdcbd2ff4236f7 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 5fc61c165f1daa393b26c380a7d84845c24f3455..58171caaf5d77a1c4bc538b2f40a3c5621a2e200 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 e5944aa07a41ae409a24f9db873215f79f9842f5..5500254273ca49ea55e53c486152180628d4cc03 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 9afff9aec09f5df86a83ca58fc2fed824e957bbc..ea5ed14c4e8551d105325cc0d6db388055cf1ce7 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 58a7cc2a88dd53f9248b1f35fb6358dd6e39e309..93e74383ab82e9747ec353f1443f395bfbc6ac60 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 206f2b7a4ac5dae4c1bd57791fd176d622de9ecd..7a0934f829a35923bb42d19d3a27350bc24666e7 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 b73236cfa605f5f51706605d5ad878ec1afb7642..34212c46c49a09f9e90076ce6ddfc3e1309fac8a 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 f5a4a0da18ea33a57dcf9983d28ef126f9364c70..262977b3a6a05fba7af0b6bbb763bd202d8d9398 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);