diff --git a/services/abilitymgr/src/ability_stack_manager.cpp b/services/abilitymgr/src/ability_stack_manager.cpp index cbe19ddd1b..0b6a5b5eed 100644 --- a/services/abilitymgr/src/ability_stack_manager.cpp +++ b/services/abilitymgr/src/ability_stack_manager.cpp @@ -347,14 +347,6 @@ int AbilityStackManager::TerminateAbility(const sptr &token, int return LOCK_MISSION_STATE_DENY_REQUEST; } - // if ability is in multiwindow stack, and is bottom ability of this mission, - // just background, don't schedule terminate - if (!IsFullScreenStack(abilityRecord->GetMissionStackId()) && - missionRecord->GetBottomAbilityRecord() == abilityRecord) { - HILOG_INFO("Mulitwindow stack , bottom ability of mission .just background, don't schedule terminate."); - return MoveMissionToEndLocked(missionRecord->GetMissionRecordId()); - } - HILOG_INFO("Schedule normal terminate process."); abilityRecord->SetTerminatingState(); return TerminateAbilityLocked(abilityRecord, resultCode, resultWant); diff --git a/services/abilitymgr/src/data_ability_record.cpp b/services/abilitymgr/src/data_ability_record.cpp index 91b3cd2732..aaa44c400d 100644 --- a/services/abilitymgr/src/data_ability_record.cpp +++ b/services/abilitymgr/src/data_ability_record.cpp @@ -331,7 +331,11 @@ int DataAbilityRecord::RemoveClients(const std::shared_ptr &clien while (it != clients_.end()) { if (!it->isSystem) { auto clientAbilityRecord = Token::GetAbilityRecordByToken(it->client); - CHECK_POINTER_CONTINUE(clientAbilityRecord); + if (!clientAbilityRecord) { + HILOG_ERROR("clientAbilityRecord is nullptr, continue."); + ++it; + continue; + } if (clientAbilityRecord == client) { appScheduler->AbilityBehaviorAnalysis( ability_->GetToken(), clientAbilityRecord->GetToken(), 0, 0, 0);