Use references in GATT client/server API (3/3)

This allows to get rid of some unnecessary null checks, and guarantee
proper values are passed.

Test: compilation test
Change-Id: I1d6ab95ef52067fa1461c432b9c162da0a25c6ac
diff --git a/jni/com_android_bluetooth_gatt.cpp b/jni/com_android_bluetooth_gatt.cpp
index 1f7b8e6..96156dd 100644
--- a/jni/com_android_bluetooth_gatt.cpp
+++ b/jni/com_android_bluetooth_gatt.cpp
@@ -40,7 +40,7 @@
 
 #define BD_ADDR_LEN 6
 
-#define UUID_PARAMS(uuid_ptr) uuid_lsb(uuid_ptr), uuid_msb(uuid_ptr)
+#define UUID_PARAMS(uuid) uuid_lsb(uuid), uuid_msb(uuid)
 
 static void set_uuid(uint8_t* uuid, jlong uuid_msb, jlong uuid_lsb) {
   for (int i = 0; i != 8; ++i) {
@@ -49,23 +49,23 @@
   }
 }
 
-static uint64_t uuid_lsb(const bt_uuid_t* uuid) {
+static uint64_t uuid_lsb(const bt_uuid_t& uuid) {
   uint64_t lsb = 0;
 
   for (int i = 7; i >= 0; i--) {
     lsb <<= 8;
-    lsb |= uuid->uu[i];
+    lsb |= uuid.uu[i];
   }
 
   return lsb;
 }
 
-static uint64_t uuid_msb(const bt_uuid_t* uuid) {
+static uint64_t uuid_msb(const bt_uuid_t& uuid) {
   uint64_t msb = 0;
 
   for (int i = 15; i >= 8; i--) {
     msb <<= 8;
-    msb |= uuid->uu[i];
+    msb |= uuid.uu[i];
   }
 
   return msb;
@@ -101,15 +101,17 @@
   }
 }
 
-static void jstr2bdaddr(JNIEnv* env, bt_bdaddr_t* bda, jstring address) {
+static bt_bdaddr_t str2addr(JNIEnv* env, jstring address) {
+  bt_bdaddr_t bda;
   const char* c_bda = env->GetStringUTFChars(address, NULL);
-  if (c_bda != NULL && bda != NULL && strlen(c_bda) == 17) {
-    bd_addr_str_to_addr(c_bda, bda->address);
-    env->ReleaseStringUTFChars(address, c_bda);
-  }
+  if (!c_bda || strlen(c_bda) != 17) return bda;
+
+  bd_addr_str_to_addr(c_bda, bda.address);
+  env->ReleaseStringUTFChars(address, c_bda);
+  return bda;
 }
 
-static jstring bdaddr2newjstr(JNIEnv* env, bt_bdaddr_t* bda) {
+static jstring bdaddr2newjstr(JNIEnv* env, const bt_bdaddr_t* bda) {
   char c_address[32];
   snprintf(c_address, sizeof(c_address), "%02X:%02X:%02X:%02X:%02X:%02X",
            bda->address[0], bda->address[1], bda->address[2], bda->address[3],
@@ -219,7 +221,8 @@
  * BTA client callbacks
  */
 
-void btgattc_register_app_cb(int status, int clientIf, bt_uuid_t* app_uuid) {
+void btgattc_register_app_cb(int status, int clientIf,
+                             const bt_uuid_t& app_uuid) {
   CallbackEnv sCallbackEnv(__func__);
   if (!sCallbackEnv.valid()) return;
   sCallbackEnv->CallVoidMethod(mCallbacksObj, method_onClientRegistered, status,
@@ -248,22 +251,24 @@
                                periodic_adv_int, jb.get());
 }
 
-void btgattc_open_cb(int conn_id, int status, int clientIf, bt_bdaddr_t* bda) {
+void btgattc_open_cb(int conn_id, int status, int clientIf,
+                     const bt_bdaddr_t& bda) {
   CallbackEnv sCallbackEnv(__func__);
   if (!sCallbackEnv.valid()) return;
 
   ScopedLocalRef<jstring> address(sCallbackEnv.get(),
-                                  bdaddr2newjstr(sCallbackEnv.get(), bda));
+                                  bdaddr2newjstr(sCallbackEnv.get(), &bda));
   sCallbackEnv->CallVoidMethod(mCallbacksObj, method_onConnected, clientIf,
                                conn_id, status, address.get());
 }
 
-void btgattc_close_cb(int conn_id, int status, int clientIf, bt_bdaddr_t* bda) {
+void btgattc_close_cb(int conn_id, int status, int clientIf,
+                      const bt_bdaddr_t& bda) {
   CallbackEnv sCallbackEnv(__func__);
   if (!sCallbackEnv.valid()) return;
 
   ScopedLocalRef<jstring> address(sCallbackEnv.get(),
-                                  bdaddr2newjstr(sCallbackEnv.get(), bda));
+                                  bdaddr2newjstr(sCallbackEnv.get(), &bda));
   sCallbackEnv->CallVoidMethod(mCallbacksObj, method_onDisconnected, clientIf,
                                conn_id, status, address.get());
 }
@@ -285,19 +290,19 @@
                                conn_id, status, registered, handle);
 }
 
-void btgattc_notify_cb(int conn_id, btgatt_notify_params_t* p_data) {
+void btgattc_notify_cb(int conn_id, const btgatt_notify_params_t& p_data) {
   CallbackEnv sCallbackEnv(__func__);
   if (!sCallbackEnv.valid()) return;
 
   ScopedLocalRef<jstring> address(
-      sCallbackEnv.get(), bdaddr2newjstr(sCallbackEnv.get(), &p_data->bda));
+      sCallbackEnv.get(), bdaddr2newjstr(sCallbackEnv.get(), &p_data.bda));
   ScopedLocalRef<jbyteArray> jb(sCallbackEnv.get(),
-                                sCallbackEnv->NewByteArray(p_data->len));
-  sCallbackEnv->SetByteArrayRegion(jb.get(), 0, p_data->len,
-                                   (jbyte*)p_data->value);
+                                sCallbackEnv->NewByteArray(p_data.len));
+  sCallbackEnv->SetByteArrayRegion(jb.get(), 0, p_data.len,
+                                   (jbyte*)p_data.value);
 
   sCallbackEnv->CallVoidMethod(mCallbacksObj, method_onNotify, conn_id,
-                               address.get(), p_data->handle, p_data->is_notify,
+                               address.get(), p_data.handle, p_data.is_notify,
                                jb.get());
 }
 
@@ -338,21 +343,21 @@
 }
 
 void btgattc_read_descriptor_cb(int conn_id, int status,
-                                btgatt_read_params_t* p_data) {
+                                const btgatt_read_params_t& p_data) {
   CallbackEnv sCallbackEnv(__func__);
   if (!sCallbackEnv.valid()) return;
 
   ScopedLocalRef<jbyteArray> jb(sCallbackEnv.get(), NULL);
-  if (p_data->value.len != 0) {
-    jb.reset(sCallbackEnv->NewByteArray(p_data->value.len));
-    sCallbackEnv->SetByteArrayRegion(jb.get(), 0, p_data->value.len,
-                                     (jbyte*)p_data->value.value);
+  if (p_data.value.len != 0) {
+    jb.reset(sCallbackEnv->NewByteArray(p_data.value.len));
+    sCallbackEnv->SetByteArrayRegion(jb.get(), 0, p_data.value.len,
+                                     (jbyte*)p_data.value.value);
   } else {
     jb.reset(sCallbackEnv->NewByteArray(1));
   }
 
   sCallbackEnv->CallVoidMethod(mCallbacksObj, method_onReadDescriptor, conn_id,
-                               status, p_data->handle, jb.get());
+                               status, p_data.handle, jb.get());
 }
 
 void btgattc_write_descriptor_cb(int conn_id, int status, uint16_t handle) {
@@ -363,13 +368,13 @@
                                status, handle);
 }
 
-void btgattc_remote_rssi_cb(int client_if, bt_bdaddr_t* bda, int rssi,
+void btgattc_remote_rssi_cb(int client_if, const bt_bdaddr_t& bda, int rssi,
                             int status) {
   CallbackEnv sCallbackEnv(__func__);
   if (!sCallbackEnv.valid()) return;
 
   ScopedLocalRef<jstring> address(sCallbackEnv.get(),
-                                  bdaddr2newjstr(sCallbackEnv.get(), bda));
+                                  bdaddr2newjstr(sCallbackEnv.get(), &bda));
 
   sCallbackEnv->CallVoidMethod(mCallbacksObj, method_onReadRemoteRssi,
                                client_if, address.get(), rssi, status);
@@ -488,7 +493,7 @@
 
     ScopedLocalRef<jobject> uuid(
         env, env->NewObject(uuidClazz.get(), uuidConstructor,
-                            uuid_msb(&curr.uuid), uuid_lsb(&curr.uuid)));
+                            uuid_msb(curr.uuid), uuid_lsb(curr.uuid)));
     fid = env->GetFieldID(gattDbElementClazz.get(), "uuid", "Ljava/util/UUID;");
     env->SetObjectField(element.get(), fid, uuid.get());
 
