diff options
author | Ton Roosendaal <ton@blender.org> | 2004-12-10 17:50:39 +0300 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2004-12-10 17:50:39 +0300 |
commit | 3bcc45ff647c0dc657bc3f507605c9d8ab8bdd5b (patch) | |
tree | 252c64644ea4785ae48d918c75b93ceaf8d4cda7 | |
parent | 58a503c18974dcee21c0398facdf7d1fa3138571 (diff) |
Bug fix #1994
Sequence editor crash when you delete Scenes which were used as a strip.
Related to that, file reading code didn't restore pointers for strips
correctly when you save with open "Meta" strip.
First bug 8 year old. Second 1 month. :)
-rw-r--r-- | source/blender/blenloader/intern/readfile.c | 2 | ||||
-rw-r--r-- | source/blender/src/sequence.c | 6 |
2 files changed, 5 insertions, 3 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 1cd72598184..5e4bdd3ed7c 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -2398,7 +2398,7 @@ static void lib_link_scene(FileData *fd, Main *main) ed= sce->ed; if(ed) { - WHILE_SEQ(ed->seqbasep) { + WHILE_SEQ(&ed->seqbase) { if(seq->ipo) seq->ipo= newlibadr_us(fd, sce->id.lib, seq->ipo); if(seq->scene) seq->scene= newlibadr(fd, sce->id.lib, seq->scene); if(seq->sound) { diff --git a/source/blender/src/sequence.c b/source/blender/src/sequence.c index 6489a0fde52..d7b8f6c22ad 100644 --- a/source/blender/src/sequence.c +++ b/source/blender/src/sequence.c @@ -1807,6 +1807,8 @@ void do_build_seqar_cfra(ListBase *seqbase, Sequence ***seqar, int cfra) int oldx, oldy, oldcfra, doseq; char name[FILE_MAXDIR]; + if(seqar==NULL) return; + seq= seqbase->first; while(seq) { @@ -1933,9 +1935,9 @@ void do_build_seqar_cfra(ListBase *seqbase, Sequence ***seqar, int cfra) if((G.f & G_PLAYANIM)==0) waitcursor(0); } } - else if(seq->type==SEQ_SCENE && se->ibuf==0) { + else if(seq->type==SEQ_SCENE && se->ibuf==0 && seq->scene) { // scene can be NULL after deletions View3D *vd; - + oldsce= G.scene; set_scene_bg(seq->scene); |