From aab08088886ff03fd230bbfb26c90d39e91db17e Mon Sep 17 00:00:00 2001 From: qq_35015309 <1257369706@qq.com> Date: Mon, 29 Dec 2025 17:20:51 +0800 Subject: [PATCH] =?UTF-8?q?CodeCheck=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: qq_35015309 <1257369706@qq.com> --- .../js/napi/ads/src/ad_load_napi_common.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/frameworks/js/napi/ads/src/ad_load_napi_common.cpp b/frameworks/js/napi/ads/src/ad_load_napi_common.cpp index 08655ce..48ea671 100644 --- a/frameworks/js/napi/ads/src/ad_load_napi_common.cpp +++ b/frameworks/js/napi/ads/src/ad_load_napi_common.cpp @@ -90,7 +90,20 @@ bool InitAdLoadCallbackWorkEnv(napi_env env, uv_loop_s **loop, uv_work_t **work, AdLoadListenerCallback::AdLoadListenerCallback(napi_env env, AdJSCallback callback) : env_(env), callback_(callback) {} -AdLoadListenerCallback::~AdLoadListenerCallback() {} +AdLoadListenerCallback::~AdLoadListenerCallback() +{ + // 释放 Node‑API 对象引用,防止句柄泄漏 + if (callback_.onAdLoadSuccess != nullptr) { + napi_delete_reference(env_, callback_.onAdLoadSuccess); + callback_.onAdLoadSuccess = nullptr; + ADS_HILOGW(OHOS::Cloud::ADS_MODULE_JS_NAPI, "wyy free onAdLoadSuccess"); + } + if (callback_.onAdLoadFailure != nullptr) { + napi_delete_reference(env_, callback_.onAdLoadFailure); + callback_.onAdLoadFailure = nullptr; + ADS_HILOGW(OHOS::Cloud::ADS_MODULE_JS_NAPI, "wyy free onAdLoadFailure"); + } +} void UvQueneWorkOnAdLoadSuccess(uv_work_t *work, int status) {