@@ -511,7 +516,8 @@
   }
 }
 
-void btgattc_get_gatt_db_cb(int conn_id, btgatt_db_element_t* db, int count) {
+void btgattc_get_gatt_db_cb(int conn_id, const btgatt_db_element_t* db,
+                            int count) {
   CallbackEnv sCallbackEnv(__func__);
   if (!sCallbackEnv.valid()) return;
 
@@ -579,7 +585,7 @@
  * BTA server callbacks
  */
 
-void btgatts_register_app_cb(int status, int server_if, bt_uuid_t* uuid) {
+void btgatts_register_app_cb(int status, int server_if, const bt_uuid_t& uuid) {
   CallbackEnv sCallbackEnv(__func__);
   if (!sCallbackEnv.valid()) return;
   sCallbackEnv->CallVoidMethod(mCallbacksObj, method_onServerRegistered, status,
@@ -587,12 +593,12 @@
 }
 
 void btgatts_connection_cb(int conn_id, int server_if, int connected,
-                           bt_bdaddr_t* bda) {
+                           const bt_bdaddr_t& bda) {
   CallbackEnv sCallbackEnv(__func__);
   if (!sCallbackEnv.valid()) return;
 
   ScopedLocalRef<jstring> address(sCallbackEnv.get(),
-                                  bdaddr2newjstr(sCallbackEnv.get(), bda));
+                                  bdaddr2newjstr(sCallbackEnv.get(), &bda));
   sCallbackEnv->CallVoidMethod(mCallbacksObj, method_onClientConnected,
                                address.get(), connected, conn_id, server_if);
 }
@@ -631,41 +637,42 @@
 }
 
 void btgatts_request_read_characteristic_cb(int conn_id, int trans_id,
-                                            bt_bdaddr_t* bda, int attr_handle,
-                                            int offset, bool is_long) {
+                                            const bt_bdaddr_t& bda,
+                                            int attr_handle, int offset,
+                                            bool is_long) {
   CallbackEnv sCallbackEnv(__func__);
   if (!sCallbackEnv.valid()) return;
 
   ScopedLocalRef<jstring> address(sCallbackEnv.get(),
-                                  bdaddr2newjstr(sCallbackEnv.get(), bda));
+                                  bdaddr2newjstr(sCallbackEnv.get(), &bda));
   sCallbackEnv->CallVoidMethod(mCallbacksObj, method_onServerReadCharacteristic,
                                address.get(), conn_id, trans_id, attr_handle,
                                offset, is_long);
 }
 
 void btgatts_request_read_descriptor_cb(int conn_id, int trans_id,
-                                        bt_bdaddr_t* bda, int attr_handle,
+                                        const bt_bdaddr_t& bda, int attr_handle,
                                         int offset, bool is_long) {
   CallbackEnv sCallbackEnv(__func__);
   if (!sCallbackEnv.valid()) return;
 
   ScopedLocalRef<jstring> address(sCallbackEnv.get(),
-                                  bdaddr2newjstr(sCallbackEnv.get(), bda));
+                                  bdaddr2newjstr(sCallbackEnv.get(), &bda));
   sCallbackEnv->CallVoidMethod(mCallbacksObj, method_onServerReadDescriptor,
                                address.get(), conn_id, trans_id, attr_handle,
                                offset, is_long);
 }
 
 void btgatts_request_write_characteristic_cb(int conn_id, int trans_id,
-                                             bt_bdaddr_t* bda, int attr_handle,
-                                             int offset, bool need_rsp,
-                                             bool is_prep,
+                                             const bt_bdaddr_t& bda,
+                                             int attr_handle, int offset,
+                                             bool need_rsp, bool is_prep,
                                              std::vector<uint8_t> value) {
   CallbackEnv sCallbackEnv(__func__);
   if (!sCallbackEnv.valid()) return;
 
   ScopedLocalRef<jstring> address(sCallbackEnv.get(),
-                                  bdaddr2newjstr(sCallbackEnv.get(), bda));
+                                  bdaddr2newjstr(sCallbackEnv.get(), &bda));
   ScopedLocalRef<jbyteArray> val(sCallbackEnv.get(),
                                  sCallbackEnv->NewByteArray(value.size()));
   if (val.get())
