Bug 1600283 - Replaced use of nsAutoPtr by UniquePtr. r=dom-workers-and-storage-reviewers,janv

Differential Revision: https://phabricator.services.mozilla.com/D55520

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Simon Giesecke 2019-12-19 09:57:49 +00:00
parent 75afa9713e
commit 77ea686b98
4 changed files with 17 additions and 12 deletions

View File

@ -1797,7 +1797,7 @@ mozilla::ipc::IPCResult BackgroundFactoryRequestChild::RecvBlocked(
BackgroundDatabaseChild::BackgroundDatabaseChild(
const DatabaseSpec& aSpec, BackgroundFactoryRequestChild* aOpenRequestActor)
: mSpec(new DatabaseSpec(aSpec)),
: mSpec(MakeUnique<DatabaseSpec>(aSpec)),
mOpenRequestActor(aOpenRequestActor),
mDatabase(nullptr) {
// Can't assert owning thread here because IPDL has not yet set our manager!
@ -1849,13 +1849,13 @@ void BackgroundDatabaseChild::EnsureDOMObject() {
static_cast<BackgroundFactoryChild*>(Manager())->GetDOMObject();
MOZ_ASSERT(factory);
mTemporaryStrongDatabase = IDBDatabase::Create(request, factory, this, mSpec);
mTemporaryStrongDatabase =
IDBDatabase::Create(request, factory, this, std::move(mSpec));
MOZ_ASSERT(mTemporaryStrongDatabase);
mTemporaryStrongDatabase->AssertIsOnOwningThread();
mDatabase = mTemporaryStrongDatabase;
mSpec.forget();
mOpenRequestActor->SetDatabaseActor(this);
}

View File

@ -23,6 +23,7 @@
#include "mozilla/dom/PBackgroundFileHandleChild.h"
#include "mozilla/dom/PBackgroundFileRequestChild.h"
#include "mozilla/dom/PBackgroundMutableFileChild.h"
#include "mozilla/UniquePtr.h"
#include "nsAutoPtr.h"
#include "nsCOMPtr.h"
#include "nsTArray.h"
@ -275,7 +276,7 @@ class BackgroundDatabaseChild final : public PBackgroundIDBDatabaseChild {
friend class BackgroundFactoryRequestChild;
friend IDBDatabase;
nsAutoPtr<DatabaseSpec> mSpec;
UniquePtr<DatabaseSpec> mSpec;
RefPtr<IDBDatabase> mTemporaryStrongDatabase;
BackgroundFactoryRequestChild* mOpenRequestActor;
IDBDatabase* mDatabase;
@ -291,7 +292,7 @@ class BackgroundDatabaseChild final : public PBackgroundIDBDatabaseChild {
const DatabaseSpec* Spec() const {
AssertIsOnOwningThread();
return mSpec;
return mSpec.get();
}
IDBDatabase* GetDOMObject() const {

View File

@ -147,10 +147,11 @@ class IDBDatabase::Observer final : public nsIObserver {
};
IDBDatabase::IDBDatabase(IDBOpenDBRequest* aRequest, IDBFactory* aFactory,
BackgroundDatabaseChild* aActor, DatabaseSpec* aSpec)
BackgroundDatabaseChild* aActor,
UniquePtr<DatabaseSpec> aSpec)
: DOMEventTargetHelper(aRequest),
mFactory(aFactory),
mSpec(aSpec),
mSpec(std::move(aSpec)),
mBackgroundActor(aActor),
mFileHandleDisabled(aRequest->IsFileHandleDisabled()),
mClosed(false),
@ -161,7 +162,7 @@ IDBDatabase::IDBDatabase(IDBOpenDBRequest* aRequest, IDBFactory* aFactory,
MOZ_ASSERT(aFactory);
aFactory->AssertIsOnOwningThread();
MOZ_ASSERT(aActor);
MOZ_ASSERT(aSpec);
MOZ_ASSERT(mSpec);
}
IDBDatabase::~IDBDatabase() {
@ -174,14 +175,15 @@ IDBDatabase::~IDBDatabase() {
RefPtr<IDBDatabase> IDBDatabase::Create(IDBOpenDBRequest* aRequest,
IDBFactory* aFactory,
BackgroundDatabaseChild* aActor,
DatabaseSpec* aSpec) {
UniquePtr<DatabaseSpec> aSpec) {
MOZ_ASSERT(aRequest);
MOZ_ASSERT(aFactory);
aFactory->AssertIsOnOwningThread();
MOZ_ASSERT(aActor);
MOZ_ASSERT(aSpec);
RefPtr<IDBDatabase> db = new IDBDatabase(aRequest, aFactory, aActor, aSpec);
RefPtr<IDBDatabase> db =
new IDBDatabase(aRequest, aFactory, aActor, std::move(aSpec));
if (NS_IsMainThread()) {
nsCOMPtr<nsPIDOMWindowInner> window =

View File

@ -90,7 +90,8 @@ class IDBDatabase final : public DOMEventTargetHelper {
public:
static MOZ_MUST_USE RefPtr<IDBDatabase> Create(
IDBOpenDBRequest* aRequest, IDBFactory* aFactory,
indexedDB::BackgroundDatabaseChild* aActor, DatabaseSpec* aSpec);
indexedDB::BackgroundDatabaseChild* aActor,
UniquePtr<DatabaseSpec> aSpec);
void AssertIsOnOwningThread() const
#ifdef DEBUG
@ -240,7 +241,8 @@ class IDBDatabase final : public DOMEventTargetHelper {
private:
IDBDatabase(IDBOpenDBRequest* aRequest, IDBFactory* aFactory,
indexedDB::BackgroundDatabaseChild* aActor, DatabaseSpec* aSpec);
indexedDB::BackgroundDatabaseChild* aActor,
UniquePtr<DatabaseSpec> aSpec);
~IDBDatabase();