Bug 1452947: Remove useless PtrHolder / PtrHandle stuff now that URIs are thread-safe. r?heycam draft
authorEmilio Cobos Álvarez <emilio@crisal.io>
Tue, 10 Apr 2018 15:20:56 +0200
changeset 779760 9df7b71c9686d2d8f1a3f51bdacd3ad79c2ed2ea
parent 779743 abbcbaad3582cdf22deb98dfff21527e7d41d8a8
child 779761 47a74ce18a7207c3b73fae1a4e593f4352dbf116
push id105861
push userbmo:emilio@crisal.io
push dateTue, 10 Apr 2018 14:57:09 +0000
reviewersheycam
bugs1452947
milestone61.0a1
Bug 1452947: Remove useless PtrHolder / PtrHandle stuff now that URIs are thread-safe. r?heycam MozReview-Commit-ID: 5f2B8bqBnDp
layout/style/ServoBindings.toml
layout/style/nsCSSValue.cpp
layout/style/nsCSSValue.h
--- a/layout/style/ServoBindings.toml
+++ b/layout/style/ServoBindings.toml
@@ -289,18 +289,16 @@ whitelist-types = [
     "nsCSSValuePair_heap",
     "nsCSSValuePairList",
     "nsCSSValuePairList_heap",
     "nsCSSValueTriplet_heap",
     "nsCursorImage",
     "nsFont",
     "nsAtom",
     "nsDynamicAtom",
-    "nsMainThreadPtrHandle",
-    "nsMainThreadPtrHolder",
     "nsMargin",
     "nsMediaFeature",
     "nsMediaFeatures",
     "nsMediaList",
     "nsRect",
     "nsRestyleHint",
     "nsresult",
     "nsSimpleContentList",
--- a/layout/style/nsCSSValue.cpp
+++ b/layout/style/nsCSSValue.cpp
@@ -1147,30 +1147,30 @@ nsCSSValue::Array::SizeOfIncludingThis(m
 {
   size_t n = aMallocSizeOf(this);
   for (size_t i = 0; i < mCount; i++) {
     n += mArray[i].SizeOfExcludingThis(aMallocSizeOf);
   }
   return n;
 }
 
-css::URLValueData::URLValueData(already_AddRefed<PtrHolder<nsIURI>> aURI,
+css::URLValueData::URLValueData(already_AddRefed<nsIURI> aURI,
                                 const nsAString& aString,
                                 already_AddRefed<URLExtraData> aExtraData)
   : mURI(Move(aURI))
   , mExtraData(Move(aExtraData))
   , mURIResolved(true)
   , mStrings(aString)
   , mUsingRustString(false)
 {
   MOZ_ASSERT(mExtraData);
   MOZ_ASSERT(mExtraData->GetPrincipal());
 }
 
-css::URLValueData::URLValueData(already_AddRefed<PtrHolder<nsIURI>> aURI,
+css::URLValueData::URLValueData(already_AddRefed<nsIURI> aURI,
                                 ServoRawOffsetArc<RustString> aString,
                                 already_AddRefed<URLExtraData> aExtraData)
   : mURI(Move(aURI))
   , mExtraData(Move(aExtraData))
   , mURIResolved(true)
   , mStrings(aString)
   , mUsingRustString(true)
 {
@@ -1311,17 +1311,17 @@ css::URLValueData::GetURI() const
       NS_NewURI(getter_AddRefs(newURI),
                 NS_ConvertUTF16toUTF8(mStrings.mString),
                 nullptr, mExtraData->BaseURI());
     } else {
       NS_NewURI(getter_AddRefs(newURI),
                 GetRustString(),
                 nullptr, mExtraData->BaseURI());
     }
-    mURI = new PtrHolder<nsIURI>("URLValueData::mURI", newURI.forget());
+    mURI = newURI.forget();
     mURIResolved = true;
   }
 
   return mURI;
 }
 
 bool
 css::URLValueData::IsLocalRef() const
@@ -1465,17 +1465,17 @@ URLValue::URLValue(const nsAString& aStr
   : URLValueData(aString, do_AddRef(new URLExtraData(aBaseURI, aReferrer,
                                                      aOriginPrincipal)))
 {
   MOZ_ASSERT(NS_IsMainThread());
 }
 
 URLValue::URLValue(nsIURI* aURI, const nsAString& aString, nsIURI* aBaseURI,
                    nsIURI* aReferrer, nsIPrincipal* aOriginPrincipal)
-  : URLValueData(do_AddRef(new PtrHolder<nsIURI>("URLValueData::mURI", aURI)),
+  : URLValueData(do_AddRef(aURI),
                  aString,
                  do_AddRef(new URLExtraData(aBaseURI, aReferrer,
                                             aOriginPrincipal)))
 {
   MOZ_ASSERT(NS_IsMainThread());
 }
 
 size_t
@@ -1489,29 +1489,27 @@ css::URLValue::SizeOfIncludingThis(mozil
   }
   return n;
 }
 
 css::ImageValue::ImageValue(nsIURI* aURI, const nsAString& aString,
                             already_AddRefed<URLExtraData> aExtraData,
                             nsIDocument* aDocument,
                             CORSMode aCORSMode)
-  : URLValueData(do_AddRef(new PtrHolder<nsIURI>("URLValueData::mURI", aURI)),
-                 aString, Move(aExtraData))
+  : URLValueData(do_AddRef(aURI), aString, Move(aExtraData))
 {
   mCORSMode = aCORSMode;
   Initialize(aDocument);
 }
 
 css::ImageValue::ImageValue(nsIURI* aURI, ServoRawOffsetArc<RustString> aString,
                             already_AddRefed<URLExtraData> aExtraData,
                             nsIDocument* aDocument,
                             CORSMode aCORSMode)
-  : URLValueData(do_AddRef(new PtrHolder<nsIURI>("URLValueData::mURI", aURI)),
-                 aString, Move(aExtraData))
+  : URLValueData(do_AddRef(aURI), aString, Move(aExtraData))
 {
   mCORSMode = aCORSMode;
   Initialize(aDocument);
 }
 
 css::ImageValue::ImageValue(const nsAString& aString,
                             already_AddRefed<URLExtraData> aExtraData,
                             CORSMode aCORSMode)
--- a/layout/style/nsCSSValue.h
+++ b/layout/style/nsCSSValue.h
@@ -104,20 +104,20 @@ protected:
   // For both constructors principal of aExtraData must not be null.
   // Construct with a base URI; this will create the actual URI lazily from
   // aString and aExtraData.
   URLValueData(const nsAString& aString,
                already_AddRefed<URLExtraData> aExtraData);
   URLValueData(ServoRawOffsetArc<RustString> aString,
                already_AddRefed<URLExtraData> aExtraData);
   // Construct with the actual URI.
-  URLValueData(already_AddRefed<PtrHolder<nsIURI>> aURI,
+  URLValueData(already_AddRefed<nsIURI> aURI,
                const nsAString& aString,
                already_AddRefed<URLExtraData> aExtraData);
-  URLValueData(already_AddRefed<PtrHolder<nsIURI>> aURI,
+  URLValueData(already_AddRefed<nsIURI> aURI,
                ServoRawOffsetArc<RustString> aString,
                already_AddRefed<URLExtraData> aExtraData);
 
 public:
   // Returns true iff all fields of the two URLValueData objects are equal.
   //
   // Only safe to call on the main thread, since this will call Equals on the
   // nsIURI and nsIPrincipal objects stored on the URLValueData objects.
@@ -169,17 +169,17 @@ public:
   // Returns this URL's UTF-16 representation, converting if necessary.
   nsString GetUTF16StringForAnyThread() const;
 
   bool IsStringEmpty() const;
 
 private:
   // mURI stores the lazily resolved URI.  This may be null if the URI is
   // invalid, even once resolved.
-  mutable PtrHandle<nsIURI> mURI;
+  mutable nsCOMPtr<nsIURI> mURI;
 public:
   RefPtr<URLExtraData> mExtraData;
 private:
   // Returns a substring based on mStrings.mRustString which should not be exposed
   // to external consumers.
   nsDependentCSubstring GetRustString() const;
 
   mutable bool mURIResolved;