summaryrefslogtreecommitdiffhomepage
path: root/dev/zka/NewKit
diff options
context:
space:
mode:
authorAmlal El Mahrouss <zka-holder@mahrouss-logic.com>2024-10-14 05:58:38 +0000
committerAmlal El Mahrouss <zka-holder@mahrouss-logic.com>2024-10-14 05:58:38 +0000
commitd9d82713326069478e6dd212763d1fac15e65370 (patch)
tree37775f4299281598b0f5121df4c188392daebd04 /dev/zka/NewKit
parent7477a0f942c374b652da4f80cdb36d4661aac3c8 (diff)
IMP: Basic ARM64 port.
Diffstat (limited to 'dev/zka/NewKit')
-rw-r--r--dev/zka/NewKit/ErrorOr.hxx2
-rw-r--r--dev/zka/NewKit/Ref.hxx23
-rw-r--r--dev/zka/NewKit/String.hxx1
3 files changed, 12 insertions, 14 deletions
diff --git a/dev/zka/NewKit/ErrorOr.hxx b/dev/zka/NewKit/ErrorOr.hxx
index e280cb77..ae475316 100644
--- a/dev/zka/NewKit/ErrorOr.hxx
+++ b/dev/zka/NewKit/ErrorOr.hxx
@@ -34,7 +34,7 @@ namespace Kernel
}
explicit ErrorOr(T Class)
- : mRef(Class, true)
+ : mRef(Class)
{
}
diff --git a/dev/zka/NewKit/Ref.hxx b/dev/zka/NewKit/Ref.hxx
index 31941d50..b374fe73 100644
--- a/dev/zka/NewKit/Ref.hxx
+++ b/dev/zka/NewKit/Ref.hxx
@@ -18,12 +18,17 @@ namespace Kernel
class Ref final
{
public:
- Ref() = default;
- ~Ref() = default;
+ Ref() = default;
+
+ ~Ref()
+ {
+ if (mm_is_valid_heap(fClass))
+ delete fClass;
+ }
public:
- Ref(T cls, const Bool& strong = false)
- : fClass(&cls), fStrong(strong)
+ Ref(T cls)
+ : fClass(&cls)
{
}
@@ -59,19 +64,13 @@ namespace Kernel
return *fClass;
}
- bool IsStrong() const
- {
- return fStrong;
- }
-
operator bool() noexcept
{
- return fStrong;
+ return fClass;
}
private:
T* fClass{nullptr};
- Bool fStrong{false};
};
template <typename T>
@@ -82,7 +81,7 @@ namespace Kernel
NonNullRef(nullPtr) = delete;
NonNullRef(T* ref)
- : fRef(ref, true)
+ : fRef(ref)
{
MUST_PASS(ref);
}
diff --git a/dev/zka/NewKit/String.hxx b/dev/zka/NewKit/String.hxx
index 184ccc42..80f3b279 100644
--- a/dev/zka/NewKit/String.hxx
+++ b/dev/zka/NewKit/String.hxx
@@ -83,7 +83,6 @@ namespace Kernel
struct StringBuilder final
{
static ErrorOr<StringView> Construct(const Char* data);
- static const Char* FromInt(const Char* fmt, int n);
static const Char* FromBool(const Char* fmt, bool n);
static const Char* Format(const Char* fmt, const Char* from);
static bool Equals(const Char* lhs, const Char* rhs);