diff options
author | RĂ©mi Verschelde <remi@verschelde.fr> | 2021-10-24 21:17:58 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-24 21:17:58 +0200 |
commit | 6ccc3e4d87e62e6bc328b4beff8c89cdeec1aab9 (patch) | |
tree | 74351b0b91e2263d2725d0892071ee6d93268469 /modules | |
parent | 80801e5f66d180f15d151dd50b6d7731208a4dd5 (diff) | |
parent | c6ecc04114c17b60840fa12d45e2c9ce14fe9f56 (diff) |
Merge pull request #54130 from raulsntos/csharp-exports
Keep order for C# exported members
Diffstat (limited to 'modules')
-rw-r--r-- | modules/mono/csharp_script.cpp | 16 | ||||
-rw-r--r-- | modules/mono/csharp_script.h | 4 |
2 files changed, 10 insertions, 10 deletions
diff --git a/modules/mono/csharp_script.cpp b/modules/mono/csharp_script.cpp index 26a04a358d..531f600c3f 100644 --- a/modules/mono/csharp_script.cpp +++ b/modules/mono/csharp_script.cpp @@ -1813,8 +1813,8 @@ void CSharpInstance::get_event_signals_state_for_reloading(List<Pair<StringName, } void CSharpInstance::get_property_list(List<PropertyInfo> *p_properties) const { - for (const KeyValue<StringName, PropertyInfo> &E : script->member_info) { - p_properties->push_back(E.value); + for (OrderedHashMap<StringName, PropertyInfo>::ConstElement E = script->member_info.front(); E; E = E.next()) { + p_properties->push_front(E.value()); } // Call _get_property_list @@ -1839,10 +1839,9 @@ void CSharpInstance::get_property_list(List<PropertyInfo> *p_properties) const { for (int i = 0, size = array.size(); i < size; i++) { p_properties->push_back(PropertyInfo::from_dict(array.get(i))); } - return; } - break; + return; } top = top->get_parent_class(); @@ -1865,8 +1864,9 @@ Variant::Type CSharpInstance::get_property_type(const StringName &p_name, bool * } void CSharpInstance::get_method_list(List<MethodInfo> *p_list) const { - if (!script->is_valid() || !script->script_class) + if (!script->is_valid() || !script->script_class) { return; + } GD_MONO_SCOPE_THREAD_ATTACH; @@ -3499,9 +3499,9 @@ Ref<Script> CSharpScript::get_base_script() const { return Ref<Script>(); } -void CSharpScript::get_script_property_list(List<PropertyInfo> *p_list) const { - for (const KeyValue<StringName, PropertyInfo> &E : member_info) { - p_list->push_back(E.value); +void CSharpScript::get_script_property_list(List<PropertyInfo> *r_list) const { + for (OrderedHashMap<StringName, PropertyInfo>::ConstElement E = member_info.front(); E; E = E.next()) { + r_list->push_front(E.value()); } } diff --git a/modules/mono/csharp_script.h b/modules/mono/csharp_script.h index afc17f694a..c998d9c1e4 100644 --- a/modules/mono/csharp_script.h +++ b/modules/mono/csharp_script.h @@ -154,7 +154,7 @@ private: Set<StringName> exported_members_names; #endif - Map<StringName, PropertyInfo> member_info; + OrderedHashMap<StringName, PropertyInfo> member_info; void _clear(); @@ -215,7 +215,7 @@ public: void get_script_signal_list(List<MethodInfo> *r_signals) const override; bool get_property_default_value(const StringName &p_property, Variant &r_value) const override; - void get_script_property_list(List<PropertyInfo> *p_list) const override; + void get_script_property_list(List<PropertyInfo> *r_list) const override; void update_exports() override; void get_members(Set<StringName> *p_members) override; |