diff --git a/frameworks/ets/ani/ability_manager/src/ets_ability_manager.cpp b/frameworks/ets/ani/ability_manager/src/ets_ability_manager.cpp index eb0b9084bc..4f78e78bf6 100644 --- a/frameworks/ets/ani/ability_manager/src/ets_ability_manager.cpp +++ b/frameworks/ets/ani/ability_manager/src/ets_ability_manager.cpp @@ -891,7 +891,7 @@ void EtsAbilityManager::NativeOffPreloadedUIExtensionAbilityLoaded(ani_env *env, loadedCallback_.clear(); return; } - auto it = std::find_if(loadedCallback_.begin(), loadedCallback_.end(), [&](const auto &cb) { + auto it = std::find_if(loadedCallback_.begin(), loadedCallback_.end(), [env, callback](const auto &cb) { ani_boolean isEquals = ANI_FALSE; env->Reference_StrictEquals(callback, cb.first, &isEquals); return isEquals; @@ -962,7 +962,7 @@ void EtsAbilityManager::NativeOffPreloadedUIExtensionAbilityDestroyed(ani_env *e destroyCallback_.clear(); return; } - auto it = std::find_if(destroyCallback_.begin(), destroyCallback_.end(), [&](const auto &cb) { + auto it = std::find_if(destroyCallback_.begin(), destroyCallback_.end(), [env, callback](const auto &cb) { ani_boolean isEquals = ANI_FALSE; env->Reference_StrictEquals(callback, cb.first, &isEquals); return isEquals; diff --git a/frameworks/js/napi/ability_manager/js_ability_manager.cpp b/frameworks/js/napi/ability_manager/js_ability_manager.cpp index 45c200c2ac..195cc06d51 100644 --- a/frameworks/js/napi/ability_manager/js_ability_manager.cpp +++ b/frameworks/js/napi/ability_manager/js_ability_manager.cpp @@ -994,11 +994,12 @@ private: loadedCallback_.clear(); return CreateJsUndefined(env); } - auto it = std::find_if(loadedCallback_.begin(), loadedCallback_.end(), [&](const auto &cb) { + auto it = std::find_if(loadedCallback_.begin(), loadedCallback_.end(), + [env, targetFunc = info.argv[INDEX_ZERO]](const auto &cb) { napi_value jsFunc = nullptr; bool isEquals = false; napi_get_reference_value(env, cb.first, &jsFunc); - napi_strict_equals(env, info.argv[INDEX_ZERO], jsFunc, &isEquals); + napi_strict_equals(env, targetFunc, jsFunc, &isEquals); return isEquals; }); if (it == loadedCallback_.end()) { @@ -1073,11 +1074,12 @@ private: destroyCallback_.clear(); return CreateJsUndefined(env); } - auto it = std::find_if(destroyCallback_.begin(), destroyCallback_.end(), [&](const auto &cb) { + auto it = std::find_if(destroyCallback_.begin(), destroyCallback_.end(), + [env, targetFunc = info.argv[INDEX_ZERO]](const auto &cb) { napi_value jsFunc = nullptr; bool isEquals = false; napi_get_reference_value(env, cb.first, &jsFunc); - napi_strict_equals(env, info.argv[INDEX_ZERO], jsFunc, &isEquals); + napi_strict_equals(env, targetFunc, jsFunc, &isEquals); return isEquals; }); if (it == destroyCallback_.end()) {