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
diff options
context:
space:
mode:
authorJoerg Mueller <nexyon@gmail.com>2011-02-22 19:32:05 +0300
committerJoerg Mueller <nexyon@gmail.com>2011-02-22 19:32:05 +0300
commit354fc0076e4f4bb6bc95e9d3ed260dd38d7910dc (patch)
tree4c6e3888b002f9b31fd08f321b18eb8da481b835
parent5e41760a15d2243242efea4ee92aefc8b3104db4 (diff)
Fix for [#26160] Blender Crashes when undoing
Was trying to free audio data from sequencer strips that don't even have audio. Corrected the error in several ways so this will definitely not happen again :-)
-rw-r--r--source/blender/blenkernel/intern/sequencer.c3
-rw-r--r--source/blender/blenloader/intern/readfile.c1
2 files changed, 3 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c
index 2785878fb08..69d8713ec8b 100644
--- a/source/blender/blenkernel/intern/sequencer.c
+++ b/source/blender/blenkernel/intern/sequencer.c
@@ -193,7 +193,7 @@ void seq_free_sequence(Scene *scene, Sequence *seq)
if (ed->act_seq==seq)
ed->act_seq= NULL;
- if(seq->scene_sound)
+ if(seq->scene_sound && ELEM(seq->type, SEQ_SOUND, SEQ_SCENE))
sound_remove_scene_sound(scene, seq->scene_sound);
seq_free_animdata(scene, seq);
@@ -3399,6 +3399,7 @@ Sequence *alloc_sequence(ListBase *lb, int cfra, int machine)
seq->mul= 1.0;
seq->blend_opacity = 100.0;
seq->volume = 1.0f;
+ seq->scene_sound = NULL;
return seq;
}
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index 8501c11e5d5..0b4b27bcbfa 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -4368,6 +4368,7 @@ static void lib_link_scene(FileData *fd, Main *main)
SEQ_BEGIN(sce->ed, seq) {
if(seq->ipo) seq->ipo= newlibadr_us(fd, sce->id.lib, seq->ipo);
+ seq->scene_sound = NULL;
if(seq->scene) {
seq->scene= newlibadr(fd, sce->id.lib, seq->scene);
seq->scene_sound = sound_scene_add_scene_sound(sce, seq, seq->startdisp, seq->enddisp, seq->startofs + seq->anim_startofs);