diff --git a/modules/mono/csharp_script.cpp b/modules/mono/csharp_script.cpp index a47b44cf5c4..e002e460abd 100644 --- a/modules/mono/csharp_script.cpp +++ b/modules/mono/csharp_script.cpp @@ -1585,8 +1585,9 @@ void CSharpInstance::get_properties_state_for_reloading(List *p_properties) const { + List props; for (OrderedHashMap::ConstElement E = script->member_info.front(); E; E = E.next()) { - p_properties->push_front(E.value()); + props.push_front(E.value()); } // Call _get_property_list @@ -1609,15 +1610,19 @@ void CSharpInstance::get_property_list(List *p_properties) const { if (ret) { Array array = Array(GDMonoMarshal::mono_object_to_variant(ret)); for (int i = 0, size = array.size(); i < size; i++) { - p_properties->push_back(PropertyInfo::from_dict(array.get(i))); + props.push_back(PropertyInfo::from_dict(array.get(i))); } } - return; + break; } top = top->get_parent_class(); } + + for (List::Element *E = props.front(); E; E = E->next()) { + p_properties->push_back(E->get()); + } } Variant::Type CSharpInstance::get_property_type(const StringName &p_name, bool *r_is_valid) const { @@ -3280,8 +3285,14 @@ Ref