summaryrefslogtreecommitdiffstats
path: root/core/variant/variant.cpp
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2022-12-09 18:06:48 +0100
committerRémi Verschelde <rverschelde@gmail.com>2022-12-09 18:06:48 +0100
commit907298d673723d7d957c382647dedde66c29ecd2 (patch)
tree62537ac5e18b24834e8231a57a73e20ea4ec1535 /core/variant/variant.cpp
parent597e0c0fb9c4bd725dae1fca75875ec4c936079f (diff)
parente79be6ce07ed8c89011f759ecade070a3bd5a806 (diff)
downloadredot-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.cpp13
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();
}