Merge "Do not deregister HH GATT IF in bta_gattc_disable for hid over GATT" into klp-dev
diff --git a/bta/hh/bta_hh_le.c b/bta/hh/bta_hh_le.c
index 4d77cb9..02f34a2 100644
--- a/bta/hh/bta_hh_le.c
+++ b/bta/hh/bta_hh_le.c
@@ -2208,18 +2208,23 @@
else if (p_data->char_id.char_id.uuid.uu.uuid16 == GATT_UUID_HID_BT_KB_INPUT)
app_id = BTA_HH_APP_ID_KB;
- /* need to append report ID to the head of data */
- if ((p_buf = (UINT8 *)GKI_getbuf((UINT16)(p_data->len + 1))) == NULL)
- {
- APPL_TRACE_ERROR0("No resources to send report data");
- return;
- }
-
APPL_TRACE_ERROR1("Notification received on report ID: %d", p_rpt->rpt_id);
- p_buf[0] = p_rpt->rpt_id;
- memcpy(&p_buf[1], p_data->value, p_data->len);
- p_data->len ++;
+ /* need to append report ID to the head of data */
+ if (p_rpt->rpt_id != 0)
+ {
+ if ((p_buf = (UINT8 *)GKI_getbuf((UINT16)(p_data->len + 1))) == NULL)
+ {
+ APPL_TRACE_ERROR0("No resources to send report data");
+ return;
+ }
+
+ p_buf[0] = p_rpt->rpt_id;
+ memcpy(&p_buf[1], p_data->value, p_data->len);
+ ++p_data->len;
+ } else {
+ p_buf = p_data->value;
+ }
bta_hh_co_data((UINT8)p_dev_cb->hid_handle,
p_buf,
@@ -2230,7 +2235,8 @@
p_dev_cb->addr,
app_id);
- GKI_freebuf(p_buf);
+ if (p_buf != p_data->value)
+ GKI_freebuf(p_buf);
}
diff --git a/bta/jv/bta_jv_act.c b/bta/jv/bta_jv_act.c
index b296f1b..ea1c9d7 100644
--- a/bta/jv/bta_jv_act.c
+++ b/bta/jv/bta_jv_act.c
@@ -301,9 +301,10 @@
status = BTA_JV_FAILURE;
return status;
case BTA_JV_ST_CL_OPEN:
+ case BTA_JV_ST_CL_OPENING:
+ APPL_TRACE_DEBUG3("bta_jv_free_sr_rfc_cb: state: %d, scn:%d,"
+ " user_data:%d", p_pcb->state, p_cb->scn, (int)p_pcb->user_data);
p_pcb->state = BTA_JV_ST_CL_CLOSING;
- APPL_TRACE_DEBUG2("bta_jv_free_sr_rfc_cb: state: BTA_JV_ST_CL_OPEN, scn:%d,"
- " user_data:%d", p_cb->scn, (int)p_pcb->user_data);
break;
case BTA_JV_ST_SR_LISTEN:
p_pcb->state = BTA_JV_ST_SR_CLOSING;
diff --git a/stack/sdp/sdp_api.c b/stack/sdp/sdp_api.c
index 9ad959a..cb632bd 100644
--- a/stack/sdp/sdp_api.c
+++ b/stack/sdp/sdp_api.c
@@ -460,7 +460,7 @@
&& (SDP_DISC_ATTR_LEN(p_attr->attr_len_type) == 16))
{
p_uuid->len = 16;
- memcpy(p_uuid->uu.uuid128, p_sattr->attr_value.v.array, MAX_UUID_SIZE);
+ memcpy(p_uuid->uu.uuid128, p_attr->attr_value.v.array, MAX_UUID_SIZE);
return(TRUE);
}
}