diff options
author | Campbell Barton <ideasman42@gmail.com> | 2011-04-01 13:00:16 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2011-04-01 13:00:16 +0400 |
commit | 3556da255a53de6dc1ab4bf3859b5780390063a2 (patch) | |
tree | ba7c3609ee3f59d42bf75be363919951d866ff4d /source | |
parent | 6d3546069c270136856815365883c6490dbff25d (diff) |
fix for memory leak when freeing metastrips from the clipboard.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenkernel/intern/sequencer.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index 67d79709c4f..8c5696c9a3f 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -218,13 +218,25 @@ Editing *seq_give_editing(Scene *scene, int alloc) return scene->ed; } +static void seq_free_clipboard_recursive(Sequence *seq_parent) +{ + Sequence *seq, *nseq; + + for(seq= seq_parent->seqbase.first; seq; seq= nseq) { + nseq= seq->next; + seq_free_clipboard_recursive(seq); + } + + seq_free_sequence(NULL, seq_parent); +} + void seq_free_clipboard(void) { Sequence *seq, *nseq; for(seq= seqbase_clipboard.first; seq; seq= nseq) { nseq= seq->next; - seq_free_sequence(NULL, seq); + seq_free_clipboard_recursive(seq); } seqbase_clipboard.first= seqbase_clipboard.last= NULL; } |