diff --git a/services/abilitymgr/src/ability_stack_manager.cpp b/services/abilitymgr/src/ability_stack_manager.cpp index cbe19ddd1b32b4a5142859bb0f5c795961b711a9..0b6a5b5eedc0715ed64675a55b880c8dc32c8454 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 91b3cd27327d7ba5a428384702b8814909f823ba..aaa44c400d14161f544e39a283acae905d9e2c68 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);