diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2022-12-09 18:06:48 +0100 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2022-12-09 18:06:48 +0100 |
commit | 907298d673723d7d957c382647dedde66c29ecd2 (patch) | |
tree | 62537ac5e18b24834e8231a57a73e20ea4ec1535 /core/variant/variant.cpp | |
parent | 597e0c0fb9c4bd725dae1fca75875ec4c936079f (diff) | |
parent | e79be6ce07ed8c89011f759ecade070a3bd5a806 (diff) | |
download | redot-engine-907298d673723d7d957c382647dedde66c29ecd2.tar.gz |
Merge pull request #68747 from rune-scape/rune-stringname-unification
GDScript: Unify StringName and String
Diffstat (limited to 'core/variant/variant.cpp')
-rw-r--r-- | core/variant/variant.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/core/variant/variant.cpp b/core/variant/variant.cpp index 8be1cda37c..39b7cbee0d 100644 --- a/core/variant/variant.cpp +++ b/core/variant/variant.cpp @@ -3491,6 +3491,19 @@ bool Variant::hash_compare(const Variant &p_variant, int recursion_count) const } } +bool StringLikeVariantComparator::compare(const Variant &p_lhs, const Variant &p_rhs) { + if (p_lhs.hash_compare(p_rhs)) { + return true; + } + if (p_lhs.get_type() == Variant::STRING && p_rhs.get_type() == Variant::STRING_NAME) { + return *VariantInternal::get_string(&p_lhs) == *VariantInternal::get_string_name(&p_rhs); + } + if (p_lhs.get_type() == Variant::STRING_NAME && p_rhs.get_type() == Variant::STRING) { + return *VariantInternal::get_string_name(&p_lhs) == *VariantInternal::get_string(&p_rhs); + } + return false; +} + bool Variant::is_ref_counted() const { return type == OBJECT && _get_obj().id.is_ref_counted(); } |