From: Vincent Torri Date: Thu, 31 Dec 2009 09:17:28 +0000 (+0000) Subject: Simplify the use of eina_benchmark: X-Git-Tag: submit/devel/efl/20131022.203902~14547 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8e85a71f039d77f8e00791b03267a06169495458;p=platform%2Fupstream%2Fefl.git 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 SVN revision: 44830 --- diff --git a/legacy/eina/src/lib/eina_benchmark.c b/legacy/eina/src/lib/eina_benchmark.c index 482346a..476023d 100644 --- a/legacy/eina/src/lib/eina_benchmark.c +++ b/legacy/eina/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/legacy/eina/src/tests/eina_bench.c b/legacy/eina/src/tests/eina_bench.c index 684376f..9f327b4 100644 --- a/legacy/eina/src/tests/eina_bench.c +++ b/legacy/eina/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); }