Merge branch 'blender-v4.5-release'
This commit is contained in:
@@ -4235,6 +4235,13 @@ void BKE_animsys_eval_driver(Depsgraph *depsgraph, ID *id, int driver_index, FCu
|
||||
fcu = static_cast<FCurve *>(BLI_findlink(&adt->drivers, driver_index));
|
||||
}
|
||||
|
||||
if (!fcu) {
|
||||
/* Trying to evaluate a driver that does no longer exist. Potentially missing a call to
|
||||
* DEG_relations_tag_update. */
|
||||
BLI_assert_unreachable();
|
||||
return;
|
||||
}
|
||||
|
||||
DEG_debug_print_eval_subdata_index(
|
||||
depsgraph, __func__, id->name, id, "fcu", fcu->rna_path, fcu, fcu->array_index);
|
||||
|
||||
|
||||
@@ -398,6 +398,7 @@ static void rna_PoseChannel_constraints_remove(
|
||||
con_ptr->invalidate();
|
||||
|
||||
blender::ed::object::constraint_update(bmain, ob);
|
||||
DEG_relations_tag_update(bmain);
|
||||
|
||||
/* XXX(@ideasman42): is this really needed? */
|
||||
BKE_constraints_active_set(&pchan->constraints, nullptr);
|
||||
|
||||
@@ -236,6 +236,11 @@ class SubDataDriverRemovalTest(AbstractEmptyDriverTest, unittest.TestCase):
|
||||
self.assertEqual(len(pose_bone.constraints), 1)
|
||||
arm_ob.driver_add('pose.bones["test"].constraints["test"].distance')
|
||||
self.assertEqual(len(arm_ob.animation_data.drivers), 1)
|
||||
|
||||
# To do a proper test, the depsgraph needs to be evaluated between adding
|
||||
# the data and removing it. This causes depsgraph nodes to be built, which
|
||||
# have to be removed as well. See #141243
|
||||
bpy.context.evaluated_depsgraph_get()
|
||||
pose_bone.constraints.remove(constraint)
|
||||
self.assertEqual(len(pose_bone.constraints), 0)
|
||||
self.assertEqual(len(arm_ob.animation_data.drivers), 0,
|
||||
|
||||
Reference in New Issue
Block a user