Properly retrieve acl_conn stack/acl/btm_acl::btm_read_link_quality_complete
Towards encapsulation
Bug: 163134718
Tag: #refactor
Test: gd/cert/run --host
Change-Id: I793fe1ba943c2c413d3f443e54448de565c6528a
diff --git a/system/stack/acl/btm_acl.cc b/system/stack/acl/btm_acl.cc
index e39a3fc..946f580 100644
--- a/system/stack/acl/btm_acl.cc
+++ b/system/stack/acl/btm_acl.cc
@@ -2071,7 +2071,6 @@
void btm_read_link_quality_complete(uint8_t* p) {
tBTM_CMPL_CB* p_cb = btm_cb.devcb.p_link_qual_cmpl_cb;
tBTM_LINK_QUALITY_RESULT result;
- tACL_CONN* p_acl_cb = &btm_cb.acl_cb_.acl_db[0];
alarm_cancel(btm_cb.devcb.read_link_quality_timer);
btm_cb.devcb.p_link_qual_cmpl_cb = NULL;
@@ -2091,12 +2090,9 @@
result.link_quality,
hci_error_code_text(result.hci_status).c_str());
- /* Search through the list of active channels for the correct BD Addr */
- for (uint16_t index = 0; index < MAX_L2CAP_LINKS; index++, p_acl_cb++) {
- if ((p_acl_cb->in_use) && (handle == p_acl_cb->hci_handle)) {
- result.rem_bda = p_acl_cb->remote_addr;
- break;
- }
+ tACL_CONN* p_acl_cb = internal_.acl_get_connection_from_handle(handle);
+ if (p_acl_cb != nullptr) {
+ result.rem_bda = p_acl_cb->remote_addr;
}
} else {
result.status = BTM_ERR_PROCESSING;