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() {}