Bug 1236561 - part 1 - convert easy cases of nsAutoArrayPtr<T> to UniquePtr<T[]> in dom/bluetooth/; r=btian

This commit is contained in:
Nathan Froyd 2015-12-06 10:23:59 -05:00
parent 1d5110ac59
commit 3dfc3842bc
4 changed files with 32 additions and 28 deletions

View File

@ -15,6 +15,7 @@
#include "mozilla/dom/bluetooth/BluetoothTypes.h"
#include "mozilla/Services.h"
#include "mozilla/StaticPtr.h"
#include "mozilla/UniquePtr.h"
#include "MainThreadUtils.h"
#include "nsIObserverService.h"
#include "nsThreadUtils.h"
@ -848,8 +849,7 @@ BluetoothAvrcpManager::GetElementAttrNotification(
{
MOZ_ASSERT(NS_IsMainThread());
nsAutoArrayPtr<BluetoothAvrcpElementAttribute> attrs(
new BluetoothAvrcpElementAttribute[aNumAttrs]);
auto attrs = MakeUnique<BluetoothAvrcpElementAttribute[]>(aNumAttrs);
for (uint8_t i = 0; i < aNumAttrs; ++i) {
attrs[i].mId = aAttrs[i];
@ -859,7 +859,7 @@ BluetoothAvrcpManager::GetElementAttrNotification(
}
MOZ_ASSERT(sBtAvrcpInterface);
sBtAvrcpInterface->GetElementAttrRsp(aNumAttrs, attrs, nullptr);
sBtAvrcpInterface->GetElementAttrRsp(aNumAttrs, attrs.get(), nullptr);
}
void

View File

@ -633,8 +633,8 @@ BluetoothMapSmsManager::ReplyToGetWithHeaderBody(UniquePtr<uint8_t[]> aResponse,
// Read blob data from input stream
uint32_t numRead = 0;
nsAutoArrayPtr<char> buf(new char[remainingPacketSize]);
nsresult rv = mDataStream->Read(buf, remainingPacketSize, &numRead);
auto buf = MakeUnique<char[]>(remainingPacketSize);
nsresult rv = mDataStream->Read(buf.get(), remainingPacketSize, &numRead);
if (NS_FAILED(rv)) {
BT_LOGR("Failed to read from input stream. rv=0x%x",
static_cast<uint32_t>(rv));
@ -722,16 +722,16 @@ BluetoothMapSmsManager::ReplyToMessagesListing(Blob* aBlob, long aMasId,
uint8_t len = timestampStr.Length();
// Total length: [NewMessage:3] + [MseTime:var] + [MessageListingSize:4]
nsAutoArrayPtr<uint8_t> appParameters(new uint8_t[len + 9]);
auto appParameters = MakeUnique<uint8_t[]>(len + 9);
uint8_t newMessage = aNewMessage ? 1 : 0;
AppendAppParameter(appParameters,
AppendAppParameter(&appParameters[0],
3,
(uint8_t) Map::AppParametersTagId::NewMessage,
&newMessage,
sizeof(newMessage));
AppendAppParameter(appParameters + 3,
AppendAppParameter(&appParameters[3],
len + 2,
(uint8_t) Map::AppParametersTagId::MSETime,
str,
@ -740,7 +740,7 @@ BluetoothMapSmsManager::ReplyToMessagesListing(Blob* aBlob, long aMasId,
uint8_t msgListingSize[2];
BigEndian::writeUint16(&msgListingSize[0], aSize);
AppendAppParameter(appParameters + 5 + len,
AppendAppParameter(&appParameters[5 + len],
4,
(uint8_t) Map::AppParametersTagId::MessagesListingSize,
msgListingSize,
@ -748,7 +748,7 @@ BluetoothMapSmsManager::ReplyToMessagesListing(Blob* aBlob, long aMasId,
index += AppendHeaderAppParameters(&res[index],
mRemoteMaxPacketLength,
appParameters,
appParameters.get(),
len + 9);
if (mBodyRequired) {
@ -844,7 +844,7 @@ BluetoothMapSmsManager::ReplyToSendMessage(
* with 16 hexadecimal digits.
*/
int len = aHandleId.Length();
nsAutoArrayPtr<uint8_t> handleId(new uint8_t[(len + 1) * 2]);
auto handleId = MakeUnique<uint8_t[]>((len + 1) * 2);
for (int i = 0; i < len; i++) {
BigEndian::writeUint16(&handleId[i * 2], aHandleId[i]);
@ -854,7 +854,7 @@ BluetoothMapSmsManager::ReplyToSendMessage(
auto res = MakeUnique<uint8_t[]>(mRemoteMaxPacketLength);
int index = kObexRespHeaderSize;
index += AppendHeaderName(&res[index], mRemoteMaxPacketLength - index,
handleId, (len + 1) * 2);
handleId.get(), (len + 1) * 2);
SendMasObexData(Move(res), ObexResponseCode::Success, index);
return true;

View File

@ -19,6 +19,7 @@
#include "mozilla/RefPtr.h"
#include "mozilla/Services.h"
#include "mozilla/StaticPtr.h"
#include "mozilla/UniquePtr.h"
#include "nsAutoPtr.h"
#include "nsCExternalHandlerService.h"
#include "nsIObserver.h"
@ -105,8 +106,8 @@ BluetoothOppManager::Observe(nsISupports* aSubject,
class BluetoothOppManager::SendSocketDataTask final : public nsRunnable
{
public:
SendSocketDataTask(uint8_t* aStream, uint32_t aSize)
: mStream(aStream)
SendSocketDataTask(UniquePtr<uint8_t[]> aStream, uint32_t aSize)
: mStream(Move(aStream))
, mSize(aSize)
{
MOZ_ASSERT(!NS_IsMainThread());
@ -116,13 +117,13 @@ public:
{
MOZ_ASSERT(NS_IsMainThread());
sBluetoothOppManager->SendPutRequest(mStream, mSize);
sBluetoothOppManager->SendPutRequest(mStream.get(), mSize);
return NS_OK;
}
private:
nsAutoArrayPtr<uint8_t> mStream;
UniquePtr<uint8_t[]> mStream;
uint32_t mSize;
};
@ -142,10 +143,11 @@ public:
MOZ_ASSERT(!NS_IsMainThread());
uint32_t numRead;
nsAutoArrayPtr<char> buf(new char[mAvailablePacketSize]);
auto buf = MakeUnique<uint8_t[]>(mAvailablePacketSize);
// function inputstream->Read() only works on non-main thread
nsresult rv = mInputStream->Read(buf, mAvailablePacketSize, &numRead);
nsresult rv = mInputStream->Read((char*)buf.get(), mAvailablePacketSize,
&numRead);
if (NS_FAILED(rv)) {
// Needs error handling here
BT_WARNING("Failed to read from input stream");
@ -156,7 +158,7 @@ public:
sBluetoothOppManager->CheckPutFinal(numRead);
RefPtr<SendSocketDataTask> task =
new SendSocketDataTask((uint8_t*)buf.forget(), numRead);
new SendSocketDataTask(Move(buf), numRead);
if (NS_FAILED(NS_DispatchToMainThread(task))) {
BT_WARNING("Failed to dispatch to main thread!");
return NS_ERROR_FAILURE;
@ -1206,7 +1208,7 @@ BluetoothOppManager::SendPutHeaderRequest(const nsAString& aFileName,
}
int len = aFileName.Length();
nsAutoArrayPtr<uint8_t> fileName(new uint8_t[(len + 1) * 2]);
auto fileName = MakeUnique<uint8_t[]>((len + 1) * 2);
for (int i = 0; i < len; i++) {
BigEndian::writeUint16(&fileName[i * 2], aFileName[i]);
@ -1217,7 +1219,7 @@ BluetoothOppManager::SendPutHeaderRequest(const nsAString& aFileName,
auto req = MakeUnique<uint8_t[]>(mRemoteMaxPacketLength);
int index = 3;
index += AppendHeaderName(&req[index], mRemoteMaxPacketLength - index,
fileName, (len + 1) * 2);
fileName.get(), (len + 1) * 2);
index += AppendHeaderLength(&req[index], aFileSize);
// This is final put packet if file size equals to 0

View File

@ -19,6 +19,7 @@
#include "mozilla/RefPtr.h"
#include "mozilla/Services.h"
#include "mozilla/StaticPtr.h"
#include "mozilla/UniquePtr.h"
#include "nsAutoPtr.h"
#include "nsCExternalHandlerService.h"
#include "nsIObserver.h"
@ -100,8 +101,8 @@ BluetoothOppManager::Observe(nsISupports* aSubject,
class SendSocketDataTask : public nsRunnable
{
public:
SendSocketDataTask(uint8_t* aStream, uint32_t aSize)
: mStream(aStream)
SendSocketDataTask(UniquePtr<uint8_t[]> aStream, uint32_t aSize)
: mStream(Move(aStream))
, mSize(aSize)
{
MOZ_ASSERT(!NS_IsMainThread());
@ -111,13 +112,13 @@ public:
{
MOZ_ASSERT(NS_IsMainThread());
sBluetoothOppManager->SendPutRequest(mStream, mSize);
sBluetoothOppManager->SendPutRequest(mStream.get(), mSize);
return NS_OK;
}
private:
nsAutoArrayPtr<uint8_t> mStream;
UniquePtr<uint8_t[]> mStream;
uint32_t mSize;
};
@ -137,10 +138,11 @@ public:
MOZ_ASSERT(!NS_IsMainThread());
uint32_t numRead;
nsAutoArrayPtr<char> buf(new char[mAvailablePacketSize]);
auto buf = MakeUnique<uint8_t[]>(mAvailablePacketSize);
// function inputstream->Read() only works on non-main thread
nsresult rv = mInputStream->Read(buf, mAvailablePacketSize, &numRead);
nsresult rv = mInputStream->Read((char*)buf.get(), mAvailablePacketSize,
&numRead);
if (NS_FAILED(rv)) {
// Needs error handling here
BT_WARNING("Failed to read from input stream");
@ -151,7 +153,7 @@ public:
sBluetoothOppManager->CheckPutFinal(numRead);
RefPtr<SendSocketDataTask> task =
new SendSocketDataTask((uint8_t*)buf.forget(), numRead);
new SendSocketDataTask(Move(buf), numRead);
if (NS_FAILED(NS_DispatchToMainThread(task))) {
BT_WARNING("Failed to dispatch to main thread!");
return NS_ERROR_FAILURE;