[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [24345] trunk/blender/source/blender: python console autocomplete would crash ( missing NULL check for pose channels)

Campbell Barton ideasman42 at gmail.com
Thu Nov 5 11:50:59 CET 2009


Revision: 24345
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=24345
Author:   campbellbarton
Date:     2009-11-05 11:50:58 +0100 (Thu, 05 Nov 2009)

Log Message:
-----------
python console autocomplete would crash (missing NULL check for pose channels)
add rna functions id.animation_data_create() and id.animation_data_clear() - works for all ID types that support animdata.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/screen/screen_context.c
    trunk/blender/source/blender/makesrna/intern/rna_ID.c

Modified: trunk/blender/source/blender/editors/screen/screen_context.c
===================================================================
--- trunk/blender/source/blender/editors/screen/screen_context.c	2009-11-05 10:09:45 UTC (rev 24344)
+++ trunk/blender/source/blender/editors/screen/screen_context.c	2009-11-05 10:50:58 UTC (rev 24345)
@@ -196,7 +196,7 @@
 		bArmature *arm= (obact) ? obact->data : NULL;
 		bPoseChannel *pchan;
 		
-		if (obact && arm) {
+		if (obact && obact->pose && arm) {
 			for (pchan= obact->pose->chanbase.first; pchan; pchan= pchan->next) {
 				/* ensure that PoseChannel is on visible layer and is not hidden in PoseMode */
 				if ((pchan->bone) && (arm->layer & pchan->bone->layer) && !(pchan->bone->flag & BONE_HIDDEN_P)) {
@@ -211,7 +211,7 @@
 		bArmature *arm= (obact) ? obact->data : NULL;
 		bPoseChannel *pchan;
 		
-		if (obact && arm) {
+		if (obact && obact->pose && arm) {
 			for (pchan= obact->pose->chanbase.first; pchan; pchan= pchan->next) {
 				/* ensure that PoseChannel is on visible layer and is not hidden in PoseMode */
 				if ((pchan->bone) && (arm->layer & pchan->bone->layer) && !(pchan->bone->flag & BONE_HIDDEN_P)) {

Modified: trunk/blender/source/blender/makesrna/intern/rna_ID.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_ID.c	2009-11-05 10:09:45 UTC (rev 24344)
+++ trunk/blender/source/blender/makesrna/intern/rna_ID.c	2009-11-05 10:50:58 UTC (rev 24345)
@@ -69,6 +69,7 @@
 
 #include "BKE_idprop.h"
 #include "BKE_library.h"
+#include "BKE_animsys.h"
 
 /* name functions that ignore the first two ID characters */
 void rna_ID_name_get(PointerRNA *ptr, char *value)
@@ -326,6 +327,15 @@
 	RNA_def_function_ui_description(func, "Create a copy of this datablock (not supported for all datablocks).");
 	parm= RNA_def_pointer(func, "id", "ID", "", "New copy of the ID.");
 	RNA_def_function_return(func, parm);
+
+	func= RNA_def_function(srna, "animation_data_create", "BKE_id_add_animdata");
+	RNA_def_function_ui_description(func, "Create animation data to this ID, note that not all ID types support this.");
+	parm= RNA_def_pointer(func, "anim_data", "AnimData", "", "New animation data or NULL.");
+	RNA_def_function_return(func, parm);
+
+	func= RNA_def_function(srna, "animation_data_clear", "BKE_free_animdata");
+	RNA_def_function_ui_description(func, "Clear animation on this this ID.");
+
 }
 
 static void rna_def_library(BlenderRNA *brna)





More information about the Bf-blender-cvs mailing list