Commit: b008145d6243a073de31b0360fbc9de00cf7263e
Author: Bastien Montagne
Date:   Sun Oct 18 15:19:26 2015 +0200
Branches: new-filebrowser-preview-temp
https://developer.blender.org/rBb008145d6243a073de31b0360fbc9de00cf7263e

Cleanup: factorize task data freeing into own func, much less verbose that way.

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

M       source/blender/blenlib/intern/task.c

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

diff --git a/source/blender/blenlib/intern/task.c 
b/source/blender/blenlib/intern/task.c
index 8850ef0..abd4435 100644
--- a/source/blender/blenlib/intern/task.c
+++ b/source/blender/blenlib/intern/task.c
@@ -84,6 +84,19 @@ typedef struct TaskThread {
        int id;
 } TaskThread;
 
+/* Helper */
+static void task_data_free(Task *task, const int thread_id)
+{
+       if (task->free_taskdata) {
+               if (task->freedata) {
+                       task->freedata(task->pool, task->taskdata, thread_id);
+               }
+               else {
+                       MEM_freeN(task->taskdata);
+               }
+       }
+}
+
 /* Task Scheduler */
 
 static void task_pool_num_decrease(TaskPool *pool, size_t done)
@@ -171,14 +184,7 @@ static void *task_scheduler_thread_run_ex(void *thread_p, 
const bool forced_back
                task->run(pool, task->taskdata, thread_id);
 
                /* delete task */
-               if (task->free_taskdata) {
-                       if (task->freedata) {
-                               task->freedata(pool, task->taskdata, thread_id);
-                       }
-                       else {
-                               MEM_freeN(task->taskdata);
-                       }
-               }
+               task_data_free(task, thread_id);
                MEM_freeN(task);
 
                /* notify pool task was done */
@@ -284,14 +290,7 @@ void BLI_task_scheduler_free(TaskScheduler *scheduler)
 
        /* delete leftover tasks */
        for (task = scheduler->queue.first; task; task = task->next) {
-               if (task->free_taskdata) {
-                       if (task->freedata) {
-                               task->freedata(task->pool, task->taskdata, 0);
-                       }
-                       else {
-                               MEM_freeN(task->taskdata);
-                       }
-               }
+               task_data_free(task, 0);
        }
        BLI_freelistN(&scheduler->queue);
 
@@ -335,14 +334,7 @@ static void task_scheduler_clear(TaskScheduler *scheduler, 
TaskPool *pool)
                nexttask = task->next;
 
                if (task->pool == pool) {
-                       if (task->free_taskdata) {
-                               if (task->freedata) {
-                                       task->freedata(pool, task->taskdata, 0);
-                               }
-                               else {
-                                       MEM_freeN(task->taskdata);
-                               }
-                       }
+                       task_data_free(task, 0);
                        BLI_freelinkN(&scheduler->queue, task);
 
                        done++;
@@ -480,14 +472,7 @@ void BLI_task_pool_work_and_wait(TaskPool *pool)
                        work_task->run(pool, work_task->taskdata, 0);
 
                        /* delete task */
-                       if (task->free_taskdata) {
-                               if (task->freedata) {
-                                       task->freedata(pool, task->taskdata, 0);
-                               }
-                               else {
-                                       MEM_freeN(task->taskdata);
-                               }
-                       }
+                       task_data_free(task, 0);
                        MEM_freeN(work_task);
 
                        /* notify pool task was done */

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to