From 5850c99e472ef2d65dc42b43c2c337c4f7849e7d Mon Sep 17 00:00:00 2001 From: gaoqiang_strong Date: Wed, 3 Sep 2025 11:12:45 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=B7=AE=E5=BC=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: gaoqiang_strong --- .../kits/js/src/native_devicemanager_js.cpp | 17 ++++++++++++----- .../kits/js4.0/src/native_devicemanager_js.cpp | 12 +++++++++--- .../service/src/softbus/softbus_listener.cpp | 2 +- 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/interfaces/kits/js/src/native_devicemanager_js.cpp b/interfaces/kits/js/src/native_devicemanager_js.cpp index f7a1825bd..e0571b6d7 100644 --- a/interfaces/kits/js/src/native_devicemanager_js.cpp +++ b/interfaces/kits/js/src/native_devicemanager_js.cpp @@ -1848,7 +1848,7 @@ void DeviceManagerNapi::CallAsyncWorkSync(napi_env env, { napi_value resourceName; napi_create_string_latin1(env, "GetTrustListInfo", NAPI_AUTO_LENGTH, &resourceName); - napi_create_async_work( + napi_status result = napi_create_async_work( env, nullptr, resourceName, [](napi_env env, void *data) { (void)env; @@ -1874,17 +1874,21 @@ void DeviceManagerNapi::CallAsyncWorkSync(napi_env env, reinterpret_cast(data); CallGetTrustedDeviceListStatusSync(env, status, dInfoListAsyncCallbackInfo); napi_delete_async_work(env, dInfoListAsyncCallbackInfo->asyncWork); - delete dInfoListAsyncCallbackInfo; + DeleteAsyncCallbackInfo(dInfoListAsyncCallbackInfo); }, (void *)deviceInfoListAsyncCallbackInfo, &deviceInfoListAsyncCallbackInfo->asyncWork); napi_queue_async_work_with_qos(env, deviceInfoListAsyncCallbackInfo->asyncWork, napi_qos_user_initiated); + if (result != napi_ok) { + LOGE("CallAsyncWorkSync failed result %{public}d", result); + DeleteAsyncCallbackInfo(deviceInfoListAsyncCallbackInfo); + } } void DeviceManagerNapi::CallAsyncWork(napi_env env, DeviceInfoListAsyncCallbackInfo *deviceInfoListAsyncCallbackInfo) { napi_value resourceName; napi_create_string_latin1(env, "GetTrustListInfo", NAPI_AUTO_LENGTH, &resourceName); - napi_create_async_work( + napi_status result = napi_create_async_work( env, nullptr, resourceName, [](napi_env env, void *data) { DeviceInfoListAsyncCallbackInfo *devInfoListAsyncCallbackInfo = @@ -1909,11 +1913,14 @@ void DeviceManagerNapi::CallAsyncWork(napi_env env, DeviceInfoListAsyncCallbackI reinterpret_cast(data); CallGetTrustedDeviceListStatus(env, status, dInfoListAsyncCallbackInfo); napi_delete_async_work(env, dInfoListAsyncCallbackInfo->asyncWork); - delete dInfoListAsyncCallbackInfo; - dInfoListAsyncCallbackInfo = nullptr; + DeleteAsyncCallbackInfo(dInfoListAsyncCallbackInfo); }, (void *)deviceInfoListAsyncCallbackInfo, &deviceInfoListAsyncCallbackInfo->asyncWork); napi_queue_async_work_with_qos(env, deviceInfoListAsyncCallbackInfo->asyncWork, napi_qos_user_initiated); + if (result != napi_ok) { + LOGE("CallAsyncWork failed result %{public}d", result); + DeleteAsyncCallbackInfo(deviceInfoListAsyncCallbackInfo); + } } void DeviceManagerNapi::AsyncTaskCallback(napi_env env, void *data) diff --git a/interfaces/kits/js4.0/src/native_devicemanager_js.cpp b/interfaces/kits/js4.0/src/native_devicemanager_js.cpp index a33de8251..f50d25750 100644 --- a/interfaces/kits/js4.0/src/native_devicemanager_js.cpp +++ b/interfaces/kits/js4.0/src/native_devicemanager_js.cpp @@ -1251,7 +1251,7 @@ void DeviceManagerNapi::CallAsyncWork(napi_env env, { napi_value resourceName; napi_create_string_latin1(env, "GetAvailableListInfo", NAPI_AUTO_LENGTH, &resourceName); - napi_create_async_work( + napi_status result = napi_create_async_work( env, nullptr, resourceName, [](napi_env env, void *data) { DeviceBasicInfoListAsyncCallbackInfo *devBasicInfoListAsyncCallbackInfo = @@ -1276,11 +1276,14 @@ void DeviceManagerNapi::CallAsyncWork(napi_env env, reinterpret_cast(data); CallGetAvailableDeviceListStatus(env, status, dBasicInfoListAsyncCallbackInfo); napi_delete_async_work(env, dBasicInfoListAsyncCallbackInfo->asyncWork); - delete dBasicInfoListAsyncCallbackInfo; - dBasicInfoListAsyncCallbackInfo = nullptr; + DeleteAsyncCallbackInfo(dBasicInfoListAsyncCallbackInfo); }, (void *)deviceBasicInfoListAsyncCallbackInfo, &deviceBasicInfoListAsyncCallbackInfo->asyncWork); napi_queue_async_work_with_qos(env, deviceBasicInfoListAsyncCallbackInfo->asyncWork, napi_qos_user_initiated); + if (result != napi_ok) { + LOGE("CallAsyncWork failed result %{public}d", result); + DeleteAsyncCallbackInfo(deviceBasicInfoListAsyncCallbackInfo); + } } napi_value DeviceManagerNapi::CallDeviceList(napi_env env, napi_callback_info info, @@ -1296,6 +1299,9 @@ napi_value DeviceManagerNapi::CallDeviceList(napi_env env, napi_callback_info in LOGI("CallDeviceList for argc %{public}zu Type = %{public}d", argc, (int)eventHandleType); napi_create_reference(env, argv[0], 1, &deviceBasicInfoListAsyncCallbackInfo->callback); CallAsyncWork(env, deviceBasicInfoListAsyncCallbackInfo); + } else { + LOGE("CallDeviceList eventHandleType invalid"); + DeleteAsyncCallbackInfo(deviceBasicInfoListAsyncCallbackInfo); } napi_get_undefined(env, &result); return result; diff --git a/services/service/src/softbus/softbus_listener.cpp b/services/service/src/softbus/softbus_listener.cpp index e57d4338d..036b1e43b 100644 --- a/services/service/src/softbus/softbus_listener.cpp +++ b/services/service/src/softbus/softbus_listener.cpp @@ -1450,7 +1450,7 @@ int32_t SoftbusListener::GetAllTrustedDeviceList(const std::string &pkgName, con std::vector allProfile = DeviceProfileConnector::GetInstance().GetAllAccessControlProfile(); for (DistributedDeviceProfile::AccessControlProfile profile : allProfile) { - if (profile.GetBindType() == GROUP_TYPE_IDENTICAL_ACCOUNT_GROUP) { + if (profile.GetBindType() == GROUP_TYPE_IDENTICAL_ACCOUNT_GROUP || ACTIVE != profile.GetStatus()) { continue; } DistributedDeviceProfile::Accesser acer = profile.GetAccesser(); -- Gitee