[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [55017] trunk/blender/source/blender/ render/intern/source/pipeline.c: Fix #34501: Painting on image editor with texture brush causes memory leaks in render module

Sergey Sharybin sergey.vfx at gmail.com
Mon Mar 4 13:40:25 CET 2013


Revision: 55017
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=55017
Author:   nazgul
Date:     2013-03-04 12:40:24 +0000 (Mon, 04 Mar 2013)
Log Message:
-----------
Fix #34501: Painting on image editor with texture brush causes memory leaks in render module

Issue was caused by svn rev54721 where donequeue wasn't fully handled
in cases rendering was canceled, which lead to some render results
unfreed.

Revision Links:
--------------
    http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54721

Modified Paths:
--------------
    trunk/blender/source/blender/render/intern/source/pipeline.c

Modified: trunk/blender/source/blender/render/intern/source/pipeline.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/pipeline.c	2013-03-04 12:39:31 UTC (rev 55016)
+++ trunk/blender/source/blender/render/intern/source/pipeline.c	2013-03-04 12:40:24 UTC (rev 55017)
@@ -967,7 +967,20 @@
 		if ((g_break=re->test_break(re->tbh)))
 			break;
 	}
-	
+
+	if (g_break) {
+		/* review the done queue and handle all the render parts,
+		 * so no unfreed render result are lurking around
+		 */
+		BLI_thread_queue_nowait(donequeue);
+		while ((pa = BLI_thread_queue_pop(donequeue))) {
+			if (pa->result) {
+				render_result_free_list(&pa->fullresult, pa->result);
+				pa->result = NULL;
+			}
+		}
+	}
+
 	BLI_thread_queue_free(donequeue);
 	BLI_thread_queue_free(workqueue);
 	




More information about the Bf-blender-cvs mailing list