From 9b6f65af82d02d1ec92de1d2d6250884de20cbf3 Mon Sep 17 00:00:00 2001 From: Ignacio Etcheverry Date: Mon, 9 Oct 2017 23:50:06 +0200 Subject: Mono: Make use of ClassInfo's exposed API - BindingsGenerator only generates exposed classes. - Fix creation of managed instances of non-exposed classes. --- modules/mono/csharp_script.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'modules/mono/csharp_script.cpp') diff --git a/modules/mono/csharp_script.cpp b/modules/mono/csharp_script.cpp index 6f9e7f49df..ee36a49870 100644 --- a/modules/mono/csharp_script.cpp +++ b/modules/mono/csharp_script.cpp @@ -654,6 +654,13 @@ void *CSharpLanguage::alloc_instance_binding_data(Object *p_object) { StringName type_name = p_object->get_class_name(); + // ¯\_(ツ)_/¯ + const ClassDB::ClassInfo *classinfo = ClassDB::classes.getptr(type_name); + while (classinfo && !classinfo->exposed) + classinfo = classinfo->inherits_ptr; + ERR_FAIL_NULL_V(classinfo, NULL); + type_name = classinfo->name; + GDMonoClass *type_class = GDMonoUtils::type_get_proxy_class(type_name); ERR_FAIL_NULL_V(type_class, NULL); -- cgit v1.2.3