diff --git a/modules/mono/csharp_script.cpp b/modules/mono/csharp_script.cpp index ff2ca9f0ce4..1b1cd3ae4a2 100644 --- a/modules/mono/csharp_script.cpp +++ b/modules/mono/csharp_script.cpp @@ -1596,14 +1596,7 @@ void CSharpInstance::get_method_list(List *p_list) const { return; } - const CSharpScript *top = script.ptr(); - while (top != nullptr) { - for (const CSharpScript::CSharpMethodInfo &E : top->methods) { - p_list->push_back(E.method_info); - } - - top = top->base_script.ptr(); - } + script->get_script_method_list(p_list); } bool CSharpInstance::has_method(const StringName &p_method) const { diff --git a/modules/mono/glue/GodotSharp/GodotSharp/Core/Bridge/ScriptManagerBridge.cs b/modules/mono/glue/GodotSharp/GodotSharp/Core/Bridge/ScriptManagerBridge.cs index 1b23276bbd7..a501f73daaa 100644 --- a/modules/mono/glue/GodotSharp/GodotSharp/Core/Bridge/ScriptManagerBridge.cs +++ b/modules/mono/glue/GodotSharp/GodotSharp/Core/Bridge/ScriptManagerBridge.cs @@ -804,11 +804,11 @@ namespace Godot.Bridge using var methods = new Collections.Array(); Type? top = scriptType; - Type native = GodotObject.InternalGetClassNativeBase(top); + Type native = GodotObject.InternalGetClassNativeBase(scriptType); - while (top != null && top != native) + if (scriptType != null && scriptType != native) { - var methodList = GetMethodListForType(top); + var methodList = GetMethodListForType(scriptType); if (methodList != null) { @@ -859,8 +859,6 @@ namespace Godot.Bridge methods.Add(methodInfo); } } - - top = top.BaseType; } *outMethodsDest = NativeFuncs.godotsharp_array_new_copy(