diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2018-03-07 03:39:09 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2018-03-07 03:40:40 +0300 |
commit | 4f23e130019bb5a41898df532365e97330ec258a (patch) | |
tree | 555aeea08c4af0ea924257da83181395c3e04abe /source/blender/draw | |
parent | cfba75a21afae499a2794cb21fe8c7b016bc4380 (diff) |
DRW: Fix memory leak.
This prevents the creation of a new job if no job is running.
Diffstat (limited to 'source/blender/draw')
-rw-r--r-- | source/blender/draw/intern/draw_manager_shader.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/source/blender/draw/intern/draw_manager_shader.c b/source/blender/draw/intern/draw_manager_shader.c index 0e96c726999..5ab373ee484 100644 --- a/source/blender/draw/intern/draw_manager_shader.c +++ b/source/blender/draw/intern/draw_manager_shader.c @@ -209,6 +209,10 @@ void DRW_deferred_shader_remove(GPUMaterial *mat) Scene *scene = GPU_material_scene(mat); for (wmWindowManager *wm = G.main->wm.first; wm; wm = wm->id.next) { + if (WM_jobs_test(wm, scene, WM_JOB_TYPE_SHADER_COMPILATION) == false) { + /* No job running, do not create a new one by calling WM_jobs_get. */ + continue; + } for (wmWindow *win = wm->windows.first; win; win = win->next) { wmJob *wm_job = WM_jobs_get(wm, win, scene, "Shaders Compilation", WM_JOB_PROGRESS | WM_JOB_SUSPEND, WM_JOB_TYPE_SHADER_COMPILATION); |