Loading android/app/jni/com_android_bluetooth_gatt.cpp +5 −5 Original line number Original line Diff line number Diff line Loading @@ -307,16 +307,16 @@ void btgattc_notify_cb(int conn_id, const btgatt_notify_params_t& p_data) { } } void btgattc_read_characteristic_cb(int conn_id, int status, void btgattc_read_characteristic_cb(int conn_id, int status, btgatt_read_params_t* p_data) { const btgatt_read_params_t& p_data) { std::shared_lock<std::shared_mutex> lock(callbacks_mutex); std::shared_lock<std::shared_mutex> lock(callbacks_mutex); CallbackEnv sCallbackEnv(__func__); CallbackEnv sCallbackEnv(__func__); if (!sCallbackEnv.valid() || !mCallbacksObj) return; if (!sCallbackEnv.valid() || !mCallbacksObj) return; ScopedLocalRef<jbyteArray> jb(sCallbackEnv.get(), NULL); ScopedLocalRef<jbyteArray> jb(sCallbackEnv.get(), NULL); if (status == 0) { // Success if (status == 0) { // Success jb.reset(sCallbackEnv->NewByteArray(p_data->value.len)); jb.reset(sCallbackEnv->NewByteArray(p_data.value.len)); sCallbackEnv->SetByteArrayRegion(jb.get(), 0, p_data->value.len, sCallbackEnv->SetByteArrayRegion(jb.get(), 0, p_data.value.len, (jbyte*)p_data->value.value); (jbyte*)p_data.value.value); } else { } else { uint8_t value = 0; uint8_t value = 0; jb.reset(sCallbackEnv->NewByteArray(1)); jb.reset(sCallbackEnv->NewByteArray(1)); Loading @@ -324,7 +324,7 @@ void btgattc_read_characteristic_cb(int conn_id, int status, } } sCallbackEnv->CallVoidMethod(mCallbacksObj, method_onReadCharacteristic, sCallbackEnv->CallVoidMethod(mCallbacksObj, method_onReadCharacteristic, conn_id, status, p_data->handle, jb.get()); conn_id, status, p_data.handle, jb.get()); } } void btgattc_write_characteristic_cb(int conn_id, int status, uint16_t handle, void btgattc_write_characteristic_cb(int conn_id, int status, uint16_t handle, Loading system/btif/src/btif_gatt_client.cc +16 −20 Original line number Original line Diff line number Diff line Loading @@ -430,19 +430,17 @@ static bt_status_t btif_gattc_get_gatt_db(int conn_id) { void read_char_cb(uint16_t conn_id, tGATT_STATUS status, uint16_t handle, void read_char_cb(uint16_t conn_id, tGATT_STATUS status, uint16_t handle, uint16_t len, uint8_t* value, void* data) { uint16_t len, uint8_t* value, void* data) { btgatt_read_params_t* params = new btgatt_read_params_t; btgatt_read_params_t params = { params->value_type = 0x00 /* GATTC_READ_VALUE_TYPE_VALUE */; .handle = handle, params->status = status; .value.len = len, params->handle = handle; .value_type = 0x00, /* GATTC_READ_VALUE_TYPE_VALUE */ params->value.len = len; .status = status, }; log::assert_that(len <= GATT_MAX_ATTR_LEN, log::assert_that(len <= GATT_MAX_ATTR_LEN, "assert failed: len <= GATT_MAX_ATTR_LEN"); "assert failed: len <= GATT_MAX_ATTR_LEN"); if (len > 0) memcpy(params->value.value, value, len); if (len > 0) memcpy(params.value.value, value, len); // clang-tidy analyzer complains about |params| is leaked. It doesn't know CLI_CBACK_IN_JNI(read_characteristic_cb, conn_id, status, params); // that |param| will be freed by the callback function. CLI_CBACK_IN_JNI(read_characteristic_cb, conn_id, status, /* NOLINT */ base::Owned(params)); } } static bt_status_t btif_gattc_read_char(int conn_id, uint16_t handle, static bt_status_t btif_gattc_read_char(int conn_id, uint16_t handle, Loading @@ -455,19 +453,17 @@ static bt_status_t btif_gattc_read_char(int conn_id, uint16_t handle, void read_using_char_uuid_cb(uint16_t conn_id, tGATT_STATUS status, void read_using_char_uuid_cb(uint16_t conn_id, tGATT_STATUS status, uint16_t handle, uint16_t len, uint8_t* value, uint16_t handle, uint16_t len, uint8_t* value, void* data) { void* data) { btgatt_read_params_t* params = new btgatt_read_params_t; btgatt_read_params_t params = { params->value_type = 0x00 /* GATTC_READ_VALUE_TYPE_VALUE */; .handle = handle, params->status = status; .value.len = len, params->handle = handle; .value_type = 0x00, /* GATTC_READ_VALUE_TYPE_VALUE */ params->value.len = len; .status = status, }; log::assert_that(len <= GATT_MAX_ATTR_LEN, log::assert_that(len <= GATT_MAX_ATTR_LEN, "assert failed: len <= GATT_MAX_ATTR_LEN"); "assert failed: len <= GATT_MAX_ATTR_LEN"); if (len > 0) memcpy(params->value.value, value, len); if (len > 0) memcpy(params.value.value, value, len); // clang-tidy analyzer complains about |params| is leaked. It doesn't know CLI_CBACK_IN_JNI(read_characteristic_cb, conn_id, status, params); // that |param| will be freed by the callback function. CLI_CBACK_IN_JNI(read_characteristic_cb, conn_id, status, /* NOLINT */ base::Owned(params)); } } static bt_status_t btif_gattc_read_using_char_uuid(int conn_id, static bt_status_t btif_gattc_read_using_char_uuid(int conn_id, Loading system/gd/rust/topshim/src/profiles/gatt.rs +1 −1 Original line number Original line Diff line number Diff line Loading @@ -677,7 +677,7 @@ cb_variant!( cb_variant!( cb_variant!( GattClientCb, GattClientCb, gc_read_characteristic_cb -> GattClientCallbacks::ReadCharacteristic, gc_read_characteristic_cb -> GattClientCallbacks::ReadCharacteristic, i32, i32 -> GattStatus, *mut BtGattReadParams, { i32, i32 -> GattStatus, *const BtGattReadParams, { let _2 = unsafe { *_2.clone() }; let _2 = unsafe { *_2.clone() }; } } ); ); Loading system/include/hardware/bt_gatt_client.h +2 −2 Original line number Original line Diff line number Diff line Loading @@ -119,8 +119,8 @@ typedef void (*notify_callback)(int conn_id, const btgatt_notify_params_t& p_data); const btgatt_notify_params_t& p_data); /** Reports result of a GATT read operation */ /** Reports result of a GATT read operation */ typedef void (*read_characteristic_callback)(int conn_id, int status, typedef void (*read_characteristic_callback)( btgatt_read_params_t* p_data); int conn_id, int status, const btgatt_read_params_t& p_data); /** GATT write characteristic operation callback */ /** GATT write characteristic operation callback */ typedef void (*write_characteristic_callback)(int conn_id, int status, typedef void (*write_characteristic_callback)(int conn_id, int status, Loading Loading
android/app/jni/com_android_bluetooth_gatt.cpp +5 −5 Original line number Original line Diff line number Diff line Loading @@ -307,16 +307,16 @@ void btgattc_notify_cb(int conn_id, const btgatt_notify_params_t& p_data) { } } void btgattc_read_characteristic_cb(int conn_id, int status, void btgattc_read_characteristic_cb(int conn_id, int status, btgatt_read_params_t* p_data) { const btgatt_read_params_t& p_data) { std::shared_lock<std::shared_mutex> lock(callbacks_mutex); std::shared_lock<std::shared_mutex> lock(callbacks_mutex); CallbackEnv sCallbackEnv(__func__); CallbackEnv sCallbackEnv(__func__); if (!sCallbackEnv.valid() || !mCallbacksObj) return; if (!sCallbackEnv.valid() || !mCallbacksObj) return; ScopedLocalRef<jbyteArray> jb(sCallbackEnv.get(), NULL); ScopedLocalRef<jbyteArray> jb(sCallbackEnv.get(), NULL); if (status == 0) { // Success if (status == 0) { // Success jb.reset(sCallbackEnv->NewByteArray(p_data->value.len)); jb.reset(sCallbackEnv->NewByteArray(p_data.value.len)); sCallbackEnv->SetByteArrayRegion(jb.get(), 0, p_data->value.len, sCallbackEnv->SetByteArrayRegion(jb.get(), 0, p_data.value.len, (jbyte*)p_data->value.value); (jbyte*)p_data.value.value); } else { } else { uint8_t value = 0; uint8_t value = 0; jb.reset(sCallbackEnv->NewByteArray(1)); jb.reset(sCallbackEnv->NewByteArray(1)); Loading @@ -324,7 +324,7 @@ void btgattc_read_characteristic_cb(int conn_id, int status, } } sCallbackEnv->CallVoidMethod(mCallbacksObj, method_onReadCharacteristic, sCallbackEnv->CallVoidMethod(mCallbacksObj, method_onReadCharacteristic, conn_id, status, p_data->handle, jb.get()); conn_id, status, p_data.handle, jb.get()); } } void btgattc_write_characteristic_cb(int conn_id, int status, uint16_t handle, void btgattc_write_characteristic_cb(int conn_id, int status, uint16_t handle, Loading
system/btif/src/btif_gatt_client.cc +16 −20 Original line number Original line Diff line number Diff line Loading @@ -430,19 +430,17 @@ static bt_status_t btif_gattc_get_gatt_db(int conn_id) { void read_char_cb(uint16_t conn_id, tGATT_STATUS status, uint16_t handle, void read_char_cb(uint16_t conn_id, tGATT_STATUS status, uint16_t handle, uint16_t len, uint8_t* value, void* data) { uint16_t len, uint8_t* value, void* data) { btgatt_read_params_t* params = new btgatt_read_params_t; btgatt_read_params_t params = { params->value_type = 0x00 /* GATTC_READ_VALUE_TYPE_VALUE */; .handle = handle, params->status = status; .value.len = len, params->handle = handle; .value_type = 0x00, /* GATTC_READ_VALUE_TYPE_VALUE */ params->value.len = len; .status = status, }; log::assert_that(len <= GATT_MAX_ATTR_LEN, log::assert_that(len <= GATT_MAX_ATTR_LEN, "assert failed: len <= GATT_MAX_ATTR_LEN"); "assert failed: len <= GATT_MAX_ATTR_LEN"); if (len > 0) memcpy(params->value.value, value, len); if (len > 0) memcpy(params.value.value, value, len); // clang-tidy analyzer complains about |params| is leaked. It doesn't know CLI_CBACK_IN_JNI(read_characteristic_cb, conn_id, status, params); // that |param| will be freed by the callback function. CLI_CBACK_IN_JNI(read_characteristic_cb, conn_id, status, /* NOLINT */ base::Owned(params)); } } static bt_status_t btif_gattc_read_char(int conn_id, uint16_t handle, static bt_status_t btif_gattc_read_char(int conn_id, uint16_t handle, Loading @@ -455,19 +453,17 @@ static bt_status_t btif_gattc_read_char(int conn_id, uint16_t handle, void read_using_char_uuid_cb(uint16_t conn_id, tGATT_STATUS status, void read_using_char_uuid_cb(uint16_t conn_id, tGATT_STATUS status, uint16_t handle, uint16_t len, uint8_t* value, uint16_t handle, uint16_t len, uint8_t* value, void* data) { void* data) { btgatt_read_params_t* params = new btgatt_read_params_t; btgatt_read_params_t params = { params->value_type = 0x00 /* GATTC_READ_VALUE_TYPE_VALUE */; .handle = handle, params->status = status; .value.len = len, params->handle = handle; .value_type = 0x00, /* GATTC_READ_VALUE_TYPE_VALUE */ params->value.len = len; .status = status, }; log::assert_that(len <= GATT_MAX_ATTR_LEN, log::assert_that(len <= GATT_MAX_ATTR_LEN, "assert failed: len <= GATT_MAX_ATTR_LEN"); "assert failed: len <= GATT_MAX_ATTR_LEN"); if (len > 0) memcpy(params->value.value, value, len); if (len > 0) memcpy(params.value.value, value, len); // clang-tidy analyzer complains about |params| is leaked. It doesn't know CLI_CBACK_IN_JNI(read_characteristic_cb, conn_id, status, params); // that |param| will be freed by the callback function. CLI_CBACK_IN_JNI(read_characteristic_cb, conn_id, status, /* NOLINT */ base::Owned(params)); } } static bt_status_t btif_gattc_read_using_char_uuid(int conn_id, static bt_status_t btif_gattc_read_using_char_uuid(int conn_id, Loading
system/gd/rust/topshim/src/profiles/gatt.rs +1 −1 Original line number Original line Diff line number Diff line Loading @@ -677,7 +677,7 @@ cb_variant!( cb_variant!( cb_variant!( GattClientCb, GattClientCb, gc_read_characteristic_cb -> GattClientCallbacks::ReadCharacteristic, gc_read_characteristic_cb -> GattClientCallbacks::ReadCharacteristic, i32, i32 -> GattStatus, *mut BtGattReadParams, { i32, i32 -> GattStatus, *const BtGattReadParams, { let _2 = unsafe { *_2.clone() }; let _2 = unsafe { *_2.clone() }; } } ); ); Loading
system/include/hardware/bt_gatt_client.h +2 −2 Original line number Original line Diff line number Diff line Loading @@ -119,8 +119,8 @@ typedef void (*notify_callback)(int conn_id, const btgatt_notify_params_t& p_data); const btgatt_notify_params_t& p_data); /** Reports result of a GATT read operation */ /** Reports result of a GATT read operation */ typedef void (*read_characteristic_callback)(int conn_id, int status, typedef void (*read_characteristic_callback)( btgatt_read_params_t* p_data); int conn_id, int status, const btgatt_read_params_t& p_data); /** GATT write characteristic operation callback */ /** GATT write characteristic operation callback */ typedef void (*write_characteristic_callback)(int conn_id, int status, typedef void (*write_characteristic_callback)(int conn_id, int status, Loading