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. :)
This commit is contained in:
2004-12-10 14:50:39 +00:00
parent 58a503c189
commit 3bcc45ff64
2 changed files with 5 additions and 3 deletions

View File

@@ -2398,7 +2398,7 @@ static void lib_link_scene(FileData *fd, Main *main)
ed= sce->ed; ed= sce->ed;
if(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->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->scene) seq->scene= newlibadr(fd, sce->id.lib, seq->scene);
if(seq->sound) { if(seq->sound) {

View File

@@ -1807,6 +1807,8 @@ void do_build_seqar_cfra(ListBase *seqbase, Sequence ***seqar, int cfra)
int oldx, oldy, oldcfra, doseq; int oldx, oldy, oldcfra, doseq;
char name[FILE_MAXDIR]; char name[FILE_MAXDIR];
if(seqar==NULL) return;
seq= seqbase->first; seq= seqbase->first;
while(seq) { 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); 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; View3D *vd;
oldsce= G.scene; oldsce= G.scene;
set_scene_bg(seq->scene); set_scene_bg(seq->scene);