From 8c4e674770c0eaecae55ca5433d72b18e196956f Mon Sep 17 00:00:00 2001 From: Lukas Tenbrink Date: Mon, 16 Dec 2024 18:58:22 +0100 Subject: [PATCH] Add move semantics (constructor, assignment) to `StringName`. --- core/string/string_name.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/core/string/string_name.h b/core/string/string_name.h index 957f64492d4..743eab9d943 100644 --- a/core/string/string_name.h +++ b/core/string/string_name.h @@ -188,8 +188,22 @@ public: }; StringName &operator=(const StringName &p_name); + StringName &operator=(StringName &&p_name) { + if (_data == p_name._data) { + return *this; + } + + unref(); + _data = p_name._data; + p_name._data = nullptr; + return *this; + } StringName(const char *p_name, bool p_static = false); StringName(const StringName &p_name); + StringName(StringName &&p_name) { + _data = p_name._data; + p_name._data = nullptr; + } StringName(const String &p_name, bool p_static = false); StringName(const StaticCString &p_static_string, bool p_static = false); StringName() {}