Merge pull request #81127 from KoBeWi/errors_begone
Prevent errors if Tween callback's object is freed
This commit is contained in:
commit
922689c801
3 changed files with 10 additions and 0 deletions
|
@ -5,6 +5,7 @@
|
|||
</brief_description>
|
||||
<description>
|
||||
[CallbackTweener] is used to call a method in a tweening sequence. See [method Tween.tween_callback] for more usage information.
|
||||
The tweener will finish automatically if the callback's target object is freed.
|
||||
[b]Note:[/b] [method Tween.tween_callback] is the only correct way to create [CallbackTweener]. Any [CallbackTweener] created manually will not function correctly.
|
||||
</description>
|
||||
<tutorials>
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
</brief_description>
|
||||
<description>
|
||||
[MethodTweener] is similar to a combination of [CallbackTweener] and [PropertyTweener]. It calls a method providing an interpolated value as a parameter. See [method Tween.tween_method] for more usage information.
|
||||
The tweener will finish automatically if the callback's target object is freed.
|
||||
[b]Note:[/b] [method Tween.tween_method] is the only correct way to create [MethodTweener]. Any [MethodTweener] created manually will not function correctly.
|
||||
</description>
|
||||
<tutorials>
|
||||
|
|
|
@ -675,6 +675,10 @@ bool CallbackTweener::step(double &r_delta) {
|
|||
return false;
|
||||
}
|
||||
|
||||
if (!callback.get_object()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
elapsed_time += r_delta;
|
||||
if (elapsed_time >= delay) {
|
||||
Variant result;
|
||||
|
@ -736,6 +740,10 @@ bool MethodTweener::step(double &r_delta) {
|
|||
return false;
|
||||
}
|
||||
|
||||
if (!callback.get_object()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
elapsed_time += r_delta;
|
||||
|
||||
if (elapsed_time < delay) {
|
||||
|
|
Loading…
Reference in a new issue