From 354fc0076e4f4bb6bc95e9d3ed260dd38d7910dc Mon Sep 17 00:00:00 2001 From: Joerg Mueller Date: Tue, 22 Feb 2011 16:32:05 +0000 Subject: 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 :-) --- source/blender/blenkernel/intern/sequencer.c | 3 ++- source/blender/blenloader/intern/readfile.c | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'source') 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); -- cgit v1.2.3