CSharpScript should not own method infos of the base class

This commit is contained in:
huisedenanhai 2023-05-20 20:39:59 +08:00 committed by Paul Joannon
parent 7ebc866418
commit c313312ff5
No known key found for this signature in database
GPG key ID: C12F69B0AD0390DD
2 changed files with 4 additions and 13 deletions

View file

@ -1596,14 +1596,7 @@ void CSharpInstance::get_method_list(List<MethodInfo> *p_list) const {
return; return;
} }
const CSharpScript *top = script.ptr(); script->get_script_method_list(p_list);
while (top != nullptr) {
for (const CSharpScript::CSharpMethodInfo &E : top->methods) {
p_list->push_back(E.method_info);
}
top = top->base_script.ptr();
}
} }
bool CSharpInstance::has_method(const StringName &p_method) const { bool CSharpInstance::has_method(const StringName &p_method) const {

View file

@ -804,11 +804,11 @@ namespace Godot.Bridge
using var methods = new Collections.Array(); using var methods = new Collections.Array();
Type? top = scriptType; 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) if (methodList != null)
{ {
@ -859,8 +859,6 @@ namespace Godot.Bridge
methods.Add(methodInfo); methods.Add(methodInfo);
} }
} }
top = top.BaseType;
} }
*outMethodsDest = NativeFuncs.godotsharp_array_new_copy( *outMethodsDest = NativeFuncs.godotsharp_array_new_copy(