@@ -678,15 +685,15 @@
 }
 
 void btgatts_request_write_descriptor_cb(int conn_id, int trans_id,
-                                         bt_bdaddr_t* bda, int attr_handle,
-                                         int offset, bool need_rsp,
-                                         bool is_prep,
+                                         const bt_bdaddr_t& bda,
+                                         int attr_handle, int offset,
+                                         bool need_rsp, bool is_prep,
                                          std::vector<uint8_t> value) {
   CallbackEnv sCallbackEnv(__func__);
   if (!sCallbackEnv.valid()) return;
 
   ScopedLocalRef<jstring> address(sCallbackEnv.get(),
-                                  bdaddr2newjstr(sCallbackEnv.get(), bda));
+                                  bdaddr2newjstr(sCallbackEnv.get(), &bda));
   ScopedLocalRef<jbyteArray> val(sCallbackEnv.get(),
                                  sCallbackEnv->NewByteArray(value.size()));
   if (val.get())
@@ -698,13 +705,13 @@
                                val.get());
 }
 
-void btgatts_request_exec_write_cb(int conn_id, int trans_id, bt_bdaddr_t* bda,
-                                   int exec_write) {
+void btgatts_request_exec_write_cb(int conn_id, int trans_id,
+                                   const bt_bdaddr_t& bda, int exec_write) {
   CallbackEnv sCallbackEnv(__func__);
   if (!sCallbackEnv.valid()) return;
 
   ScopedLocalRef<jstring> address(sCallbackEnv.get(),
-                                  bdaddr2newjstr(sCallbackEnv.get(), bda));
+                                  bdaddr2newjstr(sCallbackEnv.get(), &bda));
   sCallbackEnv->CallVoidMethod(mCallbacksObj, method_onExecuteWrite,
                                address.get(), conn_id, trans_id, exec_write);
 }
