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.
This commit is contained in:
2013-03-04 12:40:24 +00:00
parent 4cfa28b5ed
commit f691ee0627

View File

@@ -967,7 +967,20 @@ static void threaded_tile_processor(Render *re)
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);