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:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2013-09-23 23:35:21 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2013-09-23 23:35:21 +0400
commitfc2dbc20ff5c9187310e8d51dca99c7be13b84b4 (patch)
tree691f688fe7047196d382af92f257eb71df7affef /source/blender/windowmanager/intern/wm_jobs.c
parenteaf354e222ec64dc0e258a53107ef1eca9ac341c (diff)
Fix #36800: closing render window during render crashes, the operator would be
cancelled before the job, causing invalid access to op->reports in the job thread.
Diffstat (limited to 'source/blender/windowmanager/intern/wm_jobs.c')
-rw-r--r--source/blender/windowmanager/intern/wm_jobs.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/source/blender/windowmanager/intern/wm_jobs.c b/source/blender/windowmanager/intern/wm_jobs.c
index 188ad251b8a..c9c3d2df788 100644
--- a/source/blender/windowmanager/intern/wm_jobs.c
+++ b/source/blender/windowmanager/intern/wm_jobs.c
@@ -474,15 +474,16 @@ void WM_jobs_kill_all_except(wmWindowManager *wm, void *owner)
}
-void WM_jobs_kill_type(struct wmWindowManager *wm, int job_type)
+void WM_jobs_kill_type(struct wmWindowManager *wm, void *owner, int job_type)
{
wmJob *wm_job, *next_job;
for (wm_job = wm->jobs.first; wm_job; wm_job = next_job) {
next_job = wm_job->next;
- if (wm_job->job_type == job_type)
- wm_jobs_kill_job(wm, wm_job);
+ if (!owner || wm_job->owner == owner)
+ if (wm_job->job_type == job_type)
+ wm_jobs_kill_job(wm, wm_job);
}
}