Fix Ref leak when using Godot getters

This commit is contained in:
Marc Gilleron
2018-01-24 23:16:00 +01:00
parent 9ed6edaae1
commit ac0679eb1a
2 changed files with 11 additions and 2 deletions

View File

@@ -346,7 +346,7 @@ def generate_class_implementation(icalls, used_classes, c):
if is_enum(method["return_type"]):
return_statement += "return (" + remove_enum_prefix(method["return_type"]) + ") "
elif is_reference_type(method["return_type"]):
return_statement += "return Ref<" + strip_name(method["return_type"]) + ">(";
return_statement += "return Ref<" + strip_name(method["return_type"]) + ">::__internal_constructor(";
else:
return_statement += "return " + ("(" + strip_name(method["return_type"]) + " *) " if is_class_type(method["return_type"]) else "")
else:
@@ -414,7 +414,7 @@ def generate_class_implementation(icalls, used_classes, c):
cast = ""
if is_class_type(method["return_type"]):
if is_reference_type(method["return_type"]):
cast += "Ref<" + stip_name(method["return_type"]) + ">::__internal_constructor(__result);"
cast += "Ref<" + strip_name(method["return_type"]) + ">::__internal_constructor(__result);"
else:
cast += "(" + strip_name(method["return_type"]) + " *) (Object *) __result;"
else: