Convert OwnPtr to std::unique_ptr in CDM
authorgyuyoung.kim@samsung.com <gyuyoung.kim@samsung.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 4 May 2014 09:04:28 +0000 (09:04 +0000)
committergyuyoung.kim@samsung.com <gyuyoung.kim@samsung.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 4 May 2014 09:04:28 +0000 (09:04 +0000)
https://bugs.webkit.org/show_bug.cgi?id=132467

Reviewed by Andreas Kling.

Use std::unique_ptr in CDM class.

No new tests, no behavior change.

* Modules/encryptedmedia/CDM.cpp:
(WebCore::CDM::create):
(WebCore::CDM::CDM):
* Modules/encryptedmedia/CDM.h:
* Modules/encryptedmedia/CDMPrivateMediaPlayer.h:
(WebCore::CDMPrivateMediaPlayer::CDMPrivateMediaPlayer):
(WebCore::CDMPrivateMediaPlayer::create):
* Modules/encryptedmedia/MediaKeys.cpp:
(WebCore::MediaKeys::create):
(WebCore::MediaKeys::MediaKeys):
* Modules/encryptedmedia/MediaKeys.h:
* WebCore.exp.in:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@168242 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/Modules/encryptedmedia/CDM.cpp
Source/WebCore/Modules/encryptedmedia/CDM.h
Source/WebCore/Modules/encryptedmedia/CDMPrivateMediaPlayer.h
Source/WebCore/Modules/encryptedmedia/MediaKeys.cpp
Source/WebCore/Modules/encryptedmedia/MediaKeys.h
Source/WebCore/WebCore.exp.in
Source/WebCore/testing/MockCDM.h

index 5cdec4a..4f756a5 100644 (file)
@@ -1,3 +1,27 @@
+2014-05-04  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
+
+        Convert OwnPtr to std::unique_ptr in CDM
+        https://bugs.webkit.org/show_bug.cgi?id=132467
+
+        Reviewed by Andreas Kling.
+
+        Use std::unique_ptr in CDM class.
+
+        No new tests, no behavior change.
+
+        * Modules/encryptedmedia/CDM.cpp:
+        (WebCore::CDM::create):
+        (WebCore::CDM::CDM):
+        * Modules/encryptedmedia/CDM.h:
+        * Modules/encryptedmedia/CDMPrivateMediaPlayer.h:
+        (WebCore::CDMPrivateMediaPlayer::CDMPrivateMediaPlayer):
+        (WebCore::CDMPrivateMediaPlayer::create):
+        * Modules/encryptedmedia/MediaKeys.cpp:
+        (WebCore::MediaKeys::create):
+        (WebCore::MediaKeys::MediaKeys):
+        * Modules/encryptedmedia/MediaKeys.h:
+        * WebCore.exp.in:
+
 2014-05-03  Commit Queue  <commit-queue@webkit.org>
 
         Unreviewed, rolling out r168232.
index 7526884..e9d5247 100644 (file)
@@ -94,19 +94,19 @@ bool CDM::keySystemSupportsMimeType(const String& keySystem, const String& mimeT
     return false;
 }
 
-PassOwnPtr<CDM> CDM::create(const String& keySystem)
+std::unique_ptr<CDM> CDM::create(const String& keySystem)
 {
     if (!supportsKeySystem(keySystem))
         return nullptr;
 
-    return adoptPtr(new CDM(keySystem));
+    return std::make_unique<CDM>(keySystem);
 }
 
 CDM::CDM(const String& keySystem)
     : m_keySystem(keySystem)
     , m_client(0)
 {
-    m_private = CDMFactoryForKeySystem(keySystem)->constructor(this);
+    m_private = std::move(CDMFactoryForKeySystem(keySystem)->constructor(this));
 }
 
 CDM::~CDM()
index f30d64f..852dc23 100644 (file)
@@ -40,7 +40,7 @@ class CDM;
 class CDMPrivateInterface;
 class MediaPlayer;
 
-typedef PassOwnPtr<CDMPrivateInterface> (*CreateCDM)(CDM*);
+typedef std::unique_ptr<CDMPrivateInterface> (*CreateCDM)(CDM*);
 typedef bool (*CDMSupportsKeySystem)(const String&);
 typedef bool (*CDMSupportsKeySystemAndMimeType)(const String&, const String&);
 
@@ -53,11 +53,12 @@ public:
 
 class CDM {
 public:
+    explicit CDM(const String& keySystem);
 
     enum CDMErrorCode { UnknownError = 1, ClientError, ServiceError, OutputError, HardwareChangeError, DomainError };
     static bool supportsKeySystem(const String&);
     static bool keySystemSupportsMimeType(const String& keySystem, const String& mimeType);
-    static PassOwnPtr<CDM> create(const String& keySystem);
+    static std::unique_ptr<CDM> create(const String& keySystem);
     static void registerCDMFactory(CreateCDM, CDMSupportsKeySystem, CDMSupportsKeySystemAndMimeType);
     ~CDM();
 
@@ -72,10 +73,8 @@ public:
     MediaPlayer* mediaPlayer() const;
 
 private:
-    CDM(const String& keySystem);
-
     String m_keySystem;
-    OwnPtr<CDMPrivateInterface> m_private;
+    std::unique_ptr<CDMPrivateInterface> m_private;
     CDMClient* m_client;
 };
 
index 484dd41..a49279f 100644 (file)
@@ -38,7 +38,11 @@ class CDM;
 
 class CDMPrivateMediaPlayer : public CDMPrivateInterface {
 public:
-    static PassOwnPtr<CDMPrivateInterface> create(CDM* cdm) { return adoptPtr(new CDMPrivateMediaPlayer(cdm)); }
+    explicit CDMPrivateMediaPlayer(CDM* cdm)
+        : m_cdm(cdm)
+    { }
+
+    static std::unique_ptr<CDMPrivateInterface> create(CDM* cdm) { return std::make_unique<CDMPrivateMediaPlayer>(cdm); }
     static bool supportsKeySystem(const String&);
     static bool supportsKeySystemAndMimeType(const String& keySystem, const String& mimeType);
 
@@ -50,7 +54,6 @@ public:
     CDM* cdm() const { return m_cdm; }
 
 protected:
-    CDMPrivateMediaPlayer(CDM* cdm) : m_cdm(cdm) { }
     CDM* m_cdm;
 };
 
index c29c33f..286af20 100644 (file)
@@ -57,18 +57,18 @@ PassRefPtr<MediaKeys> MediaKeys::create(const String& keySystem, ExceptionCode&
 
     // 3. Let cdm be the content decryption module corresponding to keySystem.
     // 4. Load cdm if necessary.
-    OwnPtr<CDM> cdm = CDM::create(keySystem);
+    std::unique_ptr<CDM> cdm = CDM::create(keySystem);
 
     // 5. Create a new MediaKeys object.
     // 5.1 Let the keySystem attribute be keySystem.
     // 6. Return the new object to the caller.
-    return adoptRef(new MediaKeys(keySystem, cdm.release()));
+    return adoptRef(new MediaKeys(keySystem, std::move(cdm)));
 }
 
-MediaKeys::MediaKeys(const String& keySystem, PassOwnPtr<CDM> cdm)
+MediaKeys::MediaKeys(const String& keySystem, std::unique_ptr<CDM> cdm)
     : m_mediaElement(0)
     , m_keySystem(keySystem)
-    , m_cdm(cdm)
+    , m_cdm(std::move(cdm))
 {
     m_cdm->setClient(this);
 }
index cbfef87..be6f3a8 100644 (file)
@@ -32,7 +32,6 @@
 #include "EventTarget.h"
 #include "ExceptionCode.h"
 #include <runtime/Uint8Array.h>
-#include <wtf/OwnPtr.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
 #include <wtf/Vector.h>
@@ -62,13 +61,13 @@ protected:
     // CDMClient:
     virtual MediaPlayer* cdmMediaPlayer(const CDM*) const override;
 
-    MediaKeys(const String& keySystem, PassOwnPtr<CDM>);
+    MediaKeys(const String& keySystem, std::unique_ptr<CDM>);
 
     Vector<RefPtr<MediaKeySession>> m_sessions;
 
     HTMLMediaElement* m_mediaElement;
     String m_keySystem;
-    OwnPtr<CDM> m_cdm;
+    std::unique_ptr<CDM> m_cdm;
 };
 
 }
index c77e586..985ad73 100644 (file)
@@ -2938,7 +2938,7 @@ __ZN7WebCore8DragDataC1EP11objc_objectRKNS_8IntPointES5_NS_13DragOperationENS_20
 #endif
 
 #if ENABLE(ENCRYPTED_MEDIA_V2)
-__ZN7WebCore3CDM18registerCDMFactoryEPFN3WTF10PassOwnPtrINS_19CDMPrivateInterfaceEEEPS0_EPFbRKNS1_6StringEEPFbSA_SA_E
+__ZN7WebCore3CDM18registerCDMFactoryEPFNSt3__110unique_ptrINS_19CDMPrivateInterfaceENS1_14default_deleteIS3_EEEEPS0_EPFbRKN3WTF6StringEEPFbSD_SD_E
 #endif
 
 #if ENABLE(FULLSCREEN_API)
index 97d0207..b7be8fa 100644 (file)
@@ -29,7 +29,6 @@
 #if ENABLE(ENCRYPTED_MEDIA_V2)
 
 #include "CDMPrivate.h"
-#include <wtf/PassOwnPtr.h>
 
 namespace WebCore {
 
@@ -37,8 +36,12 @@ class CDM;
 
 class MockCDM : public CDMPrivateInterface {
 public:
+    explicit MockCDM(CDM* cdm)
+        : m_cdm(cdm)
+    { }
+
     // CDMFactory support:
-    static PassOwnPtr<CDMPrivateInterface> create(CDM* cdm) { return adoptPtr(new MockCDM(cdm)); }
+    static std::unique_ptr<CDMPrivateInterface> create(CDM* cdm) { return std::make_unique<MockCDM>(cdm); }
     static bool supportsKeySystem(const String&);
     static bool supportsKeySystemAndMimeType(const String& keySystem, const String& mimeType);
 
@@ -48,7 +51,6 @@ public:
     virtual std::unique_ptr<CDMSession> createSession() override;
 
 protected:
-    MockCDM(CDM* cdm) : m_cdm(cdm) { }
     CDM* m_cdm;
 };