summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/NewKit/OwnPtr.h
diff options
context:
space:
mode:
authorAmlal <amlal@nekernel.org>2025-04-25 13:08:33 +0200
committerAmlal <amlal@nekernel.org>2025-04-25 13:08:33 +0200
commitfb790b07aeba8e22e4190cf3e1834d11ecde6c96 (patch)
tree4cec7d1b321307b1d5935577631dae116a658a37 /dev/kernel/NewKit/OwnPtr.h
parent63a2d92c5dfe976175cda024ec01905d11b43738 (diff)
dev: better .clang-format, ran format command.
Signed-off-by: Amlal <amlal@nekernel.org>
Diffstat (limited to 'dev/kernel/NewKit/OwnPtr.h')
-rw-r--r--dev/kernel/NewKit/OwnPtr.h139
1 files changed, 56 insertions, 83 deletions
diff --git a/dev/kernel/NewKit/OwnPtr.h b/dev/kernel/NewKit/OwnPtr.h
index f15bc339..f00f51c4 100644
--- a/dev/kernel/NewKit/OwnPtr.h
+++ b/dev/kernel/NewKit/OwnPtr.h
@@ -1,7 +1,7 @@
/* -------------------------------------------
- Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved.
+ Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved.
------------------------------------------- */
@@ -11,85 +11,58 @@
#include <NewKit/KernelPanic.h>
#include <NewKit/Ref.h>
-namespace Kernel
-{
- template <typename T>
- class OwnPtr;
-
- template <typename T>
- class NonNullRefPtr;
-
- template <typename T>
- class OwnPtr final
- {
- public:
- OwnPtr()
- {
- }
- ~OwnPtr()
- {
- this->Delete();
- }
-
- OwnPtr& operator=(const OwnPtr&) = default;
- OwnPtr(const OwnPtr&) = default;
-
- public:
- template <typename... Args>
- bool New(Args&&... arg)
- {
- if (fCls)
- {
- return false;
- }
-
- fCls = new T(arg...);
- return fCls;
- }
-
- void Delete()
- {
- if (fCls)
- delete fCls;
-
- fCls = nullptr;
- }
-
- T* operator->() const
- {
- return fCls;
- }
-
- T* Raw()
- {
- return fCls;
- }
-
- Ref<T> AsRef()
- {
- return Ref<T>(fCls);
- }
-
- operator bool()
- {
- return fCls;
- }
- bool operator!()
- {
- return !fCls;
- }
-
- private:
- T* fCls;
- };
-
- template <typename T, typename... Args>
- inline OwnPtr<T> mm_make_own_ptr(Args... args)
- {
- OwnPtr<T> ret;
- ret.template New<Args...>(forward(args)...);
- MUST_PASS(ret);
-
- return ret;
- }
-} // namespace Kernel
+namespace Kernel {
+template <typename T>
+class OwnPtr;
+
+template <typename T>
+class NonNullRefPtr;
+
+template <typename T>
+class OwnPtr final {
+ public:
+ OwnPtr() {}
+ ~OwnPtr() { this->Delete(); }
+
+ OwnPtr& operator=(const OwnPtr&) = default;
+ OwnPtr(const OwnPtr&) = default;
+
+ public:
+ template <typename... Args>
+ bool New(Args&&... arg) {
+ if (fCls) {
+ return false;
+ }
+
+ fCls = new T(arg...);
+ return fCls;
+ }
+
+ void Delete() {
+ if (fCls) delete fCls;
+
+ fCls = nullptr;
+ }
+
+ T* operator->() const { return fCls; }
+
+ T* Raw() { return fCls; }
+
+ Ref<T> AsRef() { return Ref<T>(fCls); }
+
+ operator bool() { return fCls; }
+ bool operator!() { return !fCls; }
+
+ private:
+ T* fCls;
+};
+
+template <typename T, typename... Args>
+inline OwnPtr<T> mm_make_own_ptr(Args... args) {
+ OwnPtr<T> ret;
+ ret.template New<Args...>(forward(args)...);
+ MUST_PASS(ret);
+
+ return ret;
+}
+} // namespace Kernel