diff options
Diffstat (limited to 'dom/bindings')
-rw-r--r-- | dom/bindings/RootedOwningNonNull.h | 15 | ||||
-rw-r--r-- | dom/bindings/RootedRefPtr.h | 13 |
2 files changed, 6 insertions, 22 deletions
diff --git a/dom/bindings/RootedOwningNonNull.h b/dom/bindings/RootedOwningNonNull.h index 13424d155..387a70734 100644 --- a/dom/bindings/RootedOwningNonNull.h +++ b/dom/bindings/RootedOwningNonNull.h @@ -50,21 +50,12 @@ struct GCPolicy<mozilla::OwningNonNull<T>> } // namespace JS namespace js { -template<typename T> -struct RootedBase<mozilla::OwningNonNull<T>> +template<typename T, typename Wrapper> +struct WrappedPtrOperations<mozilla::OwningNonNull<T>, Wrapper> { - typedef mozilla::OwningNonNull<T> SmartPtrType; - - operator SmartPtrType& () const - { - auto& self = *static_cast<const JS::Rooted<SmartPtrType>*>(this); - return self.get(); - } - operator T& () const { - auto& self = *static_cast<const JS::Rooted<SmartPtrType>*>(this); - return self.get(); + return static_cast<const Wrapper*>(this)->get(); } }; } // namespace js diff --git a/dom/bindings/RootedRefPtr.h b/dom/bindings/RootedRefPtr.h index 34f2da5c9..2563d4649 100644 --- a/dom/bindings/RootedRefPtr.h +++ b/dom/bindings/RootedRefPtr.h @@ -38,19 +38,12 @@ struct GCPolicy<RefPtr<T>> } // namespace JS namespace js { -template<typename T> -struct RootedBase<RefPtr<T>> +template<typename T, typename Wrapper> +struct WrappedPtrOperations<RefPtr<T>, Wrapper> { - operator RefPtr<T>& () const - { - auto& self = *static_cast<const JS::Rooted<RefPtr<T>>*>(this); - return self.get(); - } - operator T*() const { - auto& self = *static_cast<const JS::Rooted<RefPtr<T>>*>(this); - return self.get(); + return static_cast<const Wrapper*>(this)->get(); } }; } // namespace js |