Skip to content

Commit

Permalink
Merge pull request #50753 from Faless/obj/4.x_stringname_meta
Browse files Browse the repository at this point in the history
Make Object "meta" functions take StringName.
  • Loading branch information
akien-mga authored Jul 22, 2021
2 parents 90aab04 + 1147fa5 commit 5156703
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 19 deletions.
14 changes: 7 additions & 7 deletions core/object/object.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -922,11 +922,11 @@ Variant Object::get_script() const {
return script;
}

bool Object::has_meta(const String &p_name) const {
bool Object::has_meta(const StringName &p_name) const {
return metadata.has(p_name);
}

void Object::set_meta(const String &p_name, const Variant &p_value) {
void Object::set_meta(const StringName &p_name, const Variant &p_value) {
if (p_value.get_type() == Variant::NIL) {
metadata.erase(p_name);
return;
Expand All @@ -935,12 +935,12 @@ void Object::set_meta(const String &p_name, const Variant &p_value) {
metadata[p_name] = p_value;
}

Variant Object::get_meta(const String &p_name) const {
Variant Object::get_meta(const StringName &p_name) const {
ERR_FAIL_COND_V_MSG(!metadata.has(p_name), Variant(), "The object does not have any 'meta' values with the key '" + p_name + "'.");
return metadata[p_name];
}

void Object::remove_meta(const String &p_name) {
void Object::remove_meta(const StringName &p_name) {
metadata.erase(p_name);
}

Expand All @@ -964,8 +964,8 @@ Array Object::_get_method_list_bind() const {
return ret;
}

Vector<String> Object::_get_meta_list_bind() const {
Vector<String> _metaret;
Vector<StringName> Object::_get_meta_list_bind() const {
Vector<StringName> _metaret;

List<Variant> keys;
metadata.get_key_list(&keys);
Expand All @@ -976,7 +976,7 @@ Vector<String> Object::_get_meta_list_bind() const {
return _metaret;
}

void Object::get_meta_list(List<String> *p_list) const {
void Object::get_meta_list(List<StringName> *p_list) const {
List<Variant> keys;
metadata.get_key_list(&keys);
for (List<Variant>::Element *E = keys.front(); E; E = E->next()) {
Expand Down
12 changes: 6 additions & 6 deletions core/object/object.h
Original file line number Diff line number Diff line change
Expand Up @@ -615,7 +615,7 @@ class Object {
return &_class_name;
}

Vector<String> _get_meta_list_bind() const;
Vector<StringName> _get_meta_list_bind() const;
Array _get_property_list_bind() const;
Array _get_method_list_bind() const;

Expand Down Expand Up @@ -743,11 +743,11 @@ class Object {

/* SCRIPT */

bool has_meta(const String &p_name) const;
void set_meta(const String &p_name, const Variant &p_value);
void remove_meta(const String &p_name);
Variant get_meta(const String &p_name) const;
void get_meta_list(List<String> *p_list) const;
bool has_meta(const StringName &p_name) const;
void set_meta(const StringName &p_name, const Variant &p_value);
void remove_meta(const StringName &p_name);
Variant get_meta(const StringName &p_name) const;
void get_meta_list(List<StringName> *p_list) const;

#ifdef TOOLS_ENABLED
void set_edited(bool p_edited);
Expand Down
8 changes: 4 additions & 4 deletions doc/classes/Object.xml
Original file line number Diff line number Diff line change
Expand Up @@ -400,7 +400,7 @@
<method name="get_meta" qualifiers="const">
<return type="Variant">
</return>
<argument index="0" name="name" type="String">
<argument index="0" name="name" type="StringName">
</argument>
<description>
Returns the object's metadata entry for the given [code]name[/code].
Expand Down Expand Up @@ -454,7 +454,7 @@
<method name="has_meta" qualifiers="const">
<return type="bool">
</return>
<argument index="0" name="name" type="String">
<argument index="0" name="name" type="StringName">
</argument>
<description>
Returns [code]true[/code] if a metadata entry is found with the given [code]name[/code].
Expand Down Expand Up @@ -543,7 +543,7 @@
<method name="remove_meta">
<return type="void">
</return>
<argument index="0" name="name" type="String">
<argument index="0" name="name" type="StringName">
</argument>
<description>
Removes a given entry from the object's metadata. See also [method set_meta].
Expand Down Expand Up @@ -619,7 +619,7 @@
<method name="set_meta">
<return type="void">
</return>
<argument index="0" name="name" type="String">
<argument index="0" name="name" type="StringName">
</argument>
<argument index="1" name="value" type="Variant">
</argument>
Expand Down
4 changes: 2 additions & 2 deletions tests/test_object.h
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ TEST_CASE("[Object] Metadata") {
Color(object.get_meta(meta_path)).is_equal_approx(Color(0, 1, 0)),
"The returned object metadata after setting should match the expected value.");

List<String> meta_list;
List<StringName> meta_list;
object.get_meta_list(&meta_list);
CHECK_MESSAGE(
meta_list.size() == 1,
Expand All @@ -154,7 +154,7 @@ TEST_CASE("[Object] Metadata") {
"The returned object metadata after removing should match the expected value.");
ERR_PRINT_ON;

List<String> meta_list2;
List<StringName> meta_list2;
object.get_meta_list(&meta_list2);
CHECK_MESSAGE(
meta_list2.size() == 0,
Expand Down

0 comments on commit 5156703

Please sign in to comment.