[Bf-blender-cvs] [3cc2a9b934d] master: Fix T55581: kill running (render) jobs when deleting a scene

Philipp Oeser noreply at git.blender.org
Fri Jul 6 12:36:10 CEST 2018


Commit: 3cc2a9b934d072fdd817863aa8e93e2416f5c804
Author: Philipp Oeser
Date:   Fri Jun 22 13:44:12 2018 +0200
Branches: master
https://developer.blender.org/rB3cc2a9b934d072fdd817863aa8e93e2416f5c804

Fix T55581: kill running (render) jobs when deleting a scene

also fixed passing WM_JOB_TYPE_ANY to WM_jobs_kill_type()

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D3498

===================================================================

M	source/blender/editors/screen/screen_edit.c
M	source/blender/windowmanager/intern/wm_jobs.c

===================================================================

diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c
index 82552c35786..131b509df5a 100644
--- a/source/blender/editors/screen/screen_edit.c
+++ b/source/blender/editors/screen/screen_edit.c
@@ -1447,6 +1447,10 @@ bool ED_screen_delete_scene(bContext *C, Scene *scene)
 	Main *bmain = CTX_data_main(C);
 	Scene *newscene;
 
+	// kill running jobs
+	wmWindowManager *wm = CTX_wm_manager(C);
+	WM_jobs_kill_type(wm, scene, WM_JOB_TYPE_ANY);
+
 	if (scene->id.prev)
 		newscene = scene->id.prev;
 	else if (scene->id.next)
diff --git a/source/blender/windowmanager/intern/wm_jobs.c b/source/blender/windowmanager/intern/wm_jobs.c
index 3a4195ae1ae..dd9e7edf413 100644
--- a/source/blender/windowmanager/intern/wm_jobs.c
+++ b/source/blender/windowmanager/intern/wm_jobs.c
@@ -500,7 +500,7 @@ void WM_jobs_kill_type(struct wmWindowManager *wm, void *owner, int job_type)
 		next_job = wm_job->next;
 
 		if (!owner || wm_job->owner == owner)
-			if (wm_job->job_type == job_type)
+			if (job_type == WM_JOB_TYPE_ANY || wm_job->job_type == job_type)
 				wm_jobs_kill_job(wm, wm_job);
 	}
 }



More information about the Bf-blender-cvs mailing list