diff --git a/AK/RefPtr.h b/AK/RefPtr.h index 4276b82b786..ad0199b47f6 100644 --- a/AK/RefPtr.h +++ b/AK/RefPtr.h @@ -312,6 +312,24 @@ inline RefPtr static_ptr_cast(RefPtr const& ptr) return RefPtr(static_cast(ptr.ptr())); } +template +inline NonnullRefPtr fixme_launder_const_through_pointer_cast(NonnullRefPtr const& ptr) +{ + return NonnullRefPtr(const_cast(*ptr)); +} + +template +inline RefPtr fixme_launder_const_through_pointer_cast(RefPtr const& ptr) +{ + return RefPtr(const_cast(ptr.ptr())); +} + +template +inline NonnullRefPtr fixme_launder_const_through_pointer_cast(T const& ptr) +{ + return NonnullRefPtr(const_cast(ptr)); +} + template requires(IsConvertible) inline void swap(RefPtr& a, RefPtr& b)