[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [12289] trunk/blender/source/blender/src/ editseq.c: (own mistake) transform markers wasnt working, bad memory use.

Campbell Barton cbarton at metavr.com
Thu Oct 18 22:43:39 CEST 2007


Revision: 12289
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=12289
Author:   campbellbarton
Date:     2007-10-18 22:43:39 +0200 (Thu, 18 Oct 2007)

Log Message:
-----------
(own mistake) transform markers wasnt working, bad memory use.

Modified Paths:
--------------
    trunk/blender/source/blender/src/editseq.c

Modified: trunk/blender/source/blender/src/editseq.c
===================================================================
--- trunk/blender/source/blender/src/editseq.c	2007-10-18 20:03:12 UTC (rev 12288)
+++ trunk/blender/source/blender/src/editseq.c	2007-10-18 20:43:39 UTC (rev 12289)
@@ -2738,7 +2738,7 @@
 	int j; /* loop on snap_points */
 	
 	/* for markers */
-	int *oldframe, totmark, a;
+	int *oldframe = NULL, totmark, a;
 	TimeMarker *marker;
 	
 	
@@ -2795,22 +2795,23 @@
 		for(marker= G.scene->markers.first; marker; marker= marker->next) {
 			if(marker->flag & SELECT) totmark++;
 		}
-		
-		oldframe= MEM_mallocN(totmark*sizeof(int), "marker array");
-		for(a=0, marker= G.scene->markers.first; marker; marker= marker->next) {
-			if(marker->flag & SELECT) {
-				if (mode=='e') {
-					
-					/* when extending, invalidate markers on the other side by using an invalid frame value */
-					if ((side == 'L' && marker->frame > cfra) || (side == 'R' && marker->frame < cfra)) {
-						oldframe[a] = MAXFRAME+1;
+		if (totmark) {
+			oldframe= MEM_mallocN(totmark*sizeof(int), "marker array");
+			for(a=0, marker= G.scene->markers.first; marker; marker= marker->next) {
+				if(marker->flag & SELECT) {
+					if (mode=='e') {
+						
+						/* when extending, invalidate markers on the other side by using an invalid frame value */
+						if ((side == 'L' && marker->frame > cfra) || (side == 'R' && marker->frame < cfra)) {
+							oldframe[a] = MAXFRAME+1;
+						} else {
+							oldframe[a]= marker->frame;
+						}
 					} else {
 						oldframe[a]= marker->frame;
 					}
-				} else {
-					oldframe[a]= marker->frame;
+					a++;
 				}
-				a++;
 			}
 		}
 	}
@@ -3093,11 +3094,13 @@
 				
 				/* markers */
 				if (sseq->flag & SEQ_MARKER_TRANS) {
-					for(a=0, marker= G.scene->markers.first; marker; marker= marker->next) {
-						if(marker->flag & SELECT && (oldframe[a] != MAXFRAME+1)) {
-							marker->frame= oldframe[a] + ix;
+					for(a=0, marker= G.scene->markers.first; marker; marker= marker->next) {\
+						if (marker->flag & SELECT) {
+							if(oldframe[a] != MAXFRAME+1) {
+								marker->frame= oldframe[a] + ix;
+							}
+							a++;
 						}
-						a++;
 					}
 				}
 			}
@@ -3194,10 +3197,12 @@
 		/* Markers */
 		if (sseq->flag & SEQ_MARKER_TRANS) {
 			for(a=0, marker= G.scene->markers.first; marker; marker= marker->next) {
-				if(marker->flag & SELECT && (oldframe[a] != MAXFRAME+1)) {
-					marker->frame= oldframe[a];
+				if (marker->flag & SELECT) {
+					if(oldframe[a] != MAXFRAME+1) {
+						marker->frame= oldframe[a];
+					}
+					a++;
 				}
-				a++;
 			}
 		}		
 	} else {
@@ -3231,8 +3236,8 @@
 	G.moving= 0;
 	MEM_freeN(transmain);
 	
-	if (sseq->flag & SEQ_MARKER_TRANS)
-		MEM_freeN(transmain);
+	if (oldframe)
+		MEM_freeN(oldframe);
 	
 	if (mode=='g')
 		BIF_undo_push("Transform Grab, Sequencer");





More information about the Bf-blender-cvs mailing list