From 327e9a21871c0fb0646b6351fb8574a7264d8d99 Mon Sep 17 00:00:00 2001 From: Lenny Maiorani Date: Wed, 16 Mar 2022 18:26:15 -0600 Subject: [PATCH] LibCore: Change class_name to use StringView instead of char const* This helps make the overall codebase consistent. `class_name()` in `Kernel` is always `StringView`, but not elsewhere. Additionally, this results in the `strlen` (which needs to be done when printing or other operations) always being computed at compile-time. --- Userland/Libraries/LibCore/Object.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Userland/Libraries/LibCore/Object.h b/Userland/Libraries/LibCore/Object.h index 5e29bc857b..bbf1fb593b 100644 --- a/Userland/Libraries/LibCore/Object.h +++ b/Userland/Libraries/LibCore/Object.h @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -43,7 +44,7 @@ public: ObjectClassRegistration(StringView class_name, Function()> factory, ObjectClassRegistration* parent_class = nullptr); ~ObjectClassRegistration() = default; - String class_name() const { return m_class_name; } + StringView class_name() const { return m_class_name; } const ObjectClassRegistration* parent_class() const { return m_parent_class; } RefPtr construct() const { return m_factory(); } bool is_derived_from(const ObjectClassRegistration& base_class) const; @@ -66,7 +67,7 @@ enum class TimerShouldFireWhenNotVisible { #define C_OBJECT(klass) \ public: \ - virtual const char* class_name() const override { return #klass; } \ + virtual StringView class_name() const override { return #klass; } \ template \ static NonnullRefPtr construct(Args&&... args) \ { \ @@ -80,7 +81,7 @@ public: #define C_OBJECT_ABSTRACT(klass) \ public: \ - virtual const char* class_name() const override { return #klass; } + virtual StringView class_name() const override { return #klass; } class Object : public RefCounted @@ -95,7 +96,7 @@ class Object public: virtual ~Object(); - virtual const char* class_name() const = 0; + virtual StringView class_name() const = 0; const String& name() const { return m_name; } void set_name(String name) { m_name = move(name); }