Object: Add tests about the safety of tail destruction

(cherry picked from commit bb77520599)
This commit is contained in:
Pedro J. Estébanez
2024-09-12 10:52:47 +02:00
committed by Rémi Verschelde
parent 018f8be3d5
commit 3030d4b806
3 changed files with 133 additions and 0 deletions

View File

@@ -0,0 +1,50 @@
# https://github.com/godotengine/godot/issues/75658
class MyObj:
var callable: Callable
func run():
callable.call()
var prop:
set(value):
callable.call()
get:
callable.call()
return 0
func _on_some_signal():
callable.call()
func _init(p_callable: Callable):
self.callable = p_callable
signal some_signal
var obj: MyObj
func test():
# Call.
obj = MyObj.new(nullify_obj)
obj.run()
print(obj)
# Get.
obj = MyObj.new(nullify_obj)
var _aux = obj.prop
print(obj)
# Set.
obj = MyObj.new(nullify_obj)
obj.prop = 1
print(obj)
# Signal handling.
obj = MyObj.new(nullify_obj)
@warning_ignore("return_value_discarded")
some_signal.connect(obj._on_some_signal)
some_signal.emit()
print(obj)
func nullify_obj():
obj = null

View File

@@ -0,0 +1,5 @@
GDTEST_OK
<null>
<null>
<null>
<null>