AnimationMixer: Validate ObjectID before blend in case the object was freed
Works around #85365, but it's likely only a partial fix. The proper fix would be to remove the Object pointer from the TrackCache and always go back to the ObjectID before doing operations like this.
This commit is contained in:
parent
f82bf35a03
commit
a363269479
1 changed files with 6 additions and 1 deletions
|
@ -1708,7 +1708,12 @@ void AnimationMixer::_blend_apply() {
|
|||
}
|
||||
}
|
||||
}
|
||||
t->object->set_indexed(t->subpath, Animation::cast_from_blendwise(t->value, t->init_value.get_type()));
|
||||
|
||||
// t->object isn't safe here, get instance from id (GH-85365).
|
||||
Object *obj = ObjectDB::get_instance(t->object_id);
|
||||
if (obj) {
|
||||
obj->set_indexed(t->subpath, Animation::cast_from_blendwise(t->value, t->init_value.get_type()));
|
||||
}
|
||||
|
||||
} break;
|
||||
case Animation::TYPE_BEZIER: {
|
||||
|
|
Loading…
Reference in a new issue