Bug 1417312 - Adjust visibility of some CacheMap.h members. - r=daoshengmu draft
authorJeff Gilbert <jgilbert@mozilla.com>
Wed, 15 Nov 2017 18:44:38 -0800
changeset 699251 d34d44297dd8c6f26894ed51321f7eaba4ad4133
parent 699250 55976f7d863b14f7eb09f1263301773556e2a5c3
child 740581 db2442aef4930980d72e97d78d5f60e71993a855
push id89512
push userbmo:jgilbert@mozilla.com
push dateThu, 16 Nov 2017 21:53:25 +0000
reviewersdaoshengmu
bugs1417312
milestone58.0a1
Bug 1417312 - Adjust visibility of some CacheMap.h members. - r=daoshengmu MozReview-Commit-ID: fTsP6xbrMU
dom/canvas/CacheMap.h
--- a/dom/canvas/CacheMap.h
+++ b/dom/canvas/CacheMap.h
@@ -10,62 +10,65 @@
 #include "mozilla/UniquePtr.h"
 #include <map>
 #include <unordered_set>
 #include <vector>
 
 namespace mozilla {
 
 namespace detail {
-struct CacheMapUntypedEntry;
+class CacheMapUntypedEntry;
 }
 
 class CacheMapInvalidator
 {
-    friend struct detail::CacheMapUntypedEntry;
+    friend class detail::CacheMapUntypedEntry;
 
     mutable std::unordered_set<const detail::CacheMapUntypedEntry*> mCacheEntries;
 
 public:
     ~CacheMapInvalidator() {
         InvalidateCaches();
     }
 
     void InvalidateCaches() const;
 };
 
 namespace detail {
 
-struct CacheMapUntypedEntry
+class CacheMapUntypedEntry
 {
     template<typename, typename> friend class CacheMap;
 
+private:
     const std::vector<const CacheMapInvalidator*> mInvalidators;
 
+protected:
     CacheMapUntypedEntry(std::vector<const CacheMapInvalidator*>&& invalidators);
     ~CacheMapUntypedEntry();
 
 public:
     virtual void Invalidate() const = 0;
 };
 
-template<typename T>
 struct DerefLess final {
+    template<typename T>
     bool operator ()(const T* const a, const T* const b) const {
         return *a < *b;
     }
 };
 
 } // namespace detail
 
 
 template<typename KeyT, typename ValueT>
 class CacheMap final
 {
-    struct Entry final : public detail::CacheMapUntypedEntry {
+    class Entry final : public detail::CacheMapUntypedEntry {
+    public:
         CacheMap& mParent;
         const KeyT mKey;
         const ValueT mValue;
 
         Entry(std::vector<const CacheMapInvalidator*>&& invalidators, CacheMap& parent,
               KeyT&& key, ValueT&& value)
             : detail::CacheMapUntypedEntry(Move(invalidators))
             , mParent(parent)
@@ -78,17 +81,17 @@ class CacheMap final
             MOZ_ALWAYS_TRUE( erased == 1 );
         }
 
         bool operator <(const Entry& x) const {
             return mKey < x.mKey;
         }
     };
 
-    typedef std::map<const KeyT*, UniquePtr<const Entry>, detail::DerefLess<KeyT>> MapT;
+    typedef std::map<const KeyT*, UniquePtr<const Entry>, detail::DerefLess> MapT;
     MapT mMap;
 
 public:
     const ValueT* Insert(KeyT&& key, ValueT&& value,
                          std::vector<const CacheMapInvalidator*>&& invalidators)
     {
         UniquePtr<const Entry> entry( new Entry(Move(invalidators), *this, Move(key),
                                                 Move(value)) );