[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [54619] trunk/blender/source/blender/ editors/space_sequencer/sequencer_edit.c: == Sequencer ==

Peter Schlaile peter at schlaile.de
Sun Feb 17 23:13:01 CET 2013


Revision: 54619
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54619
Author:   schlaile
Date:     2013-02-17 22:13:00 +0000 (Sun, 17 Feb 2013)
Log Message:
-----------
== Sequencer ==

Made my last fix a little bit faster and more elegant by not playing around 
with seq->tmp (only reseting it to NULL, like the old code).

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c

Modified: trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c
===================================================================
--- trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c	2013-02-17 21:44:13 UTC (rev 54618)
+++ trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c	2013-02-17 22:13:00 UTC (rev 54619)
@@ -827,18 +827,14 @@
 static int cut_seq_list(Scene *scene, ListBase *slist, int cutframe,
                         Sequence * (*cut_seq)(Scene *, Sequence *, int))
 {
-	int did_something = FALSE;
 	Sequence *seq, *seq_next_iter;
+	Sequence *seq_first_new = NULL;
 	
-	for (seq = slist->first; seq; seq = seq->next) {
-		seq->tmp = NULL;
-	}
-	
 	seq = slist->first;
 
-	while (seq && !seq->tmp) {
+	while (seq && seq != seq_first_new) {
 		seq_next_iter = seq->next; /* we need this because we may remove seq */
-		/* only handle strips not marked as new */
+		seq->tmp = NULL;
 		if (seq->flag & SELECT) {
 			if (cutframe > seq->startdisp && 
 			    cutframe < seq->enddisp)
@@ -846,28 +842,24 @@
 				Sequence *seqn = cut_seq(scene, seq, cutframe);
 				if (seqn) {
 					BLI_addtail(slist, seqn);
-					seqn->tmp = seq; /* mark as new */
-					did_something = TRUE;
+					seq_first_new = seq_first_new ?: seqn;
 				}
 			}
 			else if (seq->enddisp <= cutframe) {
 				/* do nothing */
 			}
 			else if (seq->startdisp >= cutframe) {
-				/* move to tail and mark as new */
+				/* move to tail */
 				BLI_remlink(slist, seq);
 				BLI_addtail(slist, seq);
-				seq->tmp = seq;
+
+				seq_first_new = seq_first_new ?: seq;
 			}
 		}
 		seq = seq_next_iter;
 	}
 
-	for (; seq; seq = seq->next) {
-		seq->tmp = NULL;
-	}
-
-	return did_something;
+	return (seq_first_new != NULL);
 }
 
 static int insert_gap(Scene *scene, int gap, int cfra)




More information about the Bf-blender-cvs mailing list