Merge pull request #73544 from mashumafi/fix-func-arg-null

Fix: Func with typed args error when arg is null
This commit is contained in:
Rémi Verschelde 2023-02-20 15:41:40 +01:00
commit ea2bc9795c
No known key found for this signature in database
GPG key ID: C3336907360768E1
3 changed files with 36 additions and 4 deletions

View file

@ -105,9 +105,10 @@ public:
return false;
}
Object *obj = p_variant.get_validated_object();
bool was_freed = false;
Object *obj = p_variant.get_validated_object_with_check(was_freed);
if (!obj) {
return false;
return !was_freed;
}
if (!ClassDB::is_parent_class(obj->get_class_name(), native_type)) {
@ -124,9 +125,10 @@ public:
return false;
}
Object *obj = p_variant.get_validated_object();
bool was_freed = false;
Object *obj = p_variant.get_validated_object_with_check(was_freed);
if (!obj) {
return false;
return !was_freed;
}
Ref<Script> base = obj && obj->get_script_instance() ? obj->get_script_instance()->get_script() : nullptr;

View file

@ -0,0 +1,27 @@
# https://github.com/godotengine/godot/issues/72967
class CustomNode:
extends Node
static func test_custom_node(n: CustomNode):
if not n:
print("null node")
func test():
test_typed_argument_is_null()
func get_custom_node() -> CustomNode:
return null
func test_typed_argument_is_null():
var node: Node = Node.new()
print_node_name(node.get_parent())
node.free()
test_custom_node()
func test_custom_node():
CustomNode.test_custom_node(get_custom_node())
func print_node_name(n: Node):
if not n:
print("null node")

View file

@ -0,0 +1,3 @@
GDTEST_OK
null node
null node