Fix T70695: Scene crashes Blender on open.
authorBastien Montagne <montagne29@wanadoo.fr>
Fri, 11 Oct 2019 14:18:37 +0000 (16:18 +0200)
committerBastien Montagne <montagne29@wanadoo.fr>
Fri, 11 Oct 2019 16:54:15 +0000 (18:54 +0200)
Note that this commit fixes the crash itself, but actual issue is *how*
that situation could happen (having insert override operation with local
'source' overriding data-block with an empty bone constraints stack...).

source/blender/makesrna/intern/rna_pose.c

index 0f8f8d39c418ceed12745e6e58a0fba62be0caa4..8c4b7dd52d9c21ae571bc4a04dd0cb24b0f1099c 100644 (file)
@@ -648,7 +648,7 @@ bool rna_PoseChannel_constraints_override_apply(Main *UNUSED(bmain),
 
   /* Remember that insertion operations are defined and stored in correct order, which means that
    * even if we insert several items in a row, we always insert first one, then second one, etc.
-   * So we should always find 'anchor' constraint in both _src *and* _dst> */
+   * So we should always find 'anchor' constraint in both _src *and* _dst */
   bConstraint *con_anchor = NULL;
   if (opop->subitem_local_name && opop->subitem_local_name[0]) {
     con_anchor = BLI_findstring(
@@ -669,7 +669,11 @@ bool rna_PoseChannel_constraints_override_apply(Main *UNUSED(bmain),
   }
   con_src = con_src ? con_src->next : pchan_src->constraints.first;
 
-  BLI_assert(con_src != NULL);
+  if (con_src == NULL) {
+    printf("%s: Could not find constraint to insert, doing nothing...\n", __func__);
+    BLI_assert(0);
+    return false;
+  }
 
   bConstraint *con_dst = BKE_constraint_duplicate_ex(con_src, 0, true);