From 4b69e55da358cbfe98fd9ac85151a7107315959b Mon Sep 17 00:00:00 2001 From: Richard Antalik Date: Mon, 17 Aug 2020 20:19:11 +0200 Subject: Fix T79757: Crash on prefetch when renaming strips Original sequence lookup failed, becase name changed in another thread. Fix is same as 0471349c90df - stop prefetching before changing content of seqbase. I have covered more cases, and added assert so it is more obvious that issue is in lookup, and it shouldn't fail. Reviewed By: sergey Differential Revision: https://developer.blender.org/D8592 --- source/blender/editors/space_sequencer/sequencer_edit.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'source/blender/editors/space_sequencer/sequencer_edit.c') diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index b2d0362602e..bab099a77c1 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -2751,6 +2751,8 @@ static int sequencer_separate_images_exec(bContext *C, wmOperator *op) seq = ed->seqbasep->first; /* Poll checks this is valid. */ + BKE_sequencer_prefetch_stop(scene); + while (seq) { if ((seq->flag & SELECT) && (seq->type == SEQ_TYPE_IMAGE) && (seq->len > 1)) { Sequence *seq_next; @@ -2946,6 +2948,8 @@ static int sequencer_meta_make_exec(bContext *C, wmOperator *op) return OPERATOR_CANCELLED; } + BKE_sequencer_prefetch_stop(scene); + /* Remove all selected from main list, and put in meta. */ seqm = BKE_sequence_alloc(ed->seqbasep, 1, 1, SEQ_TYPE_META); /* Channel number set later. */ @@ -3031,6 +3035,8 @@ static int sequencer_meta_separate_exec(bContext *C, wmOperator *UNUSED(op)) return OPERATOR_CANCELLED; } + BKE_sequencer_prefetch_stop(scene); + for (seq = last_seq->seqbase.first; seq != NULL; seq = seq->next) { BKE_sequence_invalidate_cache_composite(scene, seq); } -- cgit v1.2.3