@@ -955,9 +962,7 @@
 static int gattClientGetDeviceTypeNative(JNIEnv* env, jobject object,
                                          jstring address) {
   if (!sGattIf) return 0;
-  bt_bdaddr_t bda;
-  jstr2bdaddr(env, &bda, address);
-  return sGattIf->client->get_device_type(&bda);
+  return sGattIf->client->get_device_type(str2addr(env, address));
 }
 
 static void gattClientRegisterAppNative(JNIEnv* env, jobject object,
@@ -967,7 +972,7 @@
 
   if (!sGattIf) return;
   set_uuid(uuid.uu, app_uuid_msb, app_uuid_lsb);
-  sGattIf->client->register_client(&uuid);
+  sGattIf->client->register_client(uuid);
 }
 
 static void gattClientUnregisterAppNative(JNIEnv* env, jobject object,
@@ -981,7 +986,7 @@
   CallbackEnv sCallbackEnv(__func__);
   if (!sCallbackEnv.valid()) return;
   sCallbackEnv->CallVoidMethod(mCallbacksObj, method_onScannerRegistered,
-                               status, scannerId, UUID_PARAMS(&app_uuid));
+                               status, scannerId, UUID_PARAMS(app_uuid));
 }
 
 static void registerScannerNative(JNIEnv* env, jobject object,
@@ -1011,19 +1016,15 @@
                                     jint transport, jint initiating_phys) {
   if (!sGattIf) return;
 
-  bt_bdaddr_t bda;
-  jstr2bdaddr(env, &bda, address);
-  sGattIf->client->connect(clientif, &bda, isDirect, transport,
-                           initiating_phys);
+  sGattIf->client->connect(clientif, str2addr(env, address), isDirect,
+                           transport, initiating_phys);
 }
 
 static void gattClientDisconnectNative(JNIEnv* env, jobject object,
                                        jint clientIf, jstring address,
                                        jint conn_id) {
   if (!sGattIf) return;
-  bt_bdaddr_t bda;
-  jstr2bdaddr(env, &bda, address);
-  sGattIf->client->disconnect(clientIf, &bda, conn_id);
+  sGattIf->client->disconnect(clientIf, str2addr(env, address), conn_id);
 }
 
 static void gattClientSetPreferredPhyNative(JNIEnv* env, jobject object,
@@ -1031,9 +1032,8 @@
                                             jint tx_phy, jint rx_phy,
                                             jint phy_options) {
   if (!sGattIf) return;
-  bt_bdaddr_t bda;
-  jstr2bdaddr(env, &bda, address);
-  sGattIf->client->set_preferred_phy(bda, tx_phy, rx_phy, phy_options);
+  sGattIf->client->set_preferred_phy(str2addr(env, address), tx_phy, rx_phy,
+                                     phy_options);
 }
 
 static void readClientPhyCb(uint8_t clientIf, bt_bdaddr_t bda, uint8_t tx_phy,
@@ -1052,9 +1052,7 @@
                                     jstring address) {
   if (!sGattIf) return;
 
-  bt_bdaddr_t bda;
-  jstr2bdaddr(env, &bda, address);
-
+  bt_bdaddr_t bda = str2addr(env, address);
   sGattIf->client->read_phy(bda, base::Bind(&readClientPhyCb, clientIf, bda));
 }
 
