Fix iOS GM connection issue
[platform/core/connectivity/bluetooth-frwk.git] / bt-oal / oal-hid-host.c
index 077c6ac..0458b41 100755 (executable)
@@ -50,14 +50,14 @@ static void handshake_callback(bt_bdaddr_t *bd_addr, bthh_status_t hh_status);
 static const bthh_interface_t * hid_api;
 
 static bthh_callbacks_t sBluetoothHidCallbacks = {
-       sizeof(sBluetoothHidCallbacks),
-       connection_state_callback,
-       hid_info_callback,
-       get_protocol_mode_callback,
-       idle_time_callback,
-       get_report_callback,
-       virtual_unplug_callback,
-       handshake_callback,
+       .size = sizeof(sBluetoothHidCallbacks),
+       .connection_state_cb = connection_state_callback,
+       .hid_info_cb = hid_info_callback,
+       .protocol_mode_cb = get_protocol_mode_callback,
+       .idle_time_cb = idle_time_callback,
+       .get_report_cb = get_report_callback,
+       .virtual_unplug_cb = virtual_unplug_callback,
+       .handshake_cb = handshake_callback,
 };
 
 oal_status_t hid_enable(void)
@@ -152,7 +152,7 @@ oal_status_t hid_set_report(bt_address_t *address,
        int ret;
        bdstr_t bdstr;
 
-       API_TRACE("len: %d", strlen(report));
+       API_TRACE("len: %zd", strlen(report));
        CHECK_OAL_HID_ENABLED();
        OAL_CHECK_PARAMETER(address, return);
        OAL_CHECK_PARAMETER(report, return);
@@ -194,6 +194,8 @@ static void connection_state_callback(bt_bdaddr_t *bd_addr, bthh_connection_stat
 
        BT_DBG("%d", state);
 
+       if (!event)
+               return;
        memcpy(event->address.addr, bd_addr->address, BT_ADDRESS_BYTES_NUM);
 
        event->status = OAL_STATUS_SUCCESS;
@@ -207,9 +209,7 @@ static void connection_state_callback(bt_bdaddr_t *bd_addr, bthh_connection_stat
                break;
        case BTHH_CONN_STATE_CONNECTING:
        case BTHH_CONN_STATE_DISCONNECTING:
-               if(event) {
-                       g_free(event);
-               }
+               g_free(event);
                return;
        case BTHH_CONN_STATE_FAILED_MOUSE_FROM_HOST:
                event_type = OAL_EVENT_HID_DISCONNECTED;
@@ -226,9 +226,7 @@ static void connection_state_callback(bt_bdaddr_t *bd_addr, bthh_connection_stat
        case BTHH_CONN_STATE_UNKNOWN:
        default:
                BT_ERR("Unhandled Connection state %d", state);
-               if(event) {
-                       g_free(event);
-               }
+               g_free(event);
                return;
        }