From b82f5cafb29252566be5d004e23f3a282482ce6c Mon Sep 17 00:00:00 2001 From: zhang_hao_zheng Date: Wed, 13 Aug 2025 09:08:02 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=96=B0=E5=A2=9Euri=5Fpermission=E5=AF=B9?= =?UTF-8?q?appCloneIndex=E7=9A=84=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhang_hao_zheng Change-Id: I57469e80805ec6804659c809898d4a803beb261e --- .../src/ets_uri_perm_mgr.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/frameworks/ets/ani/uri_permission_manager/src/ets_uri_perm_mgr.cpp b/frameworks/ets/ani/uri_permission_manager/src/ets_uri_perm_mgr.cpp index 0ba54b28cb1..264648fff68 100644 --- a/frameworks/ets/ani/uri_permission_manager/src/ets_uri_perm_mgr.cpp +++ b/frameworks/ets/ani/uri_permission_manager/src/ets_uri_perm_mgr.cpp @@ -90,6 +90,13 @@ static void grantUriPermissionCallbackSync([[maybe_unused]]ani_env *env, TAG_LOGE(AAFwkTag::URIPERMMGR, "env null"); return; } + if (appCloneIndex < 0) { + TAG_LOGE(AAFwkTag::URIPERMMGR, "appCloneIndex invalid"); + AsyncCallback(env, callback, EtsErrorUtil::CreateError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM, + "Param appCloneIndex is invalid, the value less than 0."), + CreateDouble(env, ERR_FAILURE)); + return; + } auto selfToken = IPCSkeleton::GetSelfTokenID(); ani_object etsErrCode = EtsErrorUtil::CreateError(env, AbilityErrorCode::ERROR_OK); if (!Security::AccessToken::TokenIdKit::IsSystemAppByFullTokenID(selfToken)) { @@ -124,6 +131,13 @@ static void revokeUriPermissionCallbackSync([[maybe_unused]]ani_env *env, TAG_LOGE(AAFwkTag::URIPERMMGR, "env null"); return; } + if (appCloneIndex < 0) { + TAG_LOGE(AAFwkTag::URIPERMMGR, "appCloneIndex invalid"); + AsyncCallback(env, callback, EtsErrorUtil::CreateError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM, + "Param appCloneIndex is invalid, the value less than 0."), + CreateDouble(env, ERR_FAILURE)); + return; + } auto selfToken = IPCSkeleton::GetSelfTokenID(); ani_object etsErrCode = EtsErrorUtil::CreateError(env, AbilityErrorCode::ERROR_OK); if (!Security::AccessToken::TokenIdKit::IsSystemAppByFullTokenID(selfToken)) { -- Gitee From a4538ba2aebb535267b08c4fedba286764f365d3 Mon Sep 17 00:00:00 2001 From: zhang_hao_zheng Date: Wed, 13 Aug 2025 09:40:57 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=9B=B4=E6=94=B9=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E7=A0=81&=E6=96=B0=E5=A2=9E=E9=94=81=E6=8F=90=E5=8D=87?= =?UTF-8?q?=E7=A8=B3=E5=AE=9A=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhang_hao_zheng Change-Id: I7c518f2c0a1c64b7bf1c4bc2b734aceb08149376 --- .../src/ets_application_context_utils.cpp | 43 +++++++++++-------- .../ets/application/ApplicationContext.ets | 4 +- .../context/application_context.h | 2 +- 3 files changed, 29 insertions(+), 20 deletions(-) diff --git a/frameworks/ets/ani/ani_common/src/ets_application_context_utils.cpp b/frameworks/ets/ani/ani_common/src/ets_application_context_utils.cpp index 27d58460f03..a1987ebc50b 100644 --- a/frameworks/ets/ani/ani_common/src/ets_application_context_utils.cpp +++ b/frameworks/ets/ani/ani_common/src/ets_application_context_utils.cpp @@ -40,6 +40,7 @@ const std::string TYPE_ABILITY_LIFECYCLE = "abilityLifecycle"; const std::string TYPE_INTEROP_ABILITY_LIFECYCLE = "interopAbilityLifecycle"; } +std::mutex g_abilityLifecycleCallbackLock;; std::shared_ptr abilityLifecycleCallback_ = nullptr; std::mutex g_interopAbilityLifecycleCallbackLock; std::shared_ptr interopAbilityLifecycleCallback_ = nullptr; @@ -584,25 +585,26 @@ ani_int EtsApplicationContextUtils::NativeOnLifecycleCallbackSync(ani_env *env, TAG_LOGD(AAFwkTag::APPKIT, "NativeOnLifecycleCallbackSync Call"); if (env == nullptr) { TAG_LOGE(AAFwkTag::APPKIT, "env is nullptr"); - return ani_int(ERROR_CODE_NULL_ENV); + EtsErrorUtil::ThrowError(env, AbilityRuntime::AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + return ANI_ERROR; } auto etsContext = GeApplicationContext(env, aniObj); if (etsContext == nullptr) { - EtsErrorUtil::ThrowError(env, AbilityRuntime::AbilityErrorCode::ERROR_CODE_INVALID_CONTEXT); - return ani_int(ERROR_CODE_NULL_CONTEXT); + EtsErrorUtil::ThrowError(env, AbilityRuntime::AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + return ANI_ERROR; } std::string stdType; if (!AppExecFwk::GetStdString(env, type, stdType)) { TAG_LOGE(AAFwkTag::APPKIT, "parse type failed"); EtsErrorUtil::ThrowInvalidParamError(env, "Failed to parse param type. Type must be a string."); - return ani_int(ERROR_CODE_INVALID_PARAM); + return ANI_ERROR; } TAG_LOGD(AAFwkTag::APPKIT, "type=%{public}s", stdType.c_str()); if (stdType == TYPE_ABILITY_LIFECYCLE) { return etsContext->RegisterAbilityLifecycleCallback(env, callback); } EtsErrorUtil::ThrowInvalidParamError(env, "Unknown type."); - return ani_int(ERROR_CODE_INVALID_PARAM); + return ANI_ERROR; } void EtsApplicationContextUtils::NativeOnInteropLifecycleCallbackSync(ani_env *env, @@ -638,11 +640,18 @@ ani_int EtsApplicationContextUtils::RegisterAbilityLifecycleCallback(ani_env *en auto applicationContext = applicationContext_.lock(); if (applicationContext == nullptr) { TAG_LOGE(AAFwkTag::APPKIT, "applicationContext is null"); - EtsErrorUtil::ThrowError(env, AbilityRuntime::AbilityErrorCode::ERROR_CODE_INVALID_CONTEXT); - return ani_int(ERROR_CODE_NULL_CONTEXT); + EtsErrorUtil::ThrowError(env, AbilityRuntime::AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + return ANI_ERROR; } + std::lock_guard lock(g_abilityLifecycleCallbackLock); if (abilityLifecycleCallback_ != nullptr) { - return ani_int(abilityLifecycleCallback_->Register(callback)); + auto result = abilityLifecycleCallback_->Register(callback); + if (result < 0) { + TAG_LOGE(AAFwkTag::APPKIT, "register failed: %{public}d", result); + EtsErrorUtil::ThrowError(env, AbilityRuntime::AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + return ANI_ERROR; + } + return ani_int(result); } abilityLifecycleCallback_ = std::make_shared(env); @@ -654,11 +663,11 @@ ani_int EtsApplicationContextUtils::RegisterAbilityLifecycleCallback(ani_env *en if (callbackId == static_cast(ERROR_CODE_NULL_ENV) || callbackId == static_cast(ERROR_CODE_NULL_CALLBACK)) { EtsErrorUtil::ThrowError(env, AbilityRuntime::AbilityErrorCode::ERROR_CODE_INVALID_PARAM); - return ani_int(ERROR_CODE_INVALID_PARAM); + return ANI_ERROR; } - EtsErrorUtil::ThrowError(env, AbilityRuntime::AbilityErrorCode::ERROR_CODE_INNER); - return ani_int(callbackId); + EtsErrorUtil::ThrowError(env, AbilityRuntime::AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + return ANI_ERROR; } void EtsApplicationContextUtils::RegisterInteropAbilityLifecycleCallback(ani_env *env, ani_object callback) @@ -697,14 +706,14 @@ void EtsApplicationContextUtils::NativeOffLifecycleCallbackSync(ani_env *env, if (env == nullptr) { TAG_LOGE(AAFwkTag::APPKIT, "env is nullptr"); AppExecFwk::AsyncCallback(env, callback, EtsErrorUtil::CreateError(env, - (ani_int)AbilityErrorCode::ERROR_CODE_INVALID_CONTEXT, "env is nullptr"), nullptr); + (ani_int)AbilityErrorCode::ERROR_CODE_INVALID_PARAM, "env is nullptr"), nullptr); return; } auto etsContext = GeApplicationContext(env, aniObj); if (etsContext == nullptr) { TAG_LOGE(AAFwkTag::APPKIT, "etsContext is null"); AppExecFwk::AsyncCallback(env, callback, EtsErrorUtil::CreateError(env, - (ani_int)AbilityErrorCode::ERROR_CODE_INVALID_CONTEXT, "etsContext is null"), nullptr); + (ani_int)AbilityErrorCode::ERROR_CODE_INVALID_PARAM, "etsContext is null"), nullptr); return; } std::string stdType; @@ -759,10 +768,10 @@ void EtsApplicationContextUtils::UnregisterAbilityLifecycleCallback(ani_env *env if (applicationContext == nullptr) { TAG_LOGE(AAFwkTag::APPKIT, "applicationContext is null"); AppExecFwk::AsyncCallback(env, callback, EtsErrorUtil::CreateError(env, - (ani_int)AbilityErrorCode::ERROR_CODE_INVALID_CONTEXT, "applicationContext is null"), nullptr); + (ani_int)AbilityErrorCode::ERROR_CODE_INVALID_PARAM, "applicationContext is null"), nullptr); return; } - + std::lock_guard lock(g_abilityLifecycleCallbackLock); if (abilityLifecycleCallback_ == nullptr) { TAG_LOGE(AAFwkTag::APPKIT, "abilityLifecycleCallback_ is null"); AppExecFwk::AsyncCallback(env, callback, EtsErrorUtil::CreateError(env, @@ -777,7 +786,7 @@ void EtsApplicationContextUtils::UnregisterAbilityLifecycleCallback(ani_env *env } TAG_LOGE(AAFwkTag::APPKIT, "failed to unregister"); AppExecFwk::AsyncCallback(env, callback, EtsErrorUtil::CreateError(env, - (ani_int)AbilityErrorCode::ERROR_CODE_INNER, "failed to unregister"), nullptr); + (ani_int)AbilityErrorCode::ERROR_CODE_INVALID_PARAM, "failed to unregister"), nullptr); } void EtsApplicationContextUtils::UnregisterInteropAbilityLifecycleCallback(ani_env *env, ani_object callback) @@ -1015,7 +1024,7 @@ void EtsApplicationContextUtils::BindApplicationContextFunc(ani_env* aniEnv) "L@ohos/app/ability/Want/Want;Lutils/AbilityUtils/AsyncCallbackWrapper;:V", reinterpret_cast(EtsApplicationContextUtils::PreloadUIExtensionAbility)}, ani_native_function {"nativeOnLifecycleCallbackSync", - "Lstd/core/String;Lstd/core/Object;:I", + "Lstd/core/String;L@ohos/app/ability/AbilityLifecycleCallback/AbilityLifecycleCallback;:I", reinterpret_cast(EtsApplicationContextUtils::NativeOnLifecycleCallbackSync)}, ani_native_function {"nativeOffLifecycleCallbackSync", "Lstd/core/String;ILutils/AbilityUtils/AsyncCallbackWrapper;:V", diff --git a/frameworks/ets/ets/application/ApplicationContext.ets b/frameworks/ets/ets/application/ApplicationContext.ets index b80fe9d85b3..3d30e769f38 100644 --- a/frameworks/ets/ets/application/ApplicationContext.ets +++ b/frameworks/ets/ets/application/ApplicationContext.ets @@ -13,7 +13,7 @@ * limitations under the License. */ -import AbilityLifecycleCallback from '../@ohos.app.ability.AbilityLifecycleCallback'; +import AbilityLifecycleCallback from '@ohos.app.ability.AbilityLifecycleCallback'; import InteropAbilityLifecycleCallback from '../@ohos.app.ability.InteropAbilityLifecycleCallback'; import Context from 'application.Context' import { BusinessError, AsyncCallback } from '@ohos.base' @@ -65,7 +65,7 @@ export default class ApplicationContext extends Context { destroyRegister.unregister(unregisterToken); } - public native nativeOnLifecycleCallbackSync(type: string, callback: Object): int; + public native nativeOnLifecycleCallbackSync(type: string, callback: AbilityLifecycleCallback): int; public native nativeOffLifecycleCallbackSync(type: string, callbackId: int, callback: AsyncCallbackWrapper): void; public native nativekillAllProcessesSync(clearPageStack: boolean, callback: AsyncCallbackWrapper): void; diff --git a/interfaces/kits/native/appkit/ability_runtime/context/application_context.h b/interfaces/kits/native/appkit/ability_runtime/context/application_context.h index cbf6c445f5a..2a76d92b192 100644 --- a/interfaces/kits/native/appkit/ability_runtime/context/application_context.h +++ b/interfaces/kits/native/appkit/ability_runtime/context/application_context.h @@ -195,7 +195,7 @@ private: static std::vector> interopCallbacks_; static std::vector> envCallbacks_; static std::vector> applicationStateCallback_; - std::recursive_mutex callbackLock_; + std::mutex callbackLock_; std::mutex interopCallbackLock_; std::recursive_mutex envCallbacksLock_; std::recursive_mutex applicationStateCallbackLock_; -- Gitee From 69bb155641e5806376cd3d95c8d24481cd84d81a Mon Sep 17 00:00:00 2001 From: zhang_hao_zheng Date: Wed, 13 Aug 2025 10:19:06 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8F=AF=E9=87=8D?= =?UTF-8?q?=E5=85=A5=E9=94=81=E6=94=B9=E4=B8=BA=E6=99=AE=E9=80=9A=E9=94=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhang_hao_zheng Change-Id: I58c0be807f0f7f28a057690dd6a3627b6cc83717 --- .../src/ets_application_context_utils.cpp | 16 ++--- .../src/ets_uri_perm_mgr.cpp | 6 +- .../context/application_context.cpp | 62 +++++++++---------- 3 files changed, 43 insertions(+), 41 deletions(-) diff --git a/frameworks/ets/ani/ani_common/src/ets_application_context_utils.cpp b/frameworks/ets/ani/ani_common/src/ets_application_context_utils.cpp index a1987ebc50b..01564b986e7 100644 --- a/frameworks/ets/ani/ani_common/src/ets_application_context_utils.cpp +++ b/frameworks/ets/ani/ani_common/src/ets_application_context_utils.cpp @@ -586,25 +586,25 @@ ani_int EtsApplicationContextUtils::NativeOnLifecycleCallbackSync(ani_env *env, if (env == nullptr) { TAG_LOGE(AAFwkTag::APPKIT, "env is nullptr"); EtsErrorUtil::ThrowError(env, AbilityRuntime::AbilityErrorCode::ERROR_CODE_INVALID_PARAM); - return ANI_ERROR; + return ani_int(ERROR_CODE_NULL_ENV); } auto etsContext = GeApplicationContext(env, aniObj); if (etsContext == nullptr) { EtsErrorUtil::ThrowError(env, AbilityRuntime::AbilityErrorCode::ERROR_CODE_INVALID_PARAM); - return ANI_ERROR; + return ani_int(ERROR_CODE_INVALID_PARAM); } std::string stdType; if (!AppExecFwk::GetStdString(env, type, stdType)) { TAG_LOGE(AAFwkTag::APPKIT, "parse type failed"); EtsErrorUtil::ThrowInvalidParamError(env, "Failed to parse param type. Type must be a string."); - return ANI_ERROR; + return ani_int(ERROR_CODE_INVALID_PARAM); } TAG_LOGD(AAFwkTag::APPKIT, "type=%{public}s", stdType.c_str()); if (stdType == TYPE_ABILITY_LIFECYCLE) { return etsContext->RegisterAbilityLifecycleCallback(env, callback); } EtsErrorUtil::ThrowInvalidParamError(env, "Unknown type."); - return ANI_ERROR; + return ani_int(ERROR_CODE_INVALID_PARAM); } void EtsApplicationContextUtils::NativeOnInteropLifecycleCallbackSync(ani_env *env, @@ -641,7 +641,7 @@ ani_int EtsApplicationContextUtils::RegisterAbilityLifecycleCallback(ani_env *en if (applicationContext == nullptr) { TAG_LOGE(AAFwkTag::APPKIT, "applicationContext is null"); EtsErrorUtil::ThrowError(env, AbilityRuntime::AbilityErrorCode::ERROR_CODE_INVALID_PARAM); - return ANI_ERROR; + return ani_int(ERROR_CODE_NULL_CONTEXT); } std::lock_guard lock(g_abilityLifecycleCallbackLock); if (abilityLifecycleCallback_ != nullptr) { @@ -649,7 +649,7 @@ ani_int EtsApplicationContextUtils::RegisterAbilityLifecycleCallback(ani_env *en if (result < 0) { TAG_LOGE(AAFwkTag::APPKIT, "register failed: %{public}d", result); EtsErrorUtil::ThrowError(env, AbilityRuntime::AbilityErrorCode::ERROR_CODE_INVALID_PARAM); - return ANI_ERROR; + return ani_int(ERROR_CODE_INVALID_PARAM); } return ani_int(result); } @@ -663,11 +663,11 @@ ani_int EtsApplicationContextUtils::RegisterAbilityLifecycleCallback(ani_env *en if (callbackId == static_cast(ERROR_CODE_NULL_ENV) || callbackId == static_cast(ERROR_CODE_NULL_CALLBACK)) { EtsErrorUtil::ThrowError(env, AbilityRuntime::AbilityErrorCode::ERROR_CODE_INVALID_PARAM); - return ANI_ERROR; + return ani_int(ERROR_CODE_INVALID_PARAM); } EtsErrorUtil::ThrowError(env, AbilityRuntime::AbilityErrorCode::ERROR_CODE_INVALID_PARAM); - return ANI_ERROR; + return ani_int(ERROR_CODE_INVALID_PARAM); } void EtsApplicationContextUtils::RegisterInteropAbilityLifecycleCallback(ani_env *env, ani_object callback) diff --git a/frameworks/ets/ani/uri_permission_manager/src/ets_uri_perm_mgr.cpp b/frameworks/ets/ani/uri_permission_manager/src/ets_uri_perm_mgr.cpp index 264648fff68..47e06852b93 100644 --- a/frameworks/ets/ani/uri_permission_manager/src/ets_uri_perm_mgr.cpp +++ b/frameworks/ets/ani/uri_permission_manager/src/ets_uri_perm_mgr.cpp @@ -92,7 +92,8 @@ static void grantUriPermissionCallbackSync([[maybe_unused]]ani_env *env, } if (appCloneIndex < 0) { TAG_LOGE(AAFwkTag::URIPERMMGR, "appCloneIndex invalid"); - AsyncCallback(env, callback, EtsErrorUtil::CreateError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM, + AsyncCallback(env, callback, EtsErrorUtil::CreateError(env, + static_cast(AbilityErrorCode::ERROR_CODE_INVALID_PARAM), "Param appCloneIndex is invalid, the value less than 0."), CreateDouble(env, ERR_FAILURE)); return; @@ -133,7 +134,8 @@ static void revokeUriPermissionCallbackSync([[maybe_unused]]ani_env *env, } if (appCloneIndex < 0) { TAG_LOGE(AAFwkTag::URIPERMMGR, "appCloneIndex invalid"); - AsyncCallback(env, callback, EtsErrorUtil::CreateError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM, + AsyncCallback(env, callback, EtsErrorUtil::CreateError(env, + static_cast(AbilityErrorCode::ERROR_CODE_INVALID_PARAM), "Param appCloneIndex is invalid, the value less than 0."), CreateDouble(env, ERR_FAILURE)); return; diff --git a/frameworks/native/appkit/ability_runtime/context/application_context.cpp b/frameworks/native/appkit/ability_runtime/context/application_context.cpp index 6cf57e68463..b65df9cb380 100644 --- a/frameworks/native/appkit/ability_runtime/context/application_context.cpp +++ b/frameworks/native/appkit/ability_runtime/context/application_context.cpp @@ -56,7 +56,7 @@ void ApplicationContext::RegisterAbilityLifecycleCallback( if (abilityLifecycleCallback == nullptr) { return; } - std::lock_guard lock(callbackLock_); + std::lock_guard lock(callbackLock_); callbacks_.push_back(abilityLifecycleCallback); } @@ -64,7 +64,7 @@ void ApplicationContext::UnregisterAbilityLifecycleCallback( const std::shared_ptr &abilityLifecycleCallback) { TAG_LOGD(AAFwkTag::APPKIT, "called"); - std::lock_guard lock(callbackLock_); + std::lock_guard lock(callbackLock_); auto it = std::find(callbacks_.begin(), callbacks_.end(), abilityLifecycleCallback); if (it != callbacks_.end()) { callbacks_.erase(it); @@ -95,7 +95,7 @@ void ApplicationContext::UnregisterInteropAbilityLifecycleCallback( bool ApplicationContext::IsAbilityLifecycleCallbackEmpty() { - std::lock_guard lock(callbackLock_); + std::lock_guard lock(callbackLock_); return callbacks_.empty(); } @@ -134,7 +134,7 @@ void ApplicationContext::DispatchOnAbilityCreate(std::shared_ptr lock(callbackLock_); + std::lock_guard lock(callbackLock_); for (auto callback : callbacks_) { if (callback != nullptr) { callback->OnAbilityCreate(ability); @@ -148,7 +148,7 @@ void ApplicationContext::DispatchOnAbilityCreate(std::shared_ptr lock(callbackLock_); + std::lock_guard lock(callbackLock_); for (auto callback : callbacks_) { if (callback != nullptr) { callback->OnAbilityCreate(ability); @@ -179,7 +179,7 @@ void ApplicationContext::DispatchOnWindowStageCreate(std::shared_ptr lock(callbackLock_); + std::lock_guard lock(callbackLock_); for (auto callback : callbacks_) { if (callback != nullptr) { callback->OnWindowStageCreate(ability, windowStage); @@ -194,7 +194,7 @@ void ApplicationContext::DispatchOnWindowStageCreate(std::shared_ptr lock(callbackLock_); + std::lock_guard lock(callbackLock_); for (auto callback : callbacks_) { if (callback != nullptr) { callback->OnWindowStageCreate(ability, windowStage); @@ -226,7 +226,7 @@ void ApplicationContext::DispatchOnWindowStageDestroy(std::shared_ptr lock(callbackLock_); + std::lock_guard lock(callbackLock_); for (auto callback : callbacks_) { if (callback != nullptr) { callback->OnWindowStageDestroy(ability, windowStage); @@ -241,7 +241,7 @@ void ApplicationContext::DispatchOnWindowStageDestroy(std::shared_ptr lock(callbackLock_); + std::lock_guard lock(callbackLock_); for (auto callback : callbacks_) { if (callback != nullptr) { callback->OnWindowStageDestroy(ability, windowStage); @@ -274,7 +274,7 @@ void ApplicationContext::DispatchWindowStageFocus(const std::shared_ptr lock(callbackLock_); + std::lock_guard lock(callbackLock_); for (auto callback : callbacks_) { if (callback != nullptr) { callback->OnWindowStageActive(ability, windowStage); @@ -290,7 +290,7 @@ void ApplicationContext::DispatchWindowStageUnfocus(const std::shared_ptr lock(callbackLock_); + std::lock_guard lock(callbackLock_); for (auto callback : callbacks_) { if (callback != nullptr) { callback->OnWindowStageInactive(ability, windowStage); @@ -304,7 +304,7 @@ void ApplicationContext::DispatchOnAbilityDestroy(std::shared_ptr lock(callbackLock_); + std::lock_guard lock(callbackLock_); for (auto callback : callbacks_) { if (callback != nullptr) { callback->OnAbilityDestroy(ability); @@ -318,7 +318,7 @@ void ApplicationContext::DispatchOnAbilityDestroy(std::shared_ptr lock(callbackLock_); + std::lock_guard lock(callbackLock_); for (auto callback : callbacks_) { if (callback != nullptr) { callback->OnAbilityDestroy(ability); @@ -348,7 +348,7 @@ void ApplicationContext::DispatchOnAbilityForeground(std::shared_ptr lock(callbackLock_); + std::lock_guard lock(callbackLock_); for (auto callback : callbacks_) { if (callback != nullptr) { callback->OnAbilityForeground(ability); @@ -362,7 +362,7 @@ void ApplicationContext::DispatchOnAbilityForeground(std::shared_ptr lock(callbackLock_); + std::lock_guard lock(callbackLock_); for (auto callback : callbacks_) { if (callback != nullptr) { callback->OnAbilityForeground(ability); @@ -392,7 +392,7 @@ void ApplicationContext::DispatchOnAbilityBackground(std::shared_ptr lock(callbackLock_); + std::lock_guard lock(callbackLock_); for (auto callback : callbacks_) { if (callback != nullptr) { callback->OnAbilityBackground(ability); @@ -406,7 +406,7 @@ void ApplicationContext::DispatchOnAbilityBackground(std::shared_ptr lock(callbackLock_); + std::lock_guard lock(callbackLock_); for (auto callback : callbacks_) { if (callback != nullptr) { callback->OnAbilityBackground(ability); @@ -436,7 +436,7 @@ void ApplicationContext::DispatchOnAbilityContinue(const std::shared_ptr lock(callbackLock_); + std::lock_guard lock(callbackLock_); for (auto callback : callbacks_) { if (callback != nullptr) { callback->OnAbilityContinue(ability); @@ -452,7 +452,7 @@ void ApplicationContext::DispatchOnAbilityWillContinue(const std::shared_ptr lock(callbackLock_); + std::lock_guard lock(callbackLock_); for (auto callback : callbacks_) { if (callback != nullptr) { callback->OnAbilityWillContinue(ability); @@ -469,7 +469,7 @@ void ApplicationContext::DispatchOnWindowStageWillRestore(const std::shared_ptr< return; } - std::lock_guard lock(callbackLock_); + std::lock_guard lock(callbackLock_); for (auto callback : callbacks_) { if (callback != nullptr) { callback->OnWindowStageWillRestore(ability, windowStage); @@ -486,7 +486,7 @@ void ApplicationContext::DispatchOnWindowStageRestore(const std::shared_ptr lock(callbackLock_); + std::lock_guard lock(callbackLock_); for (auto callback : callbacks_) { if (callback != nullptr) { callback->OnWindowStageRestore(ability, windowStage); @@ -502,7 +502,7 @@ void ApplicationContext::DispatchOnAbilityWillSaveState(const std::shared_ptr lock(callbackLock_); + std::lock_guard lock(callbackLock_); for (auto callback : callbacks_) { if (callback != nullptr) { callback->OnAbilityWillSaveState(ability); @@ -518,7 +518,7 @@ void ApplicationContext::DispatchOnAbilitySaveState(const std::shared_ptr lock(callbackLock_); + std::lock_guard lock(callbackLock_); for (auto callback : callbacks_) { if (callback != nullptr) { callback->OnAbilitySaveState(ability); @@ -574,7 +574,7 @@ void ApplicationContext::DispatchOnWillNewWant(const std::shared_ptr lock(callbackLock_); + std::lock_guard lock(callbackLock_); for (auto callback : callbacks_) { if (callback != nullptr) { callback->OnWillNewWant(ability); @@ -588,7 +588,7 @@ void ApplicationContext::DispatchOnNewWant(const std::shared_ptr lock(callbackLock_); + std::lock_guard lock(callbackLock_); for (auto callback : callbacks_) { if (callback != nullptr) { callback->OnNewWant(ability); @@ -603,7 +603,7 @@ void ApplicationContext::DispatchOnAbilityWillCreate(const std::shared_ptr lock(callbackLock_); + std::lock_guard lock(callbackLock_); for (auto callback : callbacks_) { if (callback != nullptr) { callback->OnAbilityWillCreate(ability); @@ -619,7 +619,7 @@ void ApplicationContext::DispatchOnWindowStageWillCreate(const std::shared_ptr lock(callbackLock_); + std::lock_guard lock(callbackLock_); for (auto callback : callbacks_) { if (callback != nullptr) { callback->OnWindowStageWillCreate(ability, windowStage); @@ -635,7 +635,7 @@ void ApplicationContext::DispatchOnWindowStageWillDestroy(const std::shared_ptr< TAG_LOGE(AAFwkTag::APPKIT, "null ability or windowStage"); return; } - std::lock_guard lock(callbackLock_); + std::lock_guard lock(callbackLock_); for (auto callback : callbacks_) { if (callback != nullptr) { callback->OnWindowStageWillDestroy(ability, windowStage); @@ -650,7 +650,7 @@ void ApplicationContext::DispatchOnAbilityWillDestroy(const std::shared_ptr lock(callbackLock_); + std::lock_guard lock(callbackLock_); for (auto callback : callbacks_) { if (callback != nullptr) { callback->OnAbilityWillDestroy(ability); @@ -665,7 +665,7 @@ void ApplicationContext::DispatchOnAbilityWillForeground(const std::shared_ptr lock(callbackLock_); + std::lock_guard lock(callbackLock_); for (auto callback : callbacks_) { if (callback != nullptr) { callback->OnAbilityWillForeground(ability); @@ -680,7 +680,7 @@ void ApplicationContext::DispatchOnAbilityWillBackground(const std::shared_ptr lock(callbackLock_); + std::lock_guard lock(callbackLock_); for (auto callback : callbacks_) { if (callback != nullptr) { callback->OnAbilityWillBackground(ability); -- Gitee