@@ -1062,10 +1060,7 @@
                                     jstring address) {
   if (!sGattIf) return;
 
-  bt_bdaddr_t bda;
-  jstr2bdaddr(env, &bda, address);
-
-  sGattIf->client->refresh(clientIf, &bda);
+  sGattIf->client->refresh(clientIf, str2addr(env, address));
 }
 
 static void gattClientSearchServiceNative(JNIEnv* env, jobject object,
@@ -1087,7 +1082,7 @@
 
   bt_uuid_t uuid;
   set_uuid(uuid.uu, service_uuid_msb, service_uuid_lsb);
-  sGattIf->client->btif_gattc_discover_service_by_uuid(conn_id, &uuid);
+  sGattIf->client->btif_gattc_discover_service_by_uuid(conn_id, uuid);
 }
 
 static void gattClientGetGattDbNative(JNIEnv* env, jobject object,
@@ -1112,7 +1107,7 @@
 
   bt_uuid_t uuid;
   set_uuid(uuid.uu, uuid_msb, uuid_lsb);
-  sGattIf->client->read_using_characteristic_uuid(conn_id, &uuid, s_handle,
+  sGattIf->client->read_using_characteristic_uuid(conn_id, uuid, s_handle,
                                                   e_handle, authReq);
 }
 
@@ -1183,19 +1178,16 @@
   bd_addr_str_to_addr(c_address, bd_addr.address);
 
   if (enable)
-    sGattIf->client->register_for_notification(clientIf, &bd_addr, handle);
+    sGattIf->client->register_for_notification(clientIf, bd_addr, handle);
   else
-    sGattIf->client->deregister_for_notification(clientIf, &bd_addr, handle);
+    sGattIf->client->deregister_for_notification(clientIf, bd_addr, handle);
 }
 
 static void gattClientReadRemoteRssiNative(JNIEnv* env, jobject object,
                                            jint clientif, jstring address) {
   if (!sGattIf) return;
 
-  bt_bdaddr_t bda;
-  jstr2bdaddr(env, &bda, address);
-
-  sGattIf->client->read_remote_rssi(clientif, &bda);
+  sGattIf->client->read_remote_rssi(clientif, str2addr(env, address));
 }
 
 void set_scan_params_cmpl_cb(int client_if, uint8_t status) {
@@ -1309,8 +1301,7 @@
   switch (filt_type) {
     case 0:  // BTM_BLE_PF_ADDR_FILTER
     {
-      bt_bdaddr_t bda;
-      jstr2bdaddr(env, &bda, address);
+      bt_bdaddr_t bda = str2addr(env, address);
       sGattIf->scanner->ScanFilterAddRemove(
           action, filt_type, filt_index, 0, 0, NULL, NULL, &bda, addr_type, {},
           {}, base::Bind(&scan_filter_cfg_cb, client_if));
@@ -1451,10 +1442,8 @@
                                                 jint max_interval, jint latency,
                                                 jint timeout) {
   if (!sGattIf) return;
-  bt_bdaddr_t bda;
-  jstr2bdaddr(env, &bda, address);
-  sGattIf->client->conn_parameter_update(&bda, min_interval, max_interval,
-                                         latency, timeout);
+  sGattIf->client->conn_parameter_update(str2addr(env, address), min_interval,
+                                         max_interval, latency, timeout);
 }
 
 void batchscan_cfg_storage_cb(uint8_t client_if, uint8_t status) {
@@ -1514,7 +1503,7 @@
   bt_uuid_t uuid;
   if (!sGattIf) return;
   set_uuid(uuid.uu, app_uuid_msb, app_uuid_lsb);
-  sGattIf->server->register_server(&uuid);
+  sGattIf->server->register_server(uuid);
 }
 
 static void gattServerUnregisterAppNative(JNIEnv* env, jobject object,
@@ -1532,16 +1521,14 @@
   const char* c_address = env->GetStringUTFChars(address, NULL);
   bd_addr_str_to_addr(c_address, bd_addr.address);
 
-  sGattIf->server->connect(server_if, &bd_addr, is_direct, transport);
+  sGattIf->server->connect(server_if, bd_addr, is_direct, transport);
 }
 
 static void gattServerDisconnectNative(JNIEnv* env, jobject object,
                                        jint serverIf, jstring address,
                                        jint conn_id) {
   if (!sGattIf) return;
-  bt_bdaddr_t bda;
-  jstr2bdaddr(env, &bda, address);
-  sGattIf->server->disconnect(serverIf, &bda, conn_id);
+  sGattIf->server->disconnect(serverIf, str2addr(env, address), conn_id);
 }
 
 static void gattServerSetPreferredPhyNative(JNIEnv* env, jobject object,
@@ -1549,8 +1536,7 @@
                                             jint tx_phy, jint rx_phy,
                                             jint phy_options) {
   if (!sGattIf) return;
-  bt_bdaddr_t bda;
-  jstr2bdaddr(env, &bda, address);
+  bt_bdaddr_t bda = str2addr(env, address);
   sGattIf->server->set_preferred_phy(bda, tx_phy, rx_phy, phy_options);
 }
 
@@ -1570,8 +1556,7 @@
                                     jstring address) {
   if (!sGattIf) return;
 
-  bt_bdaddr_t bda;
-  jstr2bdaddr(env, &bda, address);
+  bt_bdaddr_t bda = str2addr(env, address);
   sGattIf->server->read_phy(bda, base::Bind(&readServerPhyCb, serverIf, bda));
 }
 
@@ -1707,7 +1692,7 @@
     env->ReleaseByteArrayElements(val, array, JNI_ABORT);
   }
 
