diff options
author | Ignacio Etcheverry <ignalfonsore@gmail.com> | 2019-03-07 22:32:08 +0100 |
---|---|---|
committer | Ignacio Etcheverry <ignalfonsore@gmail.com> | 2019-03-07 22:38:31 +0100 |
commit | c5f8b0960a9384b63d11c8dc99c2a0d6e299c041 (patch) | |
tree | c1ac164f53302efbc08512338e2a19597e938471 | |
parent | 4c0b0a6bdd3c87220ab0d79ba647d5bdd843ce6c (diff) |
Mono: Fix crash with exported field of custom Reference derived type
-rw-r--r-- | modules/mono/csharp_script.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/modules/mono/csharp_script.cpp b/modules/mono/csharp_script.cpp index 200ab51c7c..619d2aa3b4 100644 --- a/modules/mono/csharp_script.cpp +++ b/modules/mono/csharp_script.cpp @@ -2210,8 +2210,11 @@ bool CSharpScript::_get_member_export(GDMonoClass *p_class, IMonoClassMember *p_ hint_string = name_only_hint_string; } } else if (variant_type == Variant::OBJECT && CACHED_CLASS(GodotReference)->is_assignable_from(type.type_class)) { + GDMonoClass *field_native_class = GDMonoUtils::get_class_native_base(type.type_class); + CRASH_COND(field_native_class == NULL); + hint = PROPERTY_HINT_RESOURCE_TYPE; - hint_string = NATIVE_GDMONOCLASS_NAME(type.type_class); + hint_string = NATIVE_GDMONOCLASS_NAME(field_native_class); } else { hint = PropertyHint(CACHED_FIELD(ExportAttribute, hint)->get_int_value(attr)); hint_string = CACHED_FIELD(ExportAttribute, hintString)->get_string_value(attr); |