From 2f82d4fb31af551deeb7955073d0f6bf69b33d2a Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sat, 8 Feb 2020 11:57:13 +0100 Subject: [PATCH] Kernel: Add KResultOr::result() This is just a handy way to get either an error or a KSuccess, even if there is a T present. --- Kernel/KResult.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Kernel/KResult.h b/Kernel/KResult.h index 6279690109..52e05308eb 100644 --- a/Kernel/KResult.h +++ b/Kernel/KResult.h @@ -94,7 +94,7 @@ public: KResultOr& operator=(KResultOr&& other) { if (!m_is_error) - value().~T(); + value().~T(); m_is_error = other.m_is_error; if (m_is_error) m_error = other.m_error; @@ -119,6 +119,7 @@ public: ASSERT(m_is_error); return m_error; } + KResult result() const { return m_is_error ? KSuccess : m_error; } T& value() { ASSERT(!m_is_error); @@ -139,7 +140,7 @@ public: } private: - alignas (T) char m_storage[sizeof(T)]; + alignas(T) char m_storage[sizeof(T)]; KResult m_error; bool m_is_error { false }; };