Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 52ce81f5 authored by David Duarte's avatar David Duarte Committed by Gerrit Code Review
Browse files

Merge "Remove usage of base::Owned in calls of read_characteristic_cb" into main

parents 07fd1004 d0a61a46
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -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));
@@ -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,
+16 −20
Original line number Diff line number Diff line
@@ -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,
@@ -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,
+1 −1
Original line number Diff line number Diff line
@@ -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() };
    }
);
+2 −2
Original line number Diff line number Diff line
@@ -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,