diff options
author | dtrunov <dtrunov@luxoft.com> | 2015-05-28 13:12:46 +0300 |
---|---|---|
committer | dtrunov <dtrunov@luxoft.com> | 2015-07-17 11:34:01 +0300 |
commit | f6a30dda295c715c4b9180f3133f98302e4efd96 (patch) | |
tree | ca9c3f78e4fae23bfd5dcf49d6308aa69f48f60d | |
parent | 89f3a68b46674e5e88d3da612ea50287b8b317ff (diff) | |
download | smartdevicelink-f6a30dda295c715c4b9180f3133f98302e4efd96.tar.gz |
Fixed core crash after resuming audio/video streaming
3 files changed, 26 insertions, 6 deletions
diff --git a/src/components/application_manager/include/application_manager/application_manager_impl.h b/src/components/application_manager/include/application_manager/application_manager_impl.h index 1a82f5350..0046b4bf4 100644 --- a/src/components/application_manager/include/application_manager/application_manager_impl.h +++ b/src/components/application_manager/include/application_manager/application_manager_impl.h @@ -429,6 +429,10 @@ class ApplicationManagerImpl : public ApplicationManager, void SetState(uint32_t app_id, mobile_apis::AudioStreamingState::eType audio_state) { ApplicationSharedPtr app = application(app_id); + if (!app) { + LOG4CXX_ERROR(logger_, "Application with appID="<<app_id<<" does not exist"); + return; + } state_ctrl_.SetRegularState(app, audio_state); } @@ -442,6 +446,10 @@ class ApplicationManagerImpl : public ApplicationManager, void SetState(uint32_t app_id, HmiStatePtr new_state) { ApplicationSharedPtr app = application(app_id); + if (!app) { + LOG4CXX_ERROR(logger_, "Application with appID="<<app_id<<" does not exist"); + return; + } state_ctrl_.SetRegularState<SendActivateApp>(app, new_state); } @@ -454,6 +462,10 @@ class ApplicationManagerImpl : public ApplicationManager, void SetState(uint32_t app_id, mobile_apis::HMILevel::eType hmi_level){ ApplicationSharedPtr app = application(app_id); + if (!app) { + LOG4CXX_ERROR(logger_, "Application with appID="<<app_id<<" does not exist"); + return; + } state_ctrl_.SetRegularState<SendActivateApp>(app, hmi_level); } @@ -469,6 +481,10 @@ class ApplicationManagerImpl : public ApplicationManager, mobile_apis::HMILevel::eType hmi_level, mobile_apis::AudioStreamingState::eType audio_state){ ApplicationSharedPtr app = application(app_id); + if (!app) { + LOG4CXX_ERROR(logger_, "Application with appID="<<app_id<<" does not exist"); + return; + } state_ctrl_.SetRegularState<SendActivateApp>(app, hmi_level, audio_state); } @@ -484,6 +500,10 @@ class ApplicationManagerImpl : public ApplicationManager, mobile_apis::AudioStreamingState::eType audio_state, mobile_apis::SystemContext::eType system_context) { ApplicationSharedPtr app = application(app_id); + if (!app) { + LOG4CXX_ERROR(logger_, "Application with appID="<<app_id<<" does not exist"); + return; + } state_ctrl_.SetRegularState<SendActivateApp>(app, hmi_level, audio_state, system_context); } @@ -496,6 +516,10 @@ class ApplicationManagerImpl : public ApplicationManager, void SetState(uint32_t app_id, mobile_apis::SystemContext::eType system_context) { ApplicationSharedPtr app = application(app_id); + if (!app) { + LOG4CXX_ERROR(logger_, "Application with appID="<<app_id<<" does not exist"); + return; + } state_ctrl_.SetRegularState(app, system_context); } diff --git a/src/components/application_manager/include/application_manager/state_controller.h b/src/components/application_manager/include/application_manager/state_controller.h index b57070c35..d4a2b9fc8 100644 --- a/src/components/application_manager/include/application_manager/state_controller.h +++ b/src/components/application_manager/include/application_manager/state_controller.h @@ -58,7 +58,6 @@ class StateController : public event_engine::EventObserver { template <bool SendActivateApp> void SetRegularState(ApplicationSharedPtr app, HmiStatePtr state) { - DCHECK_OR_RETURN_VOID(app); DCHECK_OR_RETURN_VOID(state); DCHECK_OR_RETURN_VOID(state->state_id() == HmiState::STATE_ID_REGULAR); @@ -90,7 +89,6 @@ class StateController : public event_engine::EventObserver { void SetRegularState(ApplicationSharedPtr app, const mobile_apis::HMILevel::eType hmi_level, const mobile_apis::AudioStreamingState::eType audio_state) { - DCHECK_OR_RETURN_VOID(app); HmiStatePtr prev_regular = app->RegularHmiState(); DCHECK_OR_RETURN_VOID(prev_regular); HmiStatePtr hmi_state = CreateHmiState(app->app_id(), @@ -111,7 +109,6 @@ class StateController : public event_engine::EventObserver { template <bool SendActivateApp> void SetRegularState(ApplicationSharedPtr app, const mobile_apis::HMILevel::eType hmi_level) { - DCHECK_OR_RETURN_VOID(app); HmiStatePtr prev_regular = app->RegularHmiState(); DCHECK_OR_RETURN_VOID(prev_regular); HmiStatePtr hmi_state = CreateHmiState(app->app_id(), @@ -135,7 +132,7 @@ class StateController : public event_engine::EventObserver { const mobile_apis::HMILevel::eType hmi_level, const mobile_apis::AudioStreamingState::eType audio_state, const mobile_apis::SystemContext::eType system_context) { - DCHECK_OR_RETURN_VOID(app); + HmiStatePtr hmi_state = CreateHmiState(app->app_id(), HmiState::StateID::STATE_ID_REGULAR); DCHECK_OR_RETURN_VOID(hmi_state); @@ -152,7 +149,7 @@ class StateController : public event_engine::EventObserver { */ void SetRegularState(ApplicationSharedPtr app, const mobile_apis::SystemContext::eType system_context) { - DCHECK_OR_RETURN_VOID(app); + HmiStatePtr prev_regular = app->RegularHmiState(); DCHECK_OR_RETURN_VOID(prev_regular); HmiStatePtr hmi_state = CreateHmiState(app->app_id(), diff --git a/src/components/application_manager/src/state_controller.cc b/src/components/application_manager/src/state_controller.cc index 0434e471f..1c335d710 100644 --- a/src/components/application_manager/src/state_controller.cc +++ b/src/components/application_manager/src/state_controller.cc @@ -60,7 +60,6 @@ StateController::StateController():EventObserver() { void StateController::SetRegularState(ApplicationSharedPtr app, const mobile_apis::AudioStreamingState::eType audio_state) { - DCHECK_OR_RETURN_VOID(app); HmiStatePtr prev_state = app->RegularHmiState(); DCHECK_OR_RETURN_VOID(prev_state); HmiStatePtr hmi_state = CreateHmiState(app->app_id(), |