OSDN Git Service

A2DP Offload: Don't crash on repeated endSession
authorSunny Kapdi <sunnyk@codeaurora.org>
Wed, 23 May 2018 22:14:35 +0000 (15:14 -0700)
committerPavlin Radoslavov <pavlin@google.com>
Thu, 24 May 2018 23:39:22 +0000 (16:39 -0700)
AudioOffload endSession is called from multiple places.
Do not crash if session has already ended.

Also, added/enabled extra log messages to help debug similar issues.

Bug: 80148693
Test: Manual
Change-Id: I409c0146f9629cee6bdabf16e52e88201ee02267
Merged-In: I409c0146f9629cee6bdabf16e52e88201ee02267
(cherry picked from commit 7a2110d6660b080b0242fc385cce3c9748c49090)

btif/src/btif_a2dp_audio_interface.cc

index e7be495..3608acd 100644 (file)
@@ -214,7 +214,7 @@ void btif_a2dp_audio_interface_start_session() {
 
 void btif_a2dp_audio_interface_end_session() {
   LOG_INFO(LOG_TAG, "%s", __func__);
-  CHECK(btAudio != nullptr);
+  if (btAudio == nullptr) return;
   auto ret = btAudio->endSession();
   if (!ret.isOk()) {
     LOG_ERROR(LOG_TAG, "HAL server is dead");
@@ -260,6 +260,7 @@ void btif_a2dp_audio_send_start_req() {
   }
 }
 void btif_a2dp_audio_send_suspend_req() {
+  LOG_INFO(LOG_TAG, "%s", __func__);
   uint8_t resp;
   resp = btif_a2dp_audio_process_request(A2DP_CTRL_CMD_SUSPEND);
   if (btAudio != nullptr) {
@@ -278,8 +279,8 @@ void btif_a2dp_audio_send_suspend_req() {
 }*/
 
 uint8_t btif_a2dp_audio_process_request(uint8_t cmd) {
-  APPL_TRACE_DEBUG("%s: cmd: %s", __func__,
-                   audio_a2dp_hw_dump_ctrl_event((tA2DP_CTRL_CMD)cmd));
+  LOG_INFO(LOG_TAG, "%s: cmd: %s", __func__,
+           audio_a2dp_hw_dump_ctrl_event((tA2DP_CTRL_CMD)cmd));
   a2dp_cmd_pending = cmd;
   uint8_t status;
   switch (cmd) {
@@ -362,7 +363,7 @@ uint8_t btif_a2dp_audio_process_request(uint8_t cmd) {
       status = A2DP_CTRL_ACK_FAILURE;
       break;
   }
-  APPL_TRACE_DEBUG("a2dp-ctrl-cmd : %s DONE returning status %d",
-                   audio_a2dp_hw_dump_ctrl_event((tA2DP_CTRL_CMD)cmd), status);
+  LOG_INFO(LOG_TAG, "a2dp-ctrl-cmd : %s DONE returning status %d",
+           audio_a2dp_hw_dump_ctrl_event((tA2DP_CTRL_CMD)cmd), status);
   return status;
 }