-  sGattIf->server->send_response(conn_id, trans_id, status, &response);
+  sGattIf->server->send_response(conn_id, trans_id, status, response);
 }
 
 static void advertiseClassInitNative(JNIEnv* env, jclass clazz) {
@@ -2067,12 +2052,10 @@
                             jint reg_id) {
   if (!sGattIf) return;
 
-  bt_bdaddr_t tmp;
-  jstr2bdaddr(env, &tmp, address);
-
-  sGattIf->scanner->StartSync(
-      sid, tmp, skip, timeout, base::Bind(&onSyncStarted, reg_id),
-      base::Bind(&onSyncReport), base::Bind(&onSyncLost));
+  sGattIf->scanner->StartSync(sid, str2addr(env, address), skip, timeout,
+                              base::Bind(&onSyncStarted, reg_id),
+                              base::Bind(&onSyncReport),
+                              base::Bind(&onSyncLost));
 }
 
 static void stopSyncNative(int sync_handle) {
@@ -2086,8 +2069,7 @@
                            jint p1, jint p2, jint p3, jint p4, jint p5) {
   if (!sGattIf) return;
 
-  bt_bdaddr_t bt_bda1;
-  jstr2bdaddr(env, &bt_bda1, bda1);
+  bt_bdaddr_t bt_bda1 = str2addr(env, bda1);
 
   bt_uuid_t uuid1;
   set_uuid(uuid1.uu, uuid1_msb, uuid1_lsb);
@@ -2100,7 +2082,7 @@
   params.u3 = p3;
   params.u4 = p4;
   params.u5 = p5;
-  sGattIf->client->test_command(command, &params);
+  sGattIf->client->test_command(command, params);
 }
 
 /**