From 470cac21a0d6bfba0a803d8faca7e72afae7b8d6 Mon Sep 17 00:00:00 2001 From: yangyang706 Date: Mon, 3 Mar 2025 17:11:54 +0800 Subject: [PATCH] add napi ret check Signed-off-by: yangyang706 Change-Id: I6219ba4f131e86300e61e613115ece9f06f1391a --- .../native/ability_runtime/js_ability_context.cpp | 12 ++++++++++-- .../native/ability/native/js_service_extension.cpp | 3 +++ .../ability/native/js_service_extension_context.cpp | 12 ++++++++++-- 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/frameworks/native/ability/native/ability_runtime/js_ability_context.cpp b/frameworks/native/ability/native/ability_runtime/js_ability_context.cpp index fdf67dfc956..d3bd2b36ed5 100644 --- a/frameworks/native/ability/native/ability_runtime/js_ability_context.cpp +++ b/frameworks/native/ability/native/ability_runtime/js_ability_context.cpp @@ -2205,11 +2205,15 @@ void JSAbilityConnection::HandleOnAbilityConnectDone(const AppExecFwk::ElementNa // wrap RemoteObject napi_value napiRemoteObject = NAPI_ohos_rpc_CreateJsRemoteObject(env_, remoteObject); napi_value argv[] = { ConvertElement(element), napiRemoteObject }; + napi_value result = nullptr; TAG_LOGI(AAFwkTag::CONTEXT, "Call onConnect"); - napi_status status = napi_call_function(env_, obj, methodOnConnect, ARGC_TWO, argv, nullptr); + napi_status status = napi_call_function(env_, obj, methodOnConnect, ARGC_TWO, argv, &result); if (status != napi_ok) { TAG_LOGE(AAFwkTag::CONTEXT, "call js func failed %{public}d", status); } + if (result == nullptr) { + TAG_LOGE(AAFwkTag::SERVICE_EXT, "null result"); + } TAG_LOGD(AAFwkTag::CONTEXT, "end"); } @@ -2273,11 +2277,15 @@ void JSAbilityConnection::HandleOnAbilityDisconnectDone(const AppExecFwk::Elemen } napi_value argv[] = { ConvertElement(element) }; + napi_value result = nullptr; TAG_LOGI(AAFwkTag::CONTEXT, "Call onDisconnect"); - napi_status status = napi_call_function(env_, obj, method, ARGC_ONE, argv, nullptr); + napi_status status = napi_call_function(env_, obj, method, ARGC_ONE, argv, &result); if (status != napi_ok) { TAG_LOGE(AAFwkTag::CONTEXT, "call js func failed %{public}d", status); } + if (result == nullptr) { + TAG_LOGE(AAFwkTag::SERVICE_EXT, "null result"); + } } void JSAbilityConnection::CallJsFailed(int32_t errorCode) diff --git a/frameworks/native/ability/native/js_service_extension.cpp b/frameworks/native/ability/native/js_service_extension.cpp index af93427c673..410a360ba43 100644 --- a/frameworks/native/ability/native/js_service_extension.cpp +++ b/frameworks/native/ability/native/js_service_extension.cpp @@ -602,6 +602,9 @@ napi_value JsServiceExtension::CallObjectMethod(const char* name, napi_value con if (status != napi_ok) { TAG_LOGE(AAFwkTag::SERVICE_EXT, "call js func failed: %{public}d", status); } + if (result == nullptr) { + TAG_LOGE(AAFwkTag::SERVICE_EXT, "null result"); + } return result; } diff --git a/frameworks/native/ability/native/js_service_extension_context.cpp b/frameworks/native/ability/native/js_service_extension_context.cpp index 04584705793..7b74e3ada6f 100644 --- a/frameworks/native/ability/native/js_service_extension_context.cpp +++ b/frameworks/native/ability/native/js_service_extension_context.cpp @@ -1530,11 +1530,15 @@ void JSServiceExtensionConnection::HandleOnAbilityConnectDone(const AppExecFwk:: TAG_LOGE(AAFwkTag::SERVICE_EXT, "null methodOnConnect"); return; } + napi_value result = nullptr; TAG_LOGI(AAFwkTag::SERVICE_EXT, "Call onConnect"); - napi_status status = napi_call_function(env_, obj, methodOnConnect, ARGC_TWO, argv, nullptr); + napi_status status = napi_call_function(env_, obj, methodOnConnect, ARGC_TWO, argv, &result); if (status != napi_ok) { TAG_LOGE(AAFwkTag::SERVICE_EXT, "call js func failed %{public}d", status); } + if (result == nullptr) { + TAG_LOGE(AAFwkTag::SERVICE_EXT, "null result"); + } } void JSServiceExtensionConnection::OnAbilityDisconnectDone(const AppExecFwk::ElementName &element, int resultCode) @@ -1600,11 +1604,15 @@ void JSServiceExtensionConnection::HandleOnAbilityDisconnectDone(const AppExecFw AAFwkTag::SERVICE_EXT, "OnAbilityDisconnectDone erase g_connects.size:%{public}zu", g_connects.size()); } } + napi_value result = nullptr; TAG_LOGI(AAFwkTag::SERVICE_EXT, "Call onDisconnect"); - napi_status status = napi_call_function(env_, obj, method, ARGC_ONE, argv, nullptr); + napi_status status = napi_call_function(env_, obj, method, ARGC_ONE, argv, &result); if (status != napi_ok) { TAG_LOGE(AAFwkTag::SERVICE_EXT, "call js func failed %{public}d", status); } + if (result == nullptr) { + TAG_LOGE(AAFwkTag::SERVICE_EXT, "null result"); + } } void JSServiceExtensionConnection::SetJsConnectionObject(napi_value jsConnectionObject) -- Gitee