Bug 1318228 - Replace nsAutoPtr with UniquePtr in MediaDrmCDMProxy - r?cpearce
MozReview-Commit-ID: 71BGVx1G7JH
--- a/dom/media/eme/mediadrm/MediaDrmCDMProxy.cpp
+++ b/dom/media/eme/mediadrm/MediaDrmCDMProxy.cpp
@@ -79,27 +79,27 @@ MediaDrmCDMProxy::CreateSession(uint32_t
MediaKeySessionType aSessionType,
PromiseId aPromiseId,
const nsAString& aInitDataType,
nsTArray<uint8_t>& aInitData)
{
MOZ_ASSERT(NS_IsMainThread());
MOZ_ASSERT(mOwnerThread);
- nsAutoPtr<CreateSessionData> data(new CreateSessionData());
+ UniquePtr<CreateSessionData> data(new CreateSessionData());
data->mSessionType = aSessionType;
data->mCreateSessionToken = aCreateSessionToken;
data->mPromiseId = aPromiseId;
data->mInitDataType = NS_ConvertUTF16toUTF8(aInitDataType);
data->mInitData = Move(aInitData);
nsCOMPtr<nsIRunnable> task(
- NewRunnableMethod<nsAutoPtr<CreateSessionData>>(this,
- &MediaDrmCDMProxy::md_CreateSession,
- data));
+ NewRunnableMethod<UniquePtr<CreateSessionData>&&>(this,
+ &MediaDrmCDMProxy::md_CreateSession,
+ Move(data)));
mOwnerThread->Dispatch(task, NS_DISPATCH_NORMAL);
}
void
MediaDrmCDMProxy::LoadSession(PromiseId aPromiseId,
const nsAString& aSessionId)
{
// TODO: Implement LoadSession.
@@ -120,44 +120,44 @@ void
MediaDrmCDMProxy::UpdateSession(const nsAString& aSessionId,
PromiseId aPromiseId,
nsTArray<uint8_t>& aResponse)
{
MOZ_ASSERT(NS_IsMainThread());
MOZ_ASSERT(mOwnerThread);
NS_ENSURE_TRUE_VOID(!mKeys.IsNull());
- nsAutoPtr<UpdateSessionData> data(new UpdateSessionData());
+ UniquePtr<UpdateSessionData> data(new UpdateSessionData());
data->mPromiseId = aPromiseId;
data->mSessionId = NS_ConvertUTF16toUTF8(aSessionId);
data->mResponse = Move(aResponse);
nsCOMPtr<nsIRunnable> task(
- NewRunnableMethod<nsAutoPtr<UpdateSessionData>>(this,
- &MediaDrmCDMProxy::md_UpdateSession,
- data));
+ NewRunnableMethod<UniquePtr<UpdateSessionData>&&>(this,
+ &MediaDrmCDMProxy::md_UpdateSession,
+ Move(data)));
mOwnerThread->Dispatch(task, NS_DISPATCH_NORMAL);
}
void
MediaDrmCDMProxy::CloseSession(const nsAString& aSessionId,
PromiseId aPromiseId)
{
MOZ_ASSERT(NS_IsMainThread());
MOZ_ASSERT(mOwnerThread);
NS_ENSURE_TRUE_VOID(!mKeys.IsNull());
- nsAutoPtr<SessionOpData> data(new SessionOpData());
+ UniquePtr<SessionOpData> data(new SessionOpData());
data->mPromiseId = aPromiseId;
data->mSessionId = NS_ConvertUTF16toUTF8(aSessionId);
nsCOMPtr<nsIRunnable> task(
- NewRunnableMethod<nsAutoPtr<SessionOpData>>(this,
- &MediaDrmCDMProxy::md_CloseSession,
- data));
+ NewRunnableMethod<UniquePtr<SessionOpData>&&>(this,
+ &MediaDrmCDMProxy::md_CloseSession,
+ Move(data)));
mOwnerThread->Dispatch(task, NS_DISPATCH_NORMAL);
}
void
MediaDrmCDMProxy::RemoveSession(const nsAString& aSessionId,
PromiseId aPromiseId)
{
// TODO: Implement RemoveSession.
@@ -398,27 +398,27 @@ MediaDrmCDMProxy::OnCDMCreated(uint32_t
}
void
MediaDrmCDMProxy::md_Init(uint32_t aPromiseId)
{
MOZ_ASSERT(IsOnOwnerThread());
MOZ_ASSERT(mCDM);
- mCallback = new MediaDrmCDMCallbackProxy(this);
- mCDM->Init(mCallback);
+ mCallback.reset(new MediaDrmCDMCallbackProxy(this));
+ mCDM->Init(mCallback.get());
nsCOMPtr<nsIRunnable> task(
NewRunnableMethod<uint32_t>(this,
&MediaDrmCDMProxy::OnCDMCreated,
aPromiseId));
NS_DispatchToMainThread(task);
}
void
-MediaDrmCDMProxy::md_CreateSession(nsAutoPtr<CreateSessionData> aData)
+MediaDrmCDMProxy::md_CreateSession(UniquePtr<CreateSessionData>&& aData)
{
MOZ_ASSERT(IsOnOwnerThread());
if (!mCDM) {
RejectPromise(aData->mPromiseId, NS_ERROR_DOM_INVALID_STATE_ERR,
NS_LITERAL_CSTRING("Null CDM in md_CreateSession"));
return;
}
@@ -426,32 +426,32 @@ MediaDrmCDMProxy::md_CreateSession(nsAut
mCDM->CreateSession(aData->mCreateSessionToken,
aData->mPromiseId,
aData->mInitDataType,
aData->mInitData,
ToMediaDrmSessionType(aData->mSessionType));
}
void
-MediaDrmCDMProxy::md_UpdateSession(nsAutoPtr<UpdateSessionData> aData)
+MediaDrmCDMProxy::md_UpdateSession(UniquePtr<UpdateSessionData>&& aData)
{
MOZ_ASSERT(IsOnOwnerThread());
if (!mCDM) {
RejectPromise(aData->mPromiseId, NS_ERROR_DOM_INVALID_STATE_ERR,
NS_LITERAL_CSTRING("Null CDM in md_UpdateSession"));
return;
}
mCDM->UpdateSession(aData->mPromiseId,
aData->mSessionId,
aData->mResponse);
}
void
-MediaDrmCDMProxy::md_CloseSession(nsAutoPtr<SessionOpData> aData)
+MediaDrmCDMProxy::md_CloseSession(UniquePtr<SessionOpData>&& aData)
{
MOZ_ASSERT(IsOnOwnerThread());
if (!mCDM) {
RejectPromise(aData->mPromiseId, NS_ERROR_DOM_INVALID_STATE_ERR,
NS_LITERAL_CSTRING("Null CDM in md_CloseSession"));
return;
}
--- a/dom/media/eme/mediadrm/MediaDrmCDMProxy.h
+++ b/dom/media/eme/mediadrm/MediaDrmCDMProxy.h
@@ -13,21 +13,21 @@
#include "mozilla/CDMProxy.h"
#include "mozilla/CDMCaps.h"
#include "mozilla/dom/MediaKeys.h"
#include "mozilla/MediaDrmProxySupport.h"
#include "mozilla/UniquePtr.h"
#include "MediaCodec.h"
#include "nsString.h"
-#include "nsAutoPtr.h"
using namespace mozilla::java;
namespace mozilla {
+
class MediaDrmCDMCallbackProxy;
class MediaDrmCDMProxy : public CDMProxy {
public:
NS_INLINE_DECL_THREADSAFE_REFCOUNTING(MediaDrmCDMProxy)
MediaDrmCDMProxy(dom::MediaKeys* aKeys,
const nsAString& aKeySystem,
@@ -162,24 +162,25 @@ private:
private:
RefPtr<MediaDrmCDMProxy> mProxy;
PromiseId mId;
nsresult mCode;
nsCString mReason;
};
nsCString mNodeId;
- mozilla::UniquePtr<MediaDrmProxySupport> mCDM;
- nsAutoPtr<MediaDrmCDMCallbackProxy> mCallback;
+ UniquePtr<MediaDrmProxySupport> mCDM;
+ UniquePtr<MediaDrmCDMCallbackProxy> mCallback;
bool mShutdownCalled;
// =====================================================================
// For MediaDrmProxySupport
void md_Init(uint32_t aPromiseId);
- void md_CreateSession(nsAutoPtr<CreateSessionData> aData);
- void md_UpdateSession(nsAutoPtr<UpdateSessionData> aData);
- void md_CloseSession(nsAutoPtr<SessionOpData> aData);
+ void md_CreateSession(UniquePtr<CreateSessionData>&& aData);
+ void md_UpdateSession(UniquePtr<UpdateSessionData>&& aData);
+ void md_CloseSession(UniquePtr<SessionOpData>&& aData);
void md_Shutdown();
// =====================================================================
};
} // namespace mozilla
-#endif // MediaDrmCDMProxy_h_
+
+#endif // MediaDrmCDMProxy_h_
\ No newline at end of file