1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 02:57:44 +00:00

AK: Simplify RefPtr and NonnullRefPtr's leak_ref() functions

Use AK::exchange() to switch out the internal storage. Also mark these
functions with [[nodiscard]] to provoke an compile-time error if they
are called without using the return value.
This commit is contained in:
Andreas Kling 2019-08-02 12:05:09 +02:00
parent 15866714da
commit fe25426ee4
2 changed files with 4 additions and 8 deletions

View file

@ -148,14 +148,12 @@ public:
return *this;
}
CALLABLE_WHEN(unconsumed)
[[nodiscard]] CALLABLE_WHEN(unconsumed)
SET_TYPESTATE(consumed)
T& leak_ref()
{
ASSERT(m_ptr);
T* leakedPtr = m_ptr;
m_ptr = nullptr;
return *leakedPtr;
return *exchange(m_ptr, nullptr);
}
CALLABLE_WHEN("unconsumed","unknown")