From 6ccc6f495484574bd63dc0104eac44ccf4acc96d Mon Sep 17 00:00:00 2001 From: Jakub Pawlowski Date: Fri, 27 Oct 2017 13:28:23 -0700 Subject: [PATCH] Use Bind in BTA_JvL2capClose Bug: 68359837 Test: compilation test Change-Id: Ia153dab61cb593b4319ffa718c691d5985e529e6 --- bta/jv/bta_jv_act.cc | 21 ++++++--------------- bta/jv/bta_jv_api.cc | 18 +++++------------- bta/jv/bta_jv_int.h | 3 +-- bta/jv/bta_jv_main.cc | 1 - 4 files changed, 12 insertions(+), 31 deletions(-) diff --git a/bta/jv/bta_jv_act.cc b/bta/jv/bta_jv_act.cc index 8aa33fc1f..489926126 100644 --- a/bta/jv/bta_jv_act.cc +++ b/bta/jv/bta_jv_act.cc @@ -991,23 +991,14 @@ void bta_jv_l2cap_connect(int32_t type, tBTA_SEC sec_mask, tBTA_JV_ROLE role, } } -/******************************************************************************* - * - * Function bta_jv_l2cap_close - * - * Description Close an L2CAP client connection - * - * Returns void - * - ******************************************************************************/ -void bta_jv_l2cap_close(tBTA_JV_MSG* p_data) { +/** Close an L2CAP client connection */ +void bta_jv_l2cap_close(uint32_t handle, tBTA_JV_L2C_CB* p_cb) { tBTA_JV_L2CAP_CLOSE evt_data; - tBTA_JV_API_L2CAP_CLOSE* cc = &(p_data->l2cap_close); - tBTA_JV_L2CAP_CBACK* p_cback = cc->p_cb->p_cback; - uint32_t l2cap_socket_id = cc->p_cb->l2cap_socket_id; + tBTA_JV_L2CAP_CBACK* p_cback = p_cb->p_cback; + uint32_t l2cap_socket_id = p_cb->l2cap_socket_id; - evt_data.handle = cc->handle; - evt_data.status = bta_jv_free_l2c_cb(cc->p_cb); + evt_data.handle = handle; + evt_data.status = bta_jv_free_l2c_cb(p_cb); evt_data.async = false; if (p_cback) { diff --git a/bta/jv/bta_jv_api.cc b/bta/jv/bta_jv_api.cc index 8470b5e6d..47b993f63 100644 --- a/bta/jv/bta_jv_api.cc +++ b/bta/jv/bta_jv_api.cc @@ -324,22 +324,14 @@ tBTA_JV_STATUS BTA_JvL2capConnect( * ******************************************************************************/ tBTA_JV_STATUS BTA_JvL2capClose(uint32_t handle) { - tBTA_JV_STATUS status = BTA_JV_FAILURE; - APPL_TRACE_API("%s", __func__); - if (handle < BTA_JV_MAX_L2C_CONN && bta_jv_cb.l2c_cb[handle].p_cback) { - tBTA_JV_API_L2CAP_CLOSE* p_msg = - (tBTA_JV_API_L2CAP_CLOSE*)osi_malloc(sizeof(tBTA_JV_API_L2CAP_CLOSE)); - p_msg->hdr.event = BTA_JV_API_L2CAP_CLOSE_EVT; - p_msg->handle = handle; - p_msg->p_cb = &bta_jv_cb.l2c_cb[handle]; - - bta_sys_sendmsg(p_msg); - status = BTA_JV_SUCCESS; - } + if (handle >= BTA_JV_MAX_L2C_CONN || !bta_jv_cb.l2c_cb[handle].p_cback) + return BTA_JV_FAILURE; - return status; + do_in_bta_thread( + FROM_HERE, Bind(&bta_jv_l2cap_close, handle, &bta_jv_cb.l2c_cb[handle])); + return BTA_JV_SUCCESS; } /******************************************************************************* diff --git a/bta/jv/bta_jv_int.h b/bta/jv/bta_jv_int.h index 3be5d5724..908214baf 100644 --- a/bta/jv/bta_jv_int.h +++ b/bta/jv/bta_jv_int.h @@ -39,7 +39,6 @@ enum { /* these events are handled by the state machine */ BTA_JV_API_START_DISCOVERY_EVT = BTA_SYS_EVT_START(BTA_ID_JV), - BTA_JV_API_L2CAP_CLOSE_EVT, BTA_JV_API_L2CAP_START_SERVER_EVT, BTA_JV_API_L2CAP_STOP_SERVER_EVT, BTA_JV_API_L2CAP_READ_EVT, @@ -327,7 +326,7 @@ extern void bta_jv_l2cap_connect(int32_t type, tBTA_SEC sec_mask, std::unique_ptr ertm_info, tBTA_JV_L2CAP_CBACK* p_cback, uint32_t l2cap_socket_id); -extern void bta_jv_l2cap_close(tBTA_JV_MSG* p_data); +extern void bta_jv_l2cap_close(uint32_t handle, tBTA_JV_L2C_CB* p_cb); extern void bta_jv_l2cap_start_server(tBTA_JV_MSG* p_data); extern void bta_jv_l2cap_stop_server(tBTA_JV_MSG* p_data); extern void bta_jv_l2cap_read(tBTA_JV_MSG* p_data); diff --git a/bta/jv/bta_jv_main.cc b/bta/jv/bta_jv_main.cc index 0eabfe940..eb4e03964 100644 --- a/bta/jv/bta_jv_main.cc +++ b/bta/jv/bta_jv_main.cc @@ -42,7 +42,6 @@ typedef void (*tBTA_JV_ACTION)(tBTA_JV_MSG* p_data); /* action function list */ const tBTA_JV_ACTION bta_jv_action[] = { bta_jv_start_discovery, /* BTA_JV_API_START_DISCOVERY_EVT */ - bta_jv_l2cap_close, /* BTA_JV_API_L2CAP_CLOSE_EVT */ bta_jv_l2cap_start_server, /* BTA_JV_API_L2CAP_START_SERVER_EVT */ bta_jv_l2cap_stop_server, /* BTA_JV_API_L2CAP_STOP_SERVER_EVT */ bta_jv_l2cap_read, /* BTA_JV_API_L2CAP_READ_EVT */ -- 2.11.0