diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2020-08-30 20:58:40 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2020-08-30 20:58:54 +0300 |
commit | 3fa1280132569b30cd75a4ef5435b97227b373c6 (patch) | |
tree | c33d150359d78f477be5549f2c0853570cb1b9f9 /source/blender/editors/space_sequencer/sequencer_buttons.c | |
parent | 19c9b27ffe55470758637cfbfb11567611170388 (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.c | 4 |
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); |