summaryrefslogtreecommitdiff
path: root/dom/bindings
diff options
context:
space:
mode:
Diffstat (limited to 'dom/bindings')
-rw-r--r--dom/bindings/RootedOwningNonNull.h15
-rw-r--r--dom/bindings/RootedRefPtr.h13
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