diff --git a/interfaces/plugin/src/sensor_napi_utils.cpp b/interfaces/plugin/src/sensor_napi_utils.cpp index bbf2f46b231de93c9d10679ce86dc00e0ded8085..b352362bf0c66e2b8ba0905c19ca4944e8e58131 100644 --- a/interfaces/plugin/src/sensor_napi_utils.cpp +++ b/interfaces/plugin/src/sensor_napi_utils.cpp @@ -532,6 +532,11 @@ void EmitUvEventLoop(sptr asyncCallbackInfo) * count of the smart pointer is guaranteed to be 1. */ asyncCallbackInfo->DecStrongRef(nullptr); + napi_handle_scope scope = nullptr; + napi_open_handle_scope(asyncCallbackInfo->env, &scope); + if (scope == nullptr) { + return; + } napi_env env = asyncCallbackInfo->env; napi_value callback = nullptr; CHKNRV(env, napi_get_reference_value(env, asyncCallbackInfo->callback[0], &callback), @@ -542,6 +547,7 @@ void EmitUvEventLoop(sptr asyncCallbackInfo) "Asynccallback Type invalid in uv work"); g_convertfuncList[asyncCallbackInfo->type](env, asyncCallbackInfo, result); CHKNRV(env, napi_call_function(env, nullptr, callback, 1, &result[1], &callResult), "napi_call_function"); + napi_close_handle_scope(asyncCallbackInfo->env, scope); asyncCallbackInfo->work = nullptr; freeWork(work); });