diff options
Diffstat (limited to 'src/kernel/NeKit')
| -rw-r--r-- | src/kernel/NeKit/Array.h | 5 | ||||
| -rw-r--r-- | src/kernel/NeKit/ArrayList.h | 2 | ||||
| -rw-r--r-- | src/kernel/NeKit/Atom.h | 2 | ||||
| -rw-r--r-- | src/kernel/NeKit/Config.h (renamed from src/kernel/NeKit/Defines.h) | 0 | ||||
| -rw-r--r-- | src/kernel/NeKit/Crc32.h | 2 | ||||
| -rw-r--r-- | src/kernel/NeKit/CxxAbi.h | 2 | ||||
| -rw-r--r-- | src/kernel/NeKit/ErrorOr.h | 2 | ||||
| -rw-r--r-- | src/kernel/NeKit/Function.h | 2 | ||||
| -rw-r--r-- | src/kernel/NeKit/Json.h | 2 | ||||
| -rw-r--r-- | src/kernel/NeKit/KString.h | 2 | ||||
| -rw-r--r-- | src/kernel/NeKit/KernelPanic.h | 2 | ||||
| -rw-r--r-- | src/kernel/NeKit/MutableArray.h | 2 | ||||
| -rw-r--r-- | src/kernel/NeKit/OwnPtr.h | 15 | ||||
| -rw-r--r-- | src/kernel/NeKit/PageMgr.h | 2 | ||||
| -rw-r--r-- | src/kernel/NeKit/Pair.h | 2 | ||||
| -rw-r--r-- | src/kernel/NeKit/Ref.h | 5 | ||||
| -rw-r--r-- | src/kernel/NeKit/Stream.h | 2 | ||||
| -rw-r--r-- | src/kernel/NeKit/Utils.h | 2 | ||||
| -rw-r--r-- | src/kernel/NeKit/Variant.h | 2 | ||||
| -rw-r--r-- | src/kernel/NeKit/Vet.h | 34 |
20 files changed, 61 insertions, 28 deletions
diff --git a/src/kernel/NeKit/Array.h b/src/kernel/NeKit/Array.h index 5b8371db..f4673b68 100644 --- a/src/kernel/NeKit/Array.h +++ b/src/kernel/NeKit/Array.h @@ -7,7 +7,7 @@ #pragma once #include <KernelKit/DebugOutput.h> -#include <NeKit/Defines.h> +#include <NeKit/Config.h> #include <NeKit/ErrorOr.h> namespace Kernel { @@ -27,8 +27,7 @@ class Array final { SizeT Capacity() { return N; } SizeT Count() { - const static SizeT kArrCnt = N; - return kArrCnt; // avoid constexpr error. + return N; // avoid constexpr error. } const T* CData() { return fArray; } diff --git a/src/kernel/NeKit/ArrayList.h b/src/kernel/NeKit/ArrayList.h index 54613b67..d3225a50 100644 --- a/src/kernel/NeKit/ArrayList.h +++ b/src/kernel/NeKit/ArrayList.h @@ -6,7 +6,7 @@ #pragma once -#include <NeKit/Defines.h> +#include <NeKit/Config.h> namespace Kernel { template <typename T> diff --git a/src/kernel/NeKit/Atom.h b/src/kernel/NeKit/Atom.h index 0f8eefbc..51808a0a 100644 --- a/src/kernel/NeKit/Atom.h +++ b/src/kernel/NeKit/Atom.h @@ -5,7 +5,7 @@ ======================================== */ #pragma once -#include <NeKit/Defines.h> +#include <NeKit/Config.h> namespace Kernel { template <typename T> diff --git a/src/kernel/NeKit/Defines.h b/src/kernel/NeKit/Config.h index e53616a9..e53616a9 100644 --- a/src/kernel/NeKit/Defines.h +++ b/src/kernel/NeKit/Config.h diff --git a/src/kernel/NeKit/Crc32.h b/src/kernel/NeKit/Crc32.h index 125ee5b7..ecec9519 100644 --- a/src/kernel/NeKit/Crc32.h +++ b/src/kernel/NeKit/Crc32.h @@ -11,7 +11,7 @@ #ifndef NEKIT_CRC32_H #define NEKIT_CRC32_H -#include <NeKit/Defines.h> +#include <NeKit/Config.h> namespace Kernel { UInt32 ke_calculate_crc32(const VoidPtr crc, Int32 len); diff --git a/src/kernel/NeKit/CxxAbi.h b/src/kernel/NeKit/CxxAbi.h index 7b13d6b3..41956d3f 100644 --- a/src/kernel/NeKit/CxxAbi.h +++ b/src/kernel/NeKit/CxxAbi.h @@ -5,7 +5,7 @@ ======================================== */ #pragma once -#include <NeKit/Defines.h> +#include <NeKit/Config.h> #ifndef __NECTI__ diff --git a/src/kernel/NeKit/ErrorOr.h b/src/kernel/NeKit/ErrorOr.h index d930fe17..f0740488 100644 --- a/src/kernel/NeKit/ErrorOr.h +++ b/src/kernel/NeKit/ErrorOr.h @@ -9,7 +9,7 @@ #pragma once -#include <NeKit/Defines.h> +#include <NeKit/Config.h> #include <NeKit/Ref.h> namespace Kernel { diff --git a/src/kernel/NeKit/Function.h b/src/kernel/NeKit/Function.h index 5dea8f85..1ceda345 100644 --- a/src/kernel/NeKit/Function.h +++ b/src/kernel/NeKit/Function.h @@ -6,7 +6,7 @@ #pragma once -#include <NeKit/Defines.h> +#include <NeKit/Config.h> #include <NeKit/ErrorOr.h> namespace Kernel { diff --git a/src/kernel/NeKit/Json.h b/src/kernel/NeKit/Json.h index 82ce3b99..e6106a2b 100644 --- a/src/kernel/NeKit/Json.h +++ b/src/kernel/NeKit/Json.h @@ -10,7 +10,7 @@ /// @brief Kernel JSON API. #include <CompilerKit/CompilerKit.h> -#include <NeKit/Defines.h> +#include <NeKit/Config.h> #include <NeKit/KString.h> #include <NeKit/Stream.h> #include <NeKit/Utils.h> diff --git a/src/kernel/NeKit/KString.h b/src/kernel/NeKit/KString.h index fa83fed4..fa0ebcbf 100644 --- a/src/kernel/NeKit/KString.h +++ b/src/kernel/NeKit/KString.h @@ -7,7 +7,7 @@ #pragma once #include <CompilerKit/CompilerKit.h> -#include <NeKit/Defines.h> +#include <NeKit/Config.h> #include <NeKit/ErrorOr.h> #include <NeKit/KernelPanic.h> #include <NeKit/Utils.h> diff --git a/src/kernel/NeKit/KernelPanic.h b/src/kernel/NeKit/KernelPanic.h index f716e6de..cba8897c 100644 --- a/src/kernel/NeKit/KernelPanic.h +++ b/src/kernel/NeKit/KernelPanic.h @@ -7,7 +7,7 @@ #pragma once -#include <NeKit/Defines.h> +#include <NeKit/Config.h> namespace Kernel { void ke_runtime_check(bool expr, const Char* file, const Char* line); diff --git a/src/kernel/NeKit/MutableArray.h b/src/kernel/NeKit/MutableArray.h index e14afbfe..6dafa5b9 100644 --- a/src/kernel/NeKit/MutableArray.h +++ b/src/kernel/NeKit/MutableArray.h @@ -7,7 +7,7 @@ #include <CompilerKit/CompilerKit.h> #include <NeKit/Array.h> -#include <NeKit/Defines.h> +#include <NeKit/Config.h> #define RTL_TRY_FIND_NODE(NAME, NODE) \ auto* NAME = NODE; \ diff --git a/src/kernel/NeKit/OwnPtr.h b/src/kernel/NeKit/OwnPtr.h index bec2813b..30c8f9eb 100644 --- a/src/kernel/NeKit/OwnPtr.h +++ b/src/kernel/NeKit/OwnPtr.h @@ -7,7 +7,7 @@ #pragma once -#include <NeKit/Defines.h> +#include <NeKit/Config.h> #include <NeKit/KernelPanic.h> #include <NeKit/Ref.h> @@ -21,8 +21,8 @@ class NonNullRefPtr; template <typename T> class OwnPtr final { public: - OwnPtr() {} - ~OwnPtr() { this->Delete(); } + OwnPtr() = default; + ~OwnPtr() { this->Reset(); } OwnPtr& operator=(const OwnPtr&) = default; OwnPtr(const OwnPtr&) = default; @@ -38,9 +38,8 @@ class OwnPtr final { return fCls; } - void Delete() { + void Reset() { if (fCls) delete fCls; - fCls = nullptr; } @@ -50,15 +49,15 @@ class OwnPtr final { Ref<T> AsRef() { return Ref<T>(fCls); } - operator bool() { return fCls; } + explicit operator bool() { return fCls; } bool operator!() { return !fCls; } private: - T* fCls; + T* fCls{nullptr}; }; template <typename T, typename... Args> -inline OwnPtr<T> mm_make_own_ptr(Args... args) { +inline OwnPtr<T> make_ptr(Args... args) { OwnPtr<T> ret; ret.template New<Args...>(forward(args)...); diff --git a/src/kernel/NeKit/PageMgr.h b/src/kernel/NeKit/PageMgr.h index 6cdd5a5c..1bd489af 100644 --- a/src/kernel/NeKit/PageMgr.h +++ b/src/kernel/NeKit/PageMgr.h @@ -9,7 +9,7 @@ #pragma once -#include <NeKit/Defines.h> +#include <NeKit/Config.h> #include <NeKit/Ref.h> namespace Kernel { diff --git a/src/kernel/NeKit/Pair.h b/src/kernel/NeKit/Pair.h index c8914ec6..6c67d508 100644 --- a/src/kernel/NeKit/Pair.h +++ b/src/kernel/NeKit/Pair.h @@ -7,7 +7,7 @@ #pragma once #include <CompilerKit/CompilerKit.h> -#include <NeKit/Defines.h> +#include <NeKit/Config.h> #include <NeKit/ErrorOr.h> namespace Kernel { diff --git a/src/kernel/NeKit/Ref.h b/src/kernel/NeKit/Ref.h index 59991442..ff8731e3 100644 --- a/src/kernel/NeKit/Ref.h +++ b/src/kernel/NeKit/Ref.h @@ -10,8 +10,9 @@ #include <CompilerKit/CompilerKit.h> #include <KernelKit/HeapMgr.h> -#include <NeKit/Defines.h> +#include <NeKit/Config.h> #include <NeKit/KernelPanic.h> +#include <NeKit/Vet.h> namespace Kernel { /// =========================================================== /// @@ -43,7 +44,7 @@ class Ref final { T operator*() { return fClass; } - operator bool() { return true; } + operator bool() { return Vettable<T>::kValue; } private: T fClass; diff --git a/src/kernel/NeKit/Stream.h b/src/kernel/NeKit/Stream.h index 1a53e7f0..44b98e35 100644 --- a/src/kernel/NeKit/Stream.h +++ b/src/kernel/NeKit/Stream.h @@ -7,7 +7,7 @@ #pragma once -#include <NeKit/Defines.h> +#include <NeKit/Config.h> #include <NeKit/Ref.h> namespace Kernel { diff --git a/src/kernel/NeKit/Utils.h b/src/kernel/NeKit/Utils.h index caabd2af..28a153af 100644 --- a/src/kernel/NeKit/Utils.h +++ b/src/kernel/NeKit/Utils.h @@ -6,7 +6,7 @@ #pragma once -#include <NeKit/Defines.h> +#include <NeKit/Config.h> namespace Kernel { /// =========================================================== /// diff --git a/src/kernel/NeKit/Variant.h b/src/kernel/NeKit/Variant.h index 1b0fbe5d..a7257805 100644 --- a/src/kernel/NeKit/Variant.h +++ b/src/kernel/NeKit/Variant.h @@ -6,7 +6,7 @@ #pragma once -#include <NeKit/Defines.h> +#include <NeKit/Config.h> #include <NeKit/Json.h> #include <NeKit/KString.h> #include <NeKit/TOML.h> diff --git a/src/kernel/NeKit/Vet.h b/src/kernel/NeKit/Vet.h new file mode 100644 index 00000000..d4c1060f --- /dev/null +++ b/src/kernel/NeKit/Vet.h @@ -0,0 +1,34 @@ + +/* ======================================== + + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. + +======================================== */ + +#pragma once + +#include <CompilerKit/CompilerKit.h> +#include <NeKit/Config.h> + +#define NE_VETTABLE : public IVet + +namespace Kernel { +struct IVet { + IVet() = default; + virtual ~IVet() = default; + + NE_COPY_DEFAULT(IVet) + + operator bool() = delete; +}; + +template <typename T> +struct Vettable final { + static constexpr bool kValue = false; +}; + +template <> +struct Vettable<IVet> final { + static constexpr bool kValue = true; +}; +} // namespace Kernel
\ No newline at end of file |
