Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2012-09-06 13:23:38 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-09-06 13:23:38 +0400
commit6f0cbd787d0ca8a6d6293f77e9da3dca556e715c (patch)
tree9972229c3ba8861f723f0a0a405c3b339b639842 /source
parentab4b74f1edc68c65b2b12167354d59d61cf9800f (diff)
make freeing sequencer strip without cache an option only exposed within sequencer.c
Diffstat (limited to 'source')
-rw-r--r--source/blender/blenkernel/BKE_sequencer.h2
-rw-r--r--source/blender/blenkernel/intern/sequencer.c15
-rw-r--r--source/blender/editors/space_sequencer/sequencer_edit.c6
-rw-r--r--source/blender/makesrna/intern/rna_sequencer_api.c4
4 files changed, 17 insertions, 10 deletions
diff --git a/source/blender/blenkernel/BKE_sequencer.h b/source/blender/blenkernel/BKE_sequencer.h
index 01367302f94..5a201dbc962 100644
--- a/source/blender/blenkernel/BKE_sequencer.h
+++ b/source/blender/blenkernel/BKE_sequencer.h
@@ -199,7 +199,7 @@ int BKE_sequencer_recursive_apply(struct Sequence *seq, int (*apply_func)(struct
void BKE_sequencer_free_clipboard(void);
-void BKE_sequence_free(struct Scene *scene, struct Sequence *seq, const int do_cache);
+void BKE_sequence_free(struct Scene *scene, struct Sequence *seq);
const char *BKE_sequence_give_name(struct Sequence *seq);
void BKE_sequence_calc(struct Scene *scene, struct Sequence *seq);
void BKE_sequence_calc_disp(struct Scene *scene, struct Sequence *seq);
diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c
index 849b08fbc2b..7d0c080a918 100644
--- a/source/blender/blenkernel/intern/sequencer.c
+++ b/source/blender/blenkernel/intern/sequencer.c
@@ -169,7 +169,8 @@ static void seq_free_strip(Strip *strip)
MEM_freeN(strip);
}
-void BKE_sequence_free(Scene *scene, Sequence *seq, const int do_cache)
+/* only give option to skip cache locally (static func) */
+static void BKE_sequence_free_ex(Scene *scene, Sequence *seq, const int do_cache)
{
if (seq->strip)
seq_free_strip(seq->strip);
@@ -219,6 +220,11 @@ void BKE_sequence_free(Scene *scene, Sequence *seq, const int do_cache)
MEM_freeN(seq);
}
+void BKE_sequence_free(Scene *scene, Sequence *seq)
+{
+ BKE_sequence_free_ex(scene, seq, TRUE);
+}
+
/* cache must be freed before calling this function
* since it leaves the seqbase in an invalid state */
static void seq_free_sequence_recurse(Scene *scene, Sequence *seq)
@@ -230,7 +236,7 @@ static void seq_free_sequence_recurse(Scene *scene, Sequence *seq)
seq_free_sequence_recurse(scene, iseq);
}
- BKE_sequence_free(scene, seq, FALSE);
+ BKE_sequence_free_ex(scene, seq, FALSE);
}
@@ -251,7 +257,7 @@ static void seq_free_clipboard_recursive(Sequence *seq_parent)
seq_free_clipboard_recursive(seq);
}
- BKE_sequence_free(NULL, seq_parent, FALSE);
+ BKE_sequence_free_ex(NULL, seq_parent, FALSE);
}
void BKE_sequencer_free_clipboard(void)
@@ -290,7 +296,8 @@ void BKE_sequencer_editing_free(Scene *scene)
SEQ_BEGIN (ed, seq)
{
- BKE_sequence_free(scene, seq, FALSE);
+ /* handle cache freeing above */
+ BKE_sequence_free_ex(scene, seq, FALSE);
}
SEQ_END
diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c
index 17d4c9a6407..5a40c2ce4e7 100644
--- a/source/blender/editors/space_sequencer/sequencer_edit.c
+++ b/source/blender/editors/space_sequencer/sequencer_edit.c
@@ -613,7 +613,7 @@ static void recurs_del_seq_flag(Scene *scene, ListBase *lb, short flag, short de
BLI_remlink(lb, seq);
if (seq == last_seq) BKE_sequencer_active_set(scene, NULL);
if (seq->type == SEQ_TYPE_META) recurs_del_seq_flag(scene, &seq->seqbase, flag, 1);
- BKE_sequence_free(scene, seq, TRUE);
+ BKE_sequence_free(scene, seq);
}
seq = seqn;
}
@@ -1812,7 +1812,7 @@ static int sequencer_separate_images_exec(bContext *C, wmOperator *op)
start_ofs += step;
}
- BKE_sequence_free(scene, seq, TRUE);
+ BKE_sequence_free(scene, seq);
seq = seq->next;
}
else {
@@ -2010,7 +2010,7 @@ static int sequencer_meta_separate_exec(bContext *C, wmOperator *UNUSED(op))
last_seq->seqbase.last = NULL;
BLI_remlink(ed->seqbasep, last_seq);
- BKE_sequence_free(scene, last_seq, TRUE);
+ BKE_sequence_free(scene, last_seq);
/* emtpy meta strip, delete all effects depending on it */
for (seq = ed->seqbasep->first; seq; seq = seq->next)
diff --git a/source/blender/makesrna/intern/rna_sequencer_api.c b/source/blender/makesrna/intern/rna_sequencer_api.c
index 0445a7213d0..549868e5ed0 100644
--- a/source/blender/makesrna/intern/rna_sequencer_api.c
+++ b/source/blender/makesrna/intern/rna_sequencer_api.c
@@ -170,7 +170,7 @@ static Sequence *rna_Sequences_new_image(ID *id, Editing *ed, ReportList *report
if (seq->strip->stripdata->name[0] == '\0') {
BKE_report(reports, RPT_ERROR, "Sequences.new_image: unable to open image file");
BLI_remlink(&ed->seqbase, seq);
- BKE_sequence_free(scene, seq, FALSE); /* cache won't have been generated */
+ BKE_sequence_free(scene, seq);
return NULL;
}
@@ -315,7 +315,7 @@ static void rna_Sequences_remove(ID *id, Editing *ed, Sequence *seq)
Scene *scene = (Scene *)id;
BLI_remlink(&ed->seqbase, seq);
- BKE_sequence_free(scene, seq, TRUE);
+ BKE_sequence_free(scene, seq);
WM_main_add_notifier(NC_SCENE | ND_SEQUENCER, scene);
}