Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Antalik <richardantalik@gmail.com>2022-03-02 01:35:21 +0300
committerRichard Antalik <richardantalik@gmail.com>2022-03-02 01:42:23 +0300
commit4491c6226051799f4415ba50abbc4861e09af862 (patch)
tree390f73d0549cbd7abe2b7d1b056e33d0527b0c3a /source/blender/sequencer
parentbfe37b7255e76b7c66e3f9cfd47bd0636ac142cf (diff)
Fix potential crash during proxy building
Last step of proxy building caused crash due to thread race contition when acessing ed->seqbase. Looking at code, it seems that calling IMB_close_anim_proxies on original strips is unnecessary so this code was removed to resolve this issue. Locking seqbase data may be possible, but it's not very practical as many functions access this data on demand which can easily cause program to freeze. Reviewed By: sergey Differential Revision: https://developer.blender.org/D14210
Diffstat (limited to 'source/blender/sequencer')
-rw-r--r--source/blender/sequencer/intern/proxy.c15
1 files changed, 0 insertions, 15 deletions
diff --git a/source/blender/sequencer/intern/proxy.c b/source/blender/sequencer/intern/proxy.c
index d87da1557e0..91b69bfe01f 100644
--- a/source/blender/sequencer/intern/proxy.c
+++ b/source/blender/sequencer/intern/proxy.c
@@ -549,18 +549,6 @@ void SEQ_proxy_rebuild(SeqIndexBuildContext *context,
}
}
-static bool seq_orig_free_anims(Sequence *seq_iter, void *data)
-{
- SessionUUID orig_seq_uuid = ((SeqIndexBuildContext *)data)->orig_seq_uuid;
-
- if (BLI_session_uuid_is_equal(&seq_iter->runtime.session_uuid, &orig_seq_uuid)) {
- for (StripAnim *sanim = seq_iter->anims.first; sanim; sanim = sanim->next) {
- IMB_close_anim_proxies(sanim->anim);
- }
- }
- return true;
-}
-
void SEQ_proxy_rebuild_finish(SeqIndexBuildContext *context, bool stop)
{
if (context->index_context) {
@@ -570,9 +558,6 @@ void SEQ_proxy_rebuild_finish(SeqIndexBuildContext *context, bool stop)
IMB_close_anim_proxies(sanim->anim);
}
- /* `context->seq_orig` may have been removed during building. */
- SEQ_for_each_callback(&context->scene->ed->seqbase, seq_orig_free_anims, context);
-
IMB_anim_index_rebuild_finish(context->index_context, stop);
}