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:
authorClément Foucault <foucault.clem@gmail.com>2020-08-30 20:58:40 +0300
committerClément Foucault <foucault.clem@gmail.com>2020-08-30 20:58:54 +0300
commit3fa1280132569b30cd75a4ef5435b97227b373c6 (patch)
treec33d150359d78f477be5549f2c0853570cb1b9f9 /source/blender/editors/space_sequencer/sequencer_buttons.c
parent19c9b27ffe55470758637cfbfb11567611170388 (diff)
Fix T79940 VSE Editor crash when opening a different scene as a strip
This was caused by a double lock of the DRW context mutex. This changes the logic a bit by releasing the DRW context before rendering with BKE_sequencer_give_ibuf and restoring it after. Critical fix for 2.91 Reviewed By: dfelinto Differential Revision: https://developer.blender.org/D8657
Diffstat (limited to 'source/blender/editors/space_sequencer/sequencer_buttons.c')
-rw-r--r--source/blender/editors/space_sequencer/sequencer_buttons.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/source/blender/editors/space_sequencer/sequencer_buttons.c b/source/blender/editors/space_sequencer/sequencer_buttons.c
index dce8aa16985..79f30423bf2 100644
--- a/source/blender/editors/space_sequencer/sequencer_buttons.c
+++ b/source/blender/editors/space_sequencer/sequencer_buttons.c
@@ -78,6 +78,7 @@ static void metadata_panel_context_draw(const bContext *C, Panel *panel)
struct Main *bmain = CTX_data_main(C);
struct Depsgraph *depsgraph = CTX_data_expect_evaluated_depsgraph(C);
struct Scene *scene = CTX_data_scene(C);
+ ARegion *region = CTX_wm_region(C);
SpaceSeq *space_sequencer = CTX_wm_space_seq(C);
/* NOTE: We can only reliably show metadata for the original (current)
* frame when split view is used. */
@@ -88,7 +89,8 @@ static void metadata_panel_context_draw(const bContext *C, Panel *panel)
}
/* NOTE: We disable multiview for drawing, since we don't know what is the
* from the panel (is kind of all the views?). */
- ImBuf *ibuf = sequencer_ibuf_get(bmain, depsgraph, scene, space_sequencer, scene->r.cfra, 0, "");
+ ImBuf *ibuf = sequencer_ibuf_get(
+ bmain, region, depsgraph, scene, space_sequencer, scene->r.cfra, 0, "");
if (ibuf != NULL) {
ED_region_image_metadata_panel_draw(ibuf, panel->layout);
IMB_freeImBuf(ibuf);