LibJS+LibWeb: Return non-const types from Ptr class operators

Even if the pointer value is const, the value they point to is not
necessarily const, so these functions should not add the qualifier.

This also removes the redundant non-const implementations of these
operators.
This commit is contained in:
MacDue 2022-11-19 01:08:51 +00:00 committed by Linus Groh
parent 3483407ddc
commit 66a428ae03
3 changed files with 15 additions and 46 deletions

View file

@ -72,20 +72,15 @@ public:
return *this;
}
T* operator->() { return m_ptr; }
T const* operator->() const { return m_ptr; }
T* operator->() const { return m_ptr; }
T& operator*() { return *m_ptr; }
T const& operator*() const { return *m_ptr; }
T& operator*() const { return *m_ptr; }
T* ptr() { return m_ptr; }
T const* ptr() const { return m_ptr; }
T* ptr() const { return m_ptr; }
operator T*() { return m_ptr; }
operator T const*() const { return m_ptr; }
operator T*() const { return m_ptr; }
operator T&() { return *m_ptr; }
operator T const&() const { return *m_ptr; }
operator T&() const { return *m_ptr; }
private:
T* m_ptr { nullptr };
@ -181,20 +176,14 @@ public:
return *this;
}
T* operator->() { return m_ptr; }
T const* operator->() const { return m_ptr; }
T& operator*() { return *m_ptr; }
T const& operator*() const { return *m_ptr; }
T* ptr() { return m_ptr; }
T const* ptr() const { return m_ptr; }
T* operator->() const { return m_ptr; }
T& operator*() const { return *m_ptr; }
T* ptr() const { return m_ptr; }
operator bool() const { return !!m_ptr; }
bool operator!() const { return !m_ptr; }
operator T*() { return m_ptr; }
operator T const*() const { return m_ptr; }
operator T*() const { return m_ptr; }
private:
T* m_ptr { nullptr };

View file

@ -60,25 +60,14 @@ public:
{
}
T* cell()
T* cell() const
{
if (!m_impl)
return nullptr;
return static_cast<T*>(m_impl->cell());
}
T const* cell() const
{
if (!m_impl)
return nullptr;
return static_cast<T const*>(m_impl->cell());
}
T* ptr()
{
return cell();
}
T const* ptr() const
T* ptr() const
{
return cell();
}
@ -88,20 +77,12 @@ public:
return m_impl.is_null();
}
T* operator->()
{
return cell();
}
T const* operator->() const
T* operator->() const
{
return cell();
}
T& operator*()
{
return *cell();
}
T const& operator*() const
T& operator*() const
{
return *cell();
}
@ -115,8 +96,7 @@ public:
return cell();
}
operator T*() { return cell(); }
operator T const*() const { return cell(); }
operator T*() const { return cell(); }
private:
explicit Handle(NonnullRefPtr<HandleImpl> impl)

View file

@ -121,7 +121,7 @@ WebIDL::ExceptionOr<void> CanvasRenderingContext2D::draw_image_internal(CanvasIm
if (usability == CanvasImageSourceUsability::Bad)
return {};
auto const* bitmap = image.visit([](auto const& source) { return source->bitmap(); });
auto const* bitmap = image.visit([](auto const& source) -> Gfx::Bitmap const* { return source->bitmap(); });
if (!bitmap)
return {};