From f1d8978804900311d348da1651d7e17ad218b80f Mon Sep 17 00:00:00 2001 From: Andrew Kaster Date: Sun, 14 Nov 2021 15:52:48 -0700 Subject: AK+Kernel: Remove implicit conversion from Userspace to FlatPtr This feels like it was a refactor transition kind of conversion. The places that were relying on it can easily be changed to explicitly ask for the ptr() or a new vaddr() method on Userspace. FlatPtr can still implicitly convert to Userspace because the constructor is not explicit, but there's quite a few more places that are relying on that conversion. --- AK/Userspace.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'AK/Userspace.h') diff --git a/AK/Userspace.h b/AK/Userspace.h index 8d99a54172..267862424e 100644 --- a/AK/Userspace.h +++ b/AK/Userspace.h @@ -10,6 +10,10 @@ #include #include +#ifdef KERNEL +# include +#endif + namespace AK { template @@ -20,8 +24,6 @@ class Userspace { public: Userspace() = default; - operator FlatPtr() const { return (FlatPtr)m_ptr; } - // Disable default implementations that would use surprising integer promotion. bool operator==(const Userspace&) const = delete; bool operator<=(const Userspace&) const = delete; @@ -38,7 +40,8 @@ public: explicit operator bool() const { return m_ptr != 0; } FlatPtr ptr() const { return m_ptr; } - T unsafe_userspace_ptr() const { return (T)m_ptr; } + VirtualAddress vaddr() const { return VirtualAddress(m_ptr); } + T unsafe_userspace_ptr() const { return reinterpret_cast(m_ptr); } #else Userspace(T ptr) : m_ptr(ptr) -- cgit v1.2.3