mirror of
https://github.com/godotengine/godot.git
synced 2024-11-27 09:16:35 +08:00
Merge pull request #35201 from bojidar-bg/27582-gdfunction-validate-instance
Validate instances of objects before trying to check their type in GDScript
This commit is contained in:
commit
f2aa99a8e2
@ -76,14 +76,17 @@ struct GDScriptDataType {
|
||||
if (p_variant.get_type() != Variant::OBJECT) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Object *obj = p_variant.operator Object *();
|
||||
if (obj) {
|
||||
if (!ClassDB::is_parent_class(obj->get_class_name(), native_type)) {
|
||||
// Try with underscore prefix
|
||||
StringName underscore_native_type = "_" + native_type;
|
||||
if (!ClassDB::is_parent_class(obj->get_class_name(), underscore_native_type)) {
|
||||
return false;
|
||||
}
|
||||
if (!obj || !ObjectDB::instance_validate(obj)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!ClassDB::is_parent_class(obj->get_class_name(), native_type)) {
|
||||
// Try with underscore prefix
|
||||
StringName underscore_native_type = "_" + native_type;
|
||||
if (!ClassDB::is_parent_class(obj->get_class_name(), underscore_native_type)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
@ -96,7 +99,12 @@ struct GDScriptDataType {
|
||||
if (p_variant.get_type() != Variant::OBJECT) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Object *obj = p_variant.operator Object *();
|
||||
if (!obj || !ObjectDB::instance_validate(obj)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Ref<Script> base = obj && obj->get_script_instance() ? obj->get_script_instance()->get_script() : NULL;
|
||||
bool valid = false;
|
||||
while (base.is_valid()) {
|
||||
|
Loading…
Reference in New Issue
Block a user