diff --git a/dom/bluetooth2/bluedroid/BluetoothDaemonHelpers.cpp b/dom/bluetooth2/bluedroid/BluetoothDaemonHelpers.cpp index 35ab4f24868d..daef6083fa01 100644 --- a/dom/bluetooth2/bluedroid/BluetoothDaemonHelpers.cpp +++ b/dom/bluetooth2/bluedroid/BluetoothDaemonHelpers.cpp @@ -342,6 +342,18 @@ Convert(uint8_t aIn, BluetoothHandsfreeVolumeType& aOut) return NS_OK; } +nsresult +Convert(int aIn, int32_t& aOut) +{ + if (NS_WARN_IF(aIn < std::numeric_limits::min()) || + NS_WARN_IF(aIn > std::numeric_limits::max())) { + aOut = 0; // silences compiler warning + return NS_ERROR_ILLEGAL_VALUE; + } + aOut = static_cast(aIn); + return NS_OK; +} + nsresult Convert(int32_t aIn, BluetoothTypeOfDevice& aOut) { diff --git a/dom/bluetooth2/bluedroid/BluetoothDaemonHelpers.h b/dom/bluetooth2/bluedroid/BluetoothDaemonHelpers.h index 23e14679f160..6e1a0e548952 100644 --- a/dom/bluetooth2/bluedroid/BluetoothDaemonHelpers.h +++ b/dom/bluetooth2/bluedroid/BluetoothDaemonHelpers.h @@ -128,6 +128,9 @@ Convert(int aIn, uint8_t& aOut); nsresult Convert(int aIn, int16_t& aOut); +nsresult +Convert(int aIn, int32_t& aOut); + nsresult Convert(uint8_t aIn, bool& aOut); diff --git a/dom/bluetooth2/bluedroid/BluetoothDaemonSocketInterface.cpp b/dom/bluetooth2/bluedroid/BluetoothDaemonSocketInterface.cpp index 8a1983bb9286..fc887236aef8 100644 --- a/dom/bluetooth2/bluedroid/BluetoothDaemonSocketInterface.cpp +++ b/dom/bluetooth2/bluedroid/BluetoothDaemonSocketInterface.cpp @@ -35,7 +35,7 @@ BluetoothDaemonSocketModule::ListenCmd(BluetoothSocketType aType, aType, PackConversion(aServiceName), PackArray(aServiceUuid, 16), - PackConversion(aChannel), + PackConversion(aChannel), SocketFlags(aEncrypt, aAuth), *pdu); if (NS_FAILED(rv)) { return rv; @@ -65,7 +65,7 @@ BluetoothDaemonSocketModule::ConnectCmd(const nsAString& aBdAddr, PackConversion(aBdAddr), aType, PackArray(aUuid, 16), - PackConversion(aChannel), + PackConversion(aChannel), SocketFlags(aEncrypt, aAuth), *pdu); if (NS_FAILED(rv)) { return rv;