summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAGaliuzov <AGaliuzov@luxoft.com>2015-07-17 16:20:33 +0300
committerAGaliuzov <AGaliuzov@luxoft.com>2015-07-17 16:20:33 +0300
commitb983a57adad9b8ea3b9e3e2c53d6a9df62a3e13b (patch)
treef616a8c7a6bc88b73553c91c441e0ba46c8759a1
parent41c23cc572f2177de2e1fc8a9fe34e6e671c6aba (diff)
parent914fe7958ef5e4ae1483070d5be3d38e142998f5 (diff)
downloadsmartdevicelink-b983a57adad9b8ea3b9e3e2c53d6a9df62a3e13b.tar.gz
Merge pull request #161 from LuxoftSDL/hotfix/Core_crash_after_resuming_audio_video_streaming
Hotfix/core crash after resuming audio video streaming
-rw-r--r--src/components/application_manager/include/application_manager/application_manager_impl.h24
-rw-r--r--src/components/application_manager/include/application_manager/state_controller.h21
-rw-r--r--src/components/application_manager/src/state_controller.cc4
3 files changed, 43 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..fc10597a6 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,9 @@ class StateController : public event_engine::EventObserver {
template <bool SendActivateApp>
void SetRegularState(ApplicationSharedPtr app,
HmiStatePtr state) {
- DCHECK_OR_RETURN_VOID(app);
+ if (!app) {
+ return;
+ }
DCHECK_OR_RETURN_VOID(state);
DCHECK_OR_RETURN_VOID(state->state_id() == HmiState::STATE_ID_REGULAR);
@@ -90,7 +92,9 @@ 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);
+ if (!app) {
+ return;
+ }
HmiStatePtr prev_regular = app->RegularHmiState();
DCHECK_OR_RETURN_VOID(prev_regular);
HmiStatePtr hmi_state = CreateHmiState(app->app_id(),
@@ -111,7 +115,9 @@ 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);
+ if (!app) {
+ return;
+ }
HmiStatePtr prev_regular = app->RegularHmiState();
DCHECK_OR_RETURN_VOID(prev_regular);
HmiStatePtr hmi_state = CreateHmiState(app->app_id(),
@@ -135,7 +141,10 @@ 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);
+ if (!app) {
+ return;
+ }
+
HmiStatePtr hmi_state = CreateHmiState(app->app_id(),
HmiState::StateID::STATE_ID_REGULAR);
DCHECK_OR_RETURN_VOID(hmi_state);
@@ -152,7 +161,9 @@ class StateController : public event_engine::EventObserver {
*/
void SetRegularState(ApplicationSharedPtr app,
const mobile_apis::SystemContext::eType system_context) {
- DCHECK_OR_RETURN_VOID(app);
+ if (!app) {
+ return;
+ }
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..720312adb 100644
--- a/src/components/application_manager/src/state_controller.cc
+++ b/src/components/application_manager/src/state_controller.cc
@@ -60,7 +60,9 @@ StateController::StateController():EventObserver() {
void StateController::SetRegularState(ApplicationSharedPtr app,
const mobile_apis::AudioStreamingState::eType audio_state) {
- DCHECK_OR_RETURN_VOID(app);
+ if (!app) {
+ return;
+ }
HmiStatePtr prev_state = app->RegularHmiState();
DCHECK_OR_RETURN_VOID(prev_state);
HmiStatePtr hmi_state = CreateHmiState(app->app_id(),