summaryrefslogtreecommitdiffhomepage
path: root/src/kernel/NeKit/ErrorOr.h
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-12-15 11:22:55 +0100
committerAmlal El Mahrouss <amlal@nekernel.org>2025-12-15 11:25:36 +0100
commit6b4d761818b79a6fc17607e15d939154b4d8314f (patch)
tree0a6188f201afebc4b5a22bae9f0744d7be7495f1 /src/kernel/NeKit/ErrorOr.h
parentcceb0a70efef009b87198796eb9016ffb82c7130 (diff)
feat: New Nullable system, and improved Vettable system.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'src/kernel/NeKit/ErrorOr.h')
-rw-r--r--src/kernel/NeKit/ErrorOr.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/kernel/NeKit/ErrorOr.h b/src/kernel/NeKit/ErrorOr.h
index 4e43cb27..5fa8054b 100644
--- a/src/kernel/NeKit/ErrorOr.h
+++ b/src/kernel/NeKit/ErrorOr.h
@@ -25,10 +25,15 @@ class ErrorOr final {
public:
using RefType = Ref<T>;
using Type = T;
+ using TypePtr = T*;
+
+ explicit ErrorOr(ErrorT err) : mRef((T*) RTL_ALLOCA(sizeof(T))), mId(err) {
+ // AMLALE: Invalidate the value of mRef to make computational evaluations false.
+ mRef = nullptr;
+ }
- explicit ErrorOr(ErrorT err) : mRef((T*) RTL_ALLOCA(sizeof(T))), mId(err) {}
explicit ErrorOr(nullPtr) {}
- explicit ErrorOr(Type* klass) : mRef(klass) {}
+ explicit ErrorOr(TypePtr klass) : mRef(klass) {}
explicit ErrorOr(Type klass) : mRef(klass) {}
ErrorOr& operator=(const ErrorOr&) = default;