From 3bb63c785720050676af85ebda3044ef4d3894d2 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 11 Sep 2025 09:49:39 +0800 Subject: [PATCH] fix code Signed-off-by: unknown --- .../ability_ecological_rule_mgr_service.h | 6 ++--- .../include/implicit_start_processor.h | 1 - .../ability_ecological_rule_mgr_service.cpp | 17 ++++--------- .../src/implicit_start_processor.cpp | 24 +++++++------------ .../ecological_rule_interceptor.cpp | 6 ++--- .../ability_ecological_rule_mgr_service.cpp | 6 ++--- .../ability_ecological_rule_mgr_service.h | 4 ++-- 7 files changed, 22 insertions(+), 42 deletions(-) diff --git a/services/abilitymgr/include/ecological_rule/ability_ecological_rule_mgr_service.h b/services/abilitymgr/include/ecological_rule/ability_ecological_rule_mgr_service.h index e024dfd1c11..e782e5fa28f 100644 --- a/services/abilitymgr/include/ecological_rule/ability_ecological_rule_mgr_service.h +++ b/services/abilitymgr/include/ecological_rule/ability_ecological_rule_mgr_service.h @@ -31,8 +31,7 @@ using AbilityInfo = OHOS::AppExecFwk::AbilityInfo; class AbilityEcologicalRuleMgrServiceClient : public RefBase { public: - DISALLOW_COPY_AND_MOVE(AbilityEcologicalRuleMgrServiceClient); - static sptr GetInstance(); + static AbilityEcologicalRuleMgrServiceClient &GetInstance(); void OnRemoteSaDied(const wptr &object); int32_t EvaluateResolveInfos(const Want &want, const AbilityCallerInfo &callerInfo, int32_t type, @@ -43,12 +42,11 @@ public: private: AbilityEcologicalRuleMgrServiceClient() {}; ~AbilityEcologicalRuleMgrServiceClient(); + DISALLOW_COPY_AND_MOVE(AbilityEcologicalRuleMgrServiceClient); static sptr ConnectService(); static bool CheckConnectService(); - static mutex instanceLock_; static mutex proxyLock_; - static sptr instance_; static sptr ecologicalRuleMgrServiceProxy_; static sptr deathRecipient_; diff --git a/services/abilitymgr/include/implicit_start_processor.h b/services/abilitymgr/include/implicit_start_processor.h index fe0f546095f..d3381fff1f1 100644 --- a/services/abilitymgr/include/implicit_start_processor.h +++ b/services/abilitymgr/include/implicit_start_processor.h @@ -138,7 +138,6 @@ private: bool IsExtensionInWhiteList(AppExecFwk::ExtensionAbilityType type); ffrt::mutex identityListLock_; std::list identityList_; - std::shared_ptr iBundleManagerHelper_; }; } // namespace AAFwk } // namespace OHOS diff --git a/services/abilitymgr/src/ecological_rule/ability_ecological_rule_mgr_service.cpp b/services/abilitymgr/src/ecological_rule/ability_ecological_rule_mgr_service.cpp index 6fdaf495bd8..2f9f0590161 100644 --- a/services/abilitymgr/src/ecological_rule/ability_ecological_rule_mgr_service.cpp +++ b/services/abilitymgr/src/ecological_rule/ability_ecological_rule_mgr_service.cpp @@ -33,9 +33,7 @@ static inline const std::u16string ERMS_INTERFACE_TOKEN = constexpr int32_t CYCLE_LIMIT = 1000; const int32_t ECOLOGICALRULEMANAGERSERVICE_ID = 6105; -std::mutex AbilityEcologicalRuleMgrServiceClient::instanceLock_; std::mutex AbilityEcologicalRuleMgrServiceClient::proxyLock_; -sptr AbilityEcologicalRuleMgrServiceClient::instance_; sptr AbilityEcologicalRuleMgrServiceClient::ecologicalRuleMgrServiceProxy_; sptr AbilityEcologicalRuleMgrServiceClient::deathRecipient_; @@ -57,15 +55,10 @@ AbilityEcologicalRuleMgrServiceClient::~AbilityEcologicalRuleMgrServiceClient() } } -sptr AbilityEcologicalRuleMgrServiceClient::GetInstance() +AbilityEcologicalRuleMgrServiceClient &AbilityEcologicalRuleMgrServiceClient::GetInstance() { - if (instance_ == nullptr) { - std::lock_guard autoLock(instanceLock_); - if (instance_ == nullptr) { - instance_ = new AbilityEcologicalRuleMgrServiceClient; - } - } - return instance_; + static AbilityEcologicalRuleMgrServiceClient manager; + return manager; } sptr AbilityEcologicalRuleMgrServiceClient::ConnectService() @@ -150,9 +143,7 @@ int32_t AbilityEcologicalRuleMgrServiceClient::QueryStartExperience(const OHOS:: void AbilityEcologicalRuleMgrServiceDeathRecipient::OnRemoteDied(const wptr &object) { - if (AbilityEcologicalRuleMgrServiceClient::GetInstance()) { - AbilityEcologicalRuleMgrServiceClient::GetInstance()->OnRemoteSaDied(object); - } + AbilityEcologicalRuleMgrServiceClient::GetInstance().OnRemoteSaDied(object); } AbilityEcologicalRuleMgrServiceProxy::AbilityEcologicalRuleMgrServiceProxy( diff --git a/services/abilitymgr/src/implicit_start_processor.cpp b/services/abilitymgr/src/implicit_start_processor.cpp index 73cc584a549..4c802a2beda 100644 --- a/services/abilitymgr/src/implicit_start_processor.cpp +++ b/services/abilitymgr/src/implicit_start_processor.cpp @@ -454,7 +454,7 @@ int ImplicitStartProcessor::GenerateAbilityRequestByAction(int32_t userId, Abili HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__); TAG_LOGD(AAFwkTag::ABILITYMGR, "%{public}s.", __func__); // get abilityinfos from bms - auto bundleMgrHelper = GetBundleManagerHelper(); + auto bundleMgrHelper = AbilityUtil::GetBundleManagerHelper(); CHECK_POINTER_AND_RETURN(bundleMgrHelper, GET_ABILITY_SERVICE_FAILED); auto abilityInfoFlag = AppExecFwk::AbilityInfoFlag::GET_ABILITY_INFO_DEFAULT | AppExecFwk::AbilityInfoFlag::GET_ABILITY_INFO_WITH_SKILL_URI @@ -630,7 +630,7 @@ int ImplicitStartProcessor::GenerateAbilityRequestByAppIndexes(int32_t userId, A TAG_LOGE(AAFwkTag::ABILITYMGR, "too large appIndexes"); return ERR_TOO_LARGE_APPINDEXES; } - auto bms = GetBundleManagerHelper(); + auto bms = AbilityUtil::GetBundleManagerHelper(); CHECK_POINTER_AND_RETURN(bms, GET_ABILITY_SERVICE_FAILED); auto abilityInfoFlag = static_cast(AbilityRuntime::StartupUtil::BuildAbilityInfoFlag()) | static_cast(AppExecFwk::AbilityInfoFlag::GET_ABILITY_INFO_WITH_SKILL); @@ -673,7 +673,7 @@ int ImplicitStartProcessor::FindExtensionInfo(const Want &want, int32_t flags, i int32_t appIndex, AppExecFwk::AbilityInfo &abilityInfo) { HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__); - auto bms = GetBundleManagerHelper(); + auto bms = AbilityUtil::GetBundleManagerHelper(); CHECK_POINTER_AND_RETURN(bms, GET_ABILITY_SERVICE_FAILED); AppExecFwk::ExtensionAbilityInfo extensionInfo; TAG_LOGD(AAFwkTag::ABILITYMGR, @@ -695,7 +695,7 @@ int ImplicitStartProcessor::FindExtensionInfo(const Want &want, int32_t flags, i int ImplicitStartProcessor::QueryBmsAppInfos(AbilityRequest &request, int32_t userId, std::vector &dialogAppInfos) { - auto bundleMgrHelper = GetBundleManagerHelper(); + auto bundleMgrHelper = AbilityUtil::GetBundleManagerHelper(); std::vector bmsApps; auto abilityInfoFlag = AppExecFwk::AbilityInfoFlag::GET_ABILITY_INFO_DEFAULT | AppExecFwk::AbilityInfoFlag::GET_ABILITY_INFO_WITH_SKILL_URI @@ -833,17 +833,9 @@ int ImplicitStartProcessor::CallStartAbilityInner(int32_t userId, return ret; } -std::shared_ptr ImplicitStartProcessor::GetBundleManagerHelper() -{ - if (iBundleManagerHelper_ == nullptr) { - iBundleManagerHelper_ = AbilityUtil::GetBundleManagerHelper(); - } - return iBundleManagerHelper_; -} - sptr ImplicitStartProcessor::GetDefaultAppProxy() { - auto bundleMgrHelper = GetBundleManagerHelper(); + auto bundleMgrHelper = AbilityUtil::GetBundleManagerHelper(); if (bundleMgrHelper == nullptr) { TAG_LOGE(AAFwkTag::ABILITYMGR, "null bundleMgrHelper"); return nullptr; @@ -861,7 +853,7 @@ bool ImplicitStartProcessor::FilterAbilityList(const Want &want, std::vector + int ret = IN_PROCESS_CALL(AbilityEcologicalRuleMgrServiceClient::GetInstance(). EvaluateResolveInfos(want, callerInfo, 0, abilityInfos, extensionInfos)); if (ret != ERR_OK) { TAG_LOGE(AAFwkTag::ABILITYMGR, "resolve infos failed"); @@ -878,7 +870,7 @@ void ImplicitStartProcessor::GetEcologicalCallerInfo(const Want &want, ErmsCalle callerInfo.targetAppType = ErmsCallerInfo::TYPE_INVALID; callerInfo.callerAppType = ErmsCallerInfo::TYPE_INVALID; - auto bundleMgrHelper = GetBundleManagerHelper(); + auto bundleMgrHelper = AbilityUtil::GetBundleManagerHelper(); if (bundleMgrHelper == nullptr) { TAG_LOGE(AAFwkTag::ABILITYMGR, "bundleMgrHelper empty"); return; @@ -1116,7 +1108,7 @@ void ImplicitStartProcessor::TrustlistIntersectionProcess(const AbilityRequest & appLaunchTrustlist.size(), TRUSTLIST_MAX_SIZE); appLaunchTrustlist.resize(TRUSTLIST_MAX_SIZE); } - auto bundleMgrHelper = GetBundleManagerHelper(); + auto bundleMgrHelper = AbilityUtil::GetBundleManagerHelper(); if (bundleMgrHelper == nullptr) { TAG_LOGE(AAFwkTag::ABILITYMGR, "bundleMgrHelper empty"); return; diff --git a/services/abilitymgr/src/interceptor/ecological_rule_interceptor.cpp b/services/abilitymgr/src/interceptor/ecological_rule_interceptor.cpp index 4838f00eacd..48f8afda0b8 100644 --- a/services/abilitymgr/src/interceptor/ecological_rule_interceptor.cpp +++ b/services/abilitymgr/src/interceptor/ecological_rule_interceptor.cpp @@ -52,7 +52,7 @@ ErrCode EcologicalRuleInterceptor::DoProcess(AbilityInterceptorParam param) } InitErmsCallerInfo(newWant, param.abilityInfo, callerInfo, param.userId, param.callerToken); - int ret = IN_PROCESS_CALL(AbilityEcologicalRuleMgrServiceClient::GetInstance()->QueryStartExperience(newWant, + int ret = IN_PROCESS_CALL(AbilityEcologicalRuleMgrServiceClient::GetInstance().QueryStartExperience(newWant, callerInfo, rule)); if (ret != ERR_OK) { TAG_LOGD(AAFwkTag::ECOLOGICAL_RULE, "check ecological rule failed"); @@ -116,7 +116,7 @@ bool EcologicalRuleInterceptor::DoProcess(Want &want, int32_t userId) callerInfo, userId); ExperienceRule rule; - auto ret = IN_PROCESS_CALL(AbilityEcologicalRuleMgrServiceClient::GetInstance()->QueryStartExperience(want, + auto ret = IN_PROCESS_CALL(AbilityEcologicalRuleMgrServiceClient::GetInstance().QueryStartExperience(want, callerInfo, rule)); if (ret != ERR_OK) { TAG_LOGD(AAFwkTag::ECOLOGICAL_RULE, "check ecological rule failed"); @@ -151,7 +151,7 @@ ErrCode EcologicalRuleInterceptor::QueryAtomicServiceStartupRule(Want &want, spt StartAbilityUtils::startAbilityInfo->abilityInfo), callerInfo, userId); ExperienceRule _rule; - auto ret = IN_PROCESS_CALL(AbilityEcologicalRuleMgrServiceClient::GetInstance()->QueryStartExperience(want, + auto ret = IN_PROCESS_CALL(AbilityEcologicalRuleMgrServiceClient::GetInstance().QueryStartExperience(want, callerInfo, _rule)); CHECK_RET_RETURN_RET(ret, "check ecological rule failed"); diff --git a/test/unittest/ecological_rule_interceptor_test/mock/ecological_rule/ability_ecological_rule_mgr_service.cpp b/test/unittest/ecological_rule_interceptor_test/mock/ecological_rule/ability_ecological_rule_mgr_service.cpp index 65aa7409165..c06a26ac13c 100644 --- a/test/unittest/ecological_rule_interceptor_test/mock/ecological_rule/ability_ecological_rule_mgr_service.cpp +++ b/test/unittest/ecological_rule_interceptor_test/mock/ecological_rule/ability_ecological_rule_mgr_service.cpp @@ -25,10 +25,10 @@ AbilityExperienceRule AbilityEcologicalRuleMgrServiceClient::queryStartExperienc AbilityEcologicalRuleMgrServiceClient::~AbilityEcologicalRuleMgrServiceClient() {} -sptr AbilityEcologicalRuleMgrServiceClient::GetInstance() +AbilityEcologicalRuleMgrServiceClient &AbilityEcologicalRuleMgrServiceClient::GetInstance() { - static sptr instance_ = new AbilityEcologicalRuleMgrServiceClient; - return instance_; + static AbilityEcologicalRuleMgrServiceClient manager; + return manager; } int32_t AbilityEcologicalRuleMgrServiceClient::QueryStartExperience(const OHOS::AAFwk::Want &want, diff --git a/test/unittest/ecological_rule_interceptor_test/mock/ecological_rule/ability_ecological_rule_mgr_service.h b/test/unittest/ecological_rule_interceptor_test/mock/ecological_rule/ability_ecological_rule_mgr_service.h index a40685e0b2b..8980f2e8123 100644 --- a/test/unittest/ecological_rule_interceptor_test/mock/ecological_rule/ability_ecological_rule_mgr_service.h +++ b/test/unittest/ecological_rule_interceptor_test/mock/ecological_rule/ability_ecological_rule_mgr_service.h @@ -26,8 +26,7 @@ using Want = OHOS::AAFwk::Want; class AbilityEcologicalRuleMgrServiceClient : public RefBase { public: - DISALLOW_COPY_AND_MOVE(AbilityEcologicalRuleMgrServiceClient); - static sptr GetInstance(); + static AbilityEcologicalRuleMgrServiceClient &GetInstance(); int32_t QueryStartExperience(const Want &want, const AbilityCallerInfo &callerInfo, AbilityExperienceRule &rule); public: @@ -35,6 +34,7 @@ public: static AbilityExperienceRule queryStartExperienceRule; private: + DISALLOW_COPY_AND_MOVE(AbilityEcologicalRuleMgrServiceClient); AbilityEcologicalRuleMgrServiceClient() {}; ~AbilityEcologicalRuleMgrServiceClient(); }; -- Gitee