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>2018-03-07 03:39:09 +0300
committerClément Foucault <foucault.clem@gmail.com>2018-03-07 03:40:40 +0300
commit4f23e130019bb5a41898df532365e97330ec258a (patch)
tree555aeea08c4af0ea924257da83181395c3e04abe /source/blender/draw/intern
parentcfba75a21afae499a2794cb21fe8c7b016bc4380 (diff)
DRW: Fix memory leak.
This prevents the creation of a new job if no job is running.
Diffstat (limited to 'source/blender/draw/intern')
-rw-r--r--source/blender/draw/intern/draw_manager_shader.c4
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);