[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [31294] trunk/blender/source/blender/ editors/space_nla/nla_channels.c: bugfix: deleting NLA tracks with a keyframed text3d obdata would free the curve, missing type checks.

Campbell Barton ideasman42 at gmail.com
Thu Aug 12 18:39:23 CEST 2010


Revision: 31294
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=31294
Author:   campbellbarton
Date:     2010-08-12 18:39:23 +0200 (Thu, 12 Aug 2010)

Log Message:
-----------
bugfix: deleting NLA tracks with a keyframed text3d obdata would free the curve, missing type checks.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_nla/nla_channels.c

Modified: trunk/blender/source/blender/editors/space_nla/nla_channels.c
===================================================================
--- trunk/blender/source/blender/editors/space_nla/nla_channels.c	2010-08-12 16:15:50 UTC (rev 31293)
+++ trunk/blender/source/blender/editors/space_nla/nla_channels.c	2010-08-12 16:39:23 UTC (rev 31294)
@@ -384,21 +384,23 @@
 	
 	/* add tracks... */
 	for (ale= anim_data.first; ale; ale= ale->next) {
-		NlaTrack *nlt= (NlaTrack *)ale->data;
-		AnimData *adt= ale->adt;
-		
-		/* check if just adding a new track above this one,
-		 * or whether we're adding a new one to the top of the stack that this one belongs to
-		 */
-		if (above_sel) {
-			/* just add a new one above this one */
-			add_nlatrack(adt, nlt);
+		if(ale->type == ANIMTYPE_NLATRACK) {
+			NlaTrack *nlt= (NlaTrack *)ale->data;
+			AnimData *adt= ale->adt;
+			
+			/* check if just adding a new track above this one,
+			 * or whether we're adding a new one to the top of the stack that this one belongs to
+			 */
+			if (above_sel) {
+				/* just add a new one above this one */
+				add_nlatrack(adt, nlt);
+			}
+			else if ((lastAdt == NULL) || (adt != lastAdt)) {
+				/* add one track to the top of the owning AnimData's stack, then don't add anymore to this stack */
+				add_nlatrack(adt, NULL);
+				lastAdt= adt;
+			}
 		}
-		else if ((lastAdt == NULL) || (adt != lastAdt)) {
-			/* add one track to the top of the owning AnimData's stack, then don't add anymore to this stack */
-			add_nlatrack(adt, NULL);
-			lastAdt= adt;
-		}
 	}
 	
 	/* free temp data */
@@ -450,11 +452,13 @@
 	
 	/* delete tracks */
 	for (ale= anim_data.first; ale; ale= ale->next) {
-		NlaTrack *nlt= (NlaTrack *)ale->data;
-		AnimData *adt= ale->adt;
-		
-		/* call delete on this track - deletes all strips too */
-		free_nlatrack(&adt->nla_tracks, nlt);
+		if(ale->type == ANIMTYPE_NLATRACK) {
+			NlaTrack *nlt= (NlaTrack *)ale->data;
+			AnimData *adt= ale->adt;
+			
+			/* call delete on this track - deletes all strips too */
+			free_nlatrack(&adt->nla_tracks, nlt);
+		}
 	}
 	
 	/* free temp data */





More information about the Bf-blender-cvs mailing list