Loading android/app/jni/com_android_bluetooth_gatt.cpp +5 −5 Original line number 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, btgatt_read_params_t* p_data) { const btgatt_read_params_t& p_data) { std::shared_lock<std::shared_mutex> lock(callbacks_mutex); CallbackEnv sCallbackEnv(__func__); if (!sCallbackEnv.valid() || !mCallbacksObj) return; ScopedLocalRef<jbyteArray> jb(sCallbackEnv.get(), NULL); if (status == 0) { // Success jb.reset(sCallbackEnv->NewByteArray(p_data->value.len)); sCallbackEnv->SetByteArrayRegion(jb.get(), 0, p_data->value.len, (jbyte*)p_data->value.value); jb.reset(sCallbackEnv->NewByteArray(p_data.value.len)); sCallbackEnv->SetByteArrayRegion(jb.get(), 0, p_data.value.len, (jbyte*)p_data.value.value); } else { uint8_t value = 0; 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, 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, Loading system/btif/src/btif_gatt_client.cc +16 −20 Original line number 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, uint16_t len, uint8_t* value, void* data) { btgatt_read_params_t* params = new btgatt_read_params_t; params->value_type = 0x00 /* GATTC_READ_VALUE_TYPE_VALUE */; params->status = status; params->handle = handle; params->value.len = len; btgatt_read_params_t params = { .handle = handle, .value.len = len, .value_type = 0x00, /* GATTC_READ_VALUE_TYPE_VALUE */ .status = status, }; log::assert_that(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 // that |param| will be freed by the callback function. CLI_CBACK_IN_JNI(read_characteristic_cb, conn_id, status, /* NOLINT */ base::Owned(params)); CLI_CBACK_IN_JNI(read_characteristic_cb, conn_id, status, params); } 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, uint16_t handle, uint16_t len, uint8_t* value, void* data) { btgatt_read_params_t* params = new btgatt_read_params_t; params->value_type = 0x00 /* GATTC_READ_VALUE_TYPE_VALUE */; params->status = status; params->handle = handle; params->value.len = len; btgatt_read_params_t params = { .handle = handle, .value.len = len, .value_type = 0x00, /* GATTC_READ_VALUE_TYPE_VALUE */ .status = status, }; log::assert_that(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 // that |param| will be freed by the callback function. CLI_CBACK_IN_JNI(read_characteristic_cb, conn_id, status, /* NOLINT */ base::Owned(params)); CLI_CBACK_IN_JNI(read_characteristic_cb, conn_id, status, params); } 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 Diff line number Diff line Loading @@ -677,7 +677,7 @@ cb_variant!( cb_variant!( GattClientCb, gc_read_characteristic_cb -> GattClientCallbacks::ReadCharacteristic, i32, i32 -> GattStatus, *mut BtGattReadParams, { i32, i32 -> GattStatus, *const BtGattReadParams, { let _2 = unsafe { *_2.clone() }; } ); Loading system/include/hardware/bt_gatt_client.h +2 −2 Original line number Diff line number Diff line Loading @@ -119,8 +119,8 @@ typedef void (*notify_callback)(int conn_id, const btgatt_notify_params_t& p_data); /** Reports result of a GATT read operation */ typedef void (*read_characteristic_callback)(int conn_id, int status, btgatt_read_params_t* p_data); typedef void (*read_characteristic_callback)( int conn_id, int status, const btgatt_read_params_t& p_data); /** GATT write characteristic operation callback */ 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 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, btgatt_read_params_t* p_data) { const btgatt_read_params_t& p_data) { std::shared_lock<std::shared_mutex> lock(callbacks_mutex); CallbackEnv sCallbackEnv(__func__); if (!sCallbackEnv.valid() || !mCallbacksObj) return; ScopedLocalRef<jbyteArray> jb(sCallbackEnv.get(), NULL); if (status == 0) { // Success jb.reset(sCallbackEnv->NewByteArray(p_data->value.len)); sCallbackEnv->SetByteArrayRegion(jb.get(), 0, p_data->value.len, (jbyte*)p_data->value.value); jb.reset(sCallbackEnv->NewByteArray(p_data.value.len)); sCallbackEnv->SetByteArrayRegion(jb.get(), 0, p_data.value.len, (jbyte*)p_data.value.value); } else { uint8_t value = 0; 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, 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, Loading
system/btif/src/btif_gatt_client.cc +16 −20 Original line number 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, uint16_t len, uint8_t* value, void* data) { btgatt_read_params_t* params = new btgatt_read_params_t; params->value_type = 0x00 /* GATTC_READ_VALUE_TYPE_VALUE */; params->status = status; params->handle = handle; params->value.len = len; btgatt_read_params_t params = { .handle = handle, .value.len = len, .value_type = 0x00, /* GATTC_READ_VALUE_TYPE_VALUE */ .status = status, }; log::assert_that(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 // that |param| will be freed by the callback function. CLI_CBACK_IN_JNI(read_characteristic_cb, conn_id, status, /* NOLINT */ base::Owned(params)); CLI_CBACK_IN_JNI(read_characteristic_cb, conn_id, status, params); } 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, uint16_t handle, uint16_t len, uint8_t* value, void* data) { btgatt_read_params_t* params = new btgatt_read_params_t; params->value_type = 0x00 /* GATTC_READ_VALUE_TYPE_VALUE */; params->status = status; params->handle = handle; params->value.len = len; btgatt_read_params_t params = { .handle = handle, .value.len = len, .value_type = 0x00, /* GATTC_READ_VALUE_TYPE_VALUE */ .status = status, }; log::assert_that(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 // that |param| will be freed by the callback function. CLI_CBACK_IN_JNI(read_characteristic_cb, conn_id, status, /* NOLINT */ base::Owned(params)); CLI_CBACK_IN_JNI(read_characteristic_cb, conn_id, status, params); } 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 Diff line number Diff line Loading @@ -677,7 +677,7 @@ cb_variant!( cb_variant!( GattClientCb, gc_read_characteristic_cb -> GattClientCallbacks::ReadCharacteristic, i32, i32 -> GattStatus, *mut BtGattReadParams, { i32, i32 -> GattStatus, *const BtGattReadParams, { let _2 = unsafe { *_2.clone() }; } ); Loading
system/include/hardware/bt_gatt_client.h +2 −2 Original line number Diff line number Diff line Loading @@ -119,8 +119,8 @@ typedef void (*notify_callback)(int conn_id, const btgatt_notify_params_t& p_data); /** Reports result of a GATT read operation */ typedef void (*read_characteristic_callback)(int conn_id, int status, btgatt_read_params_t* p_data); typedef void (*read_characteristic_callback)( int conn_id, int status, const btgatt_read_params_t& p_data); /** GATT write characteristic operation callback */ typedef void (*write_characteristic_callback)(int conn_id, int status, Loading