From 42a81550f9b1ab4af7945580922c897425becf7f Mon Sep 17 00:00:00 2001 From: Peter Schlaile Date: Sun, 17 Feb 2013 22:13:00 +0000 Subject: == 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). --- .../editors/space_sequencer/sequencer_edit.c | 24 ++++++++-------------- 1 file changed, 8 insertions(+), 16 deletions(-) (limited to 'source/blender/editors/space_sequencer') diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index cec9373ebd7..ab7a2f38744 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -827,18 +827,14 @@ static Sequence *cut_seq_soft(Scene *scene, Sequence *seq, int cutframe) 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; - - for (seq = slist->first; seq; seq = seq->next) { - seq->tmp = NULL; - } + Sequence *seq_first_new = 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 @@ static int cut_seq_list(Scene *scene, ListBase *slist, int cutframe, 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) -- cgit v1.2.3