[Bf-blender-cvs] [4491c622605] master: Fix potential crash during proxy building

Richard Antalik noreply at git.blender.org
Tue Mar 1 23:44:07 CET 2022


Commit: 4491c6226051799f4415ba50abbc4861e09af862
Author: Richard Antalik
Date:   Tue Mar 1 23:35:21 2022 +0100
Branches: master
https://developer.blender.org/rB4491c6226051799f4415ba50abbc4861e09af862

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

===================================================================

M	source/blender/sequencer/intern/proxy.c

===================================================================

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);
   }



More information about the Bf-blender-cvs mailing list