From 1fe2f59c39cfaeb40df39cd293719918e61be5b2 Mon Sep 17 00:00:00 2001 From: caro Date: Thu, 31 Dec 2009 09:17:28 +0000 Subject: [PATCH] Simplify the use of eina_benchmark: * Free the inlined list returned by one (or several) calls of eina_benchmark_run() automatically in eina_benchmark_free() instead of letting the user doing it. * Update tutorial and benchmark binary accordingly git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/eina@44830 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- src/lib/eina_benchmark.c | 49 ++++++++++++++++++++++++------------------------ src/tests/eina_bench.c | 11 ----------- 2 files changed, 24 insertions(+), 36 deletions(-) diff --git a/src/lib/eina_benchmark.c b/src/lib/eina_benchmark.c index 482346a..476023d 100644 --- a/src/lib/eina_benchmark.c +++ b/src/lib/eina_benchmark.c @@ -75,18 +75,6 @@ * * ea = eina_benchmark_run(test); * - * if(ea) - * { - * Eina_Array_Iterator it; - * char *tmp; - * unsigned int i; - * - * EINA_ARRAY_ITER_NEXT(ea, i, tmp, it) - * free(tmp); - * - * eina_array_free(ea); - * } - * * eina_benchmark_free(test); * eina_shutdown(); * @@ -276,20 +264,8 @@ * benchmarks[i].build(test); * * ea = eina_benchmark_run(test); - * if(ea) - * { - * Eina_Array_Iterator it; - * char *tmp; - * unsigned int i; - * - * EINA_ARRAY_ITER_NEXT(ea, i, tmp, it) - * free(tmp); - * - * eina_array_free(ea); - * } * - * if (test) - * eina_benchmark_free(test); + * eina_benchmark_free(test); * } * * eina_shutdown(); @@ -345,6 +321,7 @@ void *alloca (size_t); #include "eina_log.h" #include "eina_benchmark.h" #include "eina_inlist.h" +#include "eina_list.h" #include "eina_counter.h" /*============================================================================* @@ -376,6 +353,7 @@ struct _Eina_Benchmark const char *run; Eina_Inlist *runs; + Eina_List *names; }; static int _eina_benchmark_log_dom = -1; @@ -530,6 +508,25 @@ eina_benchmark_free(Eina_Benchmark *bench) free(run); } + while (bench->names) + { + Eina_Array *names; + + names = eina_list_data_get(bench->names); + if (names) + { + Eina_Array_Iterator it; + char *tmp; + unsigned int i; + + EINA_ARRAY_ITER_NEXT(names, i, tmp, it) + free(tmp); + + eina_array_free(names); + } + bench->names = eina_list_remove_list(bench->names, bench->names); + } + free(bench); } @@ -709,6 +706,8 @@ eina_benchmark_run(Eina_Benchmark *bench) fclose(main_script); + bench->names = eina_list_append(bench->names, ea); + return ea; } diff --git a/src/tests/eina_bench.c b/src/tests/eina_bench.c index 684376f..9f327b4 100644 --- a/src/tests/eina_bench.c +++ b/src/tests/eina_bench.c @@ -85,17 +85,6 @@ main(int argc, char **argv) etc[i].build(test); ea = eina_benchmark_run(test); - if (ea) - { - Eina_Array_Iterator it; - char *tmp; - unsigned int i; - - EINA_ARRAY_ITER_NEXT(ea, i, tmp, it) - free(tmp); - - eina_array_free(ea); - } eina_benchmark_free(test); } -- 2.7.4