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. :)
This commit is contained in:
@@ -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) {
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user