[Bf-blender-cvs] [9df920be2e4] greasepencil-object: WIP - Some debug code to try to figure out why artists are getting random crashes here

Joshua Leung noreply at git.blender.org
Thu Dec 7 07:40:43 CET 2017


Commit: 9df920be2e401983a087dbedb7879899238b96b9
Author: Joshua Leung
Date:   Thu Dec 7 19:40:09 2017 +1300
Branches: greasepencil-object
https://developer.blender.org/rB9df920be2e401983a087dbedb7879899238b96b9

WIP - Some debug code to try to figure out why artists are getting random crashes here

Start blender with the debug (-d) flag to see debug prints for
cases of unhandled updates.

===================================================================

M	source/blender/editors/animation/anim_deps.c
M	source/blender/editors/space_action/action_select.c

===================================================================

diff --git a/source/blender/editors/animation/anim_deps.c b/source/blender/editors/animation/anim_deps.c
index abdc6450abd..252d8769fa0 100644
--- a/source/blender/editors/animation/anim_deps.c
+++ b/source/blender/editors/animation/anim_deps.c
@@ -432,6 +432,15 @@ void ANIM_animdata_update(bAnimContext *ac, ListBase *anim_data)
 				ANIM_list_elem_update(ac->scene, ale);
 			}
 		}
+		else if (ale->update) {
+			if (G.debug & G_DEBUG) {
+				printf("%s: Unhandled animchannel updates (%d) for type=%d (%p)\n",
+				       __func__, ale->update, ale->type, ale->data);
+			}
+			
+			/* Prevent crashes in cases where it can't be handled */
+			ale->update = 0;
+		}
 
 		BLI_assert(ale->update == 0);
 	}
diff --git a/source/blender/editors/space_action/action_select.c b/source/blender/editors/space_action/action_select.c
index e5c384d8032..b1ba3f9e96f 100644
--- a/source/blender/editors/space_action/action_select.c
+++ b/source/blender/editors/space_action/action_select.c
@@ -1497,6 +1497,7 @@ static void mouse_action_keys(bAnimContext *ac, const int mval[2], short select_
 		
 		/* remove active channel from list of channels for separate treatment (since it's needed later on) */
 		BLI_remlink(&anim_data, ale);
+		ale->next = ale->prev = NULL;
 		
 		/* cleanup temporary lists */
 		BLI_dlrbTree_free(&anim_keys);



More information about the Bf-blender-cvs mailing list