[EGIT] [admin/devs] master 01/01: probie: A new probie is born!
jackdanielz pushed a commit to branch master. http://git.enlightenment.org/admin/devs.git/commit/?id=747d2cc79542966c06235ca74d4565b1438a4825 commit 747d2cc79542966c06235ca74d4565b1438a4825 Author: Daniel Zaoui daniel.za...@samsung.com Date: Wed Nov 20 10:16:29 2013 +0200 probie: A new probie is born! --- probies/yossik/id_rsa.pub | 1 + probies/yossik/info.txt | 8 2 files changed, 9 insertions(+) diff --git a/probies/yossik/id_rsa.pub b/probies/yossik/id_rsa.pub new file mode 100644 index 000..85636ba --- /dev/null +++ b/probies/yossik/id_rsa.pub @@ -0,0 +1 @@ +ssh-rsa B3NzaC1yc2EDAQABAAABAQDZPKZpjLFUf4tmuxp3pH4jAqbrlNpIiXfmVl72ddz6D78uJbABY6UaYQ6buwWOM8/F4CVHlMc9wB3LOZJbywmcnY9YgKBTOwewu123KXEEzsMJKaZP5H6ARsz9C1ytJnEM4K7tPYG2yDbmqzo/qnqp8KSyw9uSQ6Tat5KE+dubmzhU5d7NViQ5NCnfPY54f32A9/LNo08mtCDeAEvh5roz9qCtRMQYdURERiQl8Dh5iN9LAPVoqj5e3AIhK3zfrNNn8JEBT0k3dO2ZGnjyqNt65iXO47uoYMn6D4GUTu084jiq3MwInBwGV9FDJ9u0z/XQSl1psseNaarFv+KIiep9 yossi@yossi-laptop diff --git a/probies/yossik/info.txt b/probies/yossik/info.txt new file mode 100644 index 000..2841f9e --- /dev/null +++ b/probies/yossik/info.txt @@ -0,0 +1,8 @@ +Login:yossik +IRC Nick: YossiK +Name: Yossi Kantor +Location: Tel-Aviv, Israel +E-Mail: yossi.kan...@samsung.com +Contributing: e, efl, elementary +Group:Libraries +Platform: Ubuntu --
[EGIT] [core/elementary] master 01/01: elm - table - protect against invalid cell/row values (16bit overflow)
raster pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=bf01751a1dd84702a5b18d2702f4bf6d7a5b2868 commit bf01751a1dd84702a5b18d2702f4bf6d7a5b2868 Author: Carsten Haitzler (Rasterman) ras...@rasterman.com Date: Wed Nov 20 18:06:42 2013 +0900 elm - table - protect against invalid cell/row values (16bit overflow) --- src/lib/elm_table.c| 39 +++ src/lib/elm_table_legacy.h | 6 ++ 2 files changed, 45 insertions(+) diff --git a/src/lib/elm_table.c b/src/lib/elm_table.c index da487c3..7166fcc 100644 --- a/src/lib/elm_table.c +++ b/src/lib/elm_table.c @@ -343,6 +343,45 @@ _pack(Eo *obj, void *_pd EINA_UNUSED, va_list *list) int rowspan = va_arg(*list, int); ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); + if (col 0) + { +ERR(col 0); +return; + } + if (colspan 1) + { +ERR(colspan 1); +return; + } + if ((0x - col) colspan) + { +ERR(col + colspan 0x); +return; + } + if ((col + colspan) = 0x7) + { +WRN(col + colspan getting rather large (32767)); + } + if (row 0) + { +ERR(row 0); +return; + } + if (rowspan 1) + { +ERR(rowspan 1); +return; + } + if ((0x - row) rowspan) + { +ERR(row + rowspan 0x); +return; + } + if ((row + rowspan) = 0x7) + { +WRN(row + rowspan getting rather large (32767)); + } + elm_widget_sub_object_add(obj, subobj); evas_object_table_pack(wd-resize_obj, subobj, col, row, colspan, rowspan); } diff --git a/src/lib/elm_table_legacy.h b/src/lib/elm_table_legacy.h index 77dda3a..27e06ef 100644 --- a/src/lib/elm_table_legacy.h +++ b/src/lib/elm_table_legacy.h @@ -68,6 +68,12 @@ EAPI void elm_table_padding_get(const Evas_Object *obj, Evas_Coord *horizon * a value of 0 for x and y, means the top left cell of the table, and a * value of 1 for w and h means @p subobj only takes that 1 cell. * + * Note that columns and rows only guarantee 16bit unsigned values at best. + * That means that col + colspan AND row + rowspan must fit inside 16bit + * unsigned values cleanly. You will be warned once values exceed 15bit + * storage, and attempting to use values not able to fit in 16bits will + * result in failure. + * * @ingroup Table */ EAPI void elm_table_pack(Evas_Object *obj, Evas_Object *subobj, int col, int row, int colspan, int rowspan); --
[EGIT] [core/efl] master 01/01: evas - table - protect against invalid cell/row values (16bit overflow)
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=4eb4307aa2b847e73924aa67a055294d2533090b commit 4eb4307aa2b847e73924aa67a055294d2533090b Author: Carsten Haitzler (Rasterman) ras...@rasterman.com Date: Wed Nov 20 18:06:10 2013 +0900 evas - table - protect against invalid cell/row values (16bit overflow) --- src/lib/evas/Evas_Legacy.h | 6 ++ src/lib/evas/canvas/evas_object_table.c | 34 - 2 files changed, 31 insertions(+), 9 deletions(-) diff --git a/src/lib/evas/Evas_Legacy.h b/src/lib/evas/Evas_Legacy.h index 2e6f449..f2b4b2b 100644 --- a/src/lib/evas/Evas_Legacy.h +++ b/src/lib/evas/Evas_Legacy.h @@ -7707,6 +7707,12 @@ EAPI Eina_Bool evas_object_table_pack_get(const Evas_Ob * @param row relative-vertical position to place child. * @param colspan how many relative-horizontal position to use for this child. * @param rowspan how many relative-vertical position to use for this child. + * + * Note that columns and rows only guarantee 16bit unsigned values at best. + * That means that col + colspan AND row + rowspan must fit inside 16bit + * unsigned values cleanly. You will be warned once values exceed 15bit + * storage, and attempting to use values not able to fit in 16bits will + * result in failure. * * @return 1 on success, 0 on failure. */ diff --git a/src/lib/evas/canvas/evas_object_table.c b/src/lib/evas/canvas/evas_object_table.c index 2377669..3b1f533af 100644 --- a/src/lib/evas/canvas/evas_object_table.c +++ b/src/lib/evas/canvas/evas_object_table.c @@ -650,10 +650,8 @@ _evas_object_table_calculate_hints_regular(Evas_Object *o, Evas_Object_Table_Dat _evas_object_table_cache_reset(priv); /* cache interesting data */ - memset(c-expands.h, 1, priv-size.cols); - memset(c-expands.v, 1, priv-size.rows); - memset(c-weights.h, 0, priv-size.cols); - memset(c-weights.v, 0, priv-size.rows); + memset(c-expands.h, 1, priv-size.cols * sizeof(Eina_Bool)); + memset(c-expands.v, 1, priv-size.rows * sizeof(Eina_Bool)); EINA_LIST_FOREACH(priv-children, l, opt) { Evas_Object *child = opt-obj; @@ -692,14 +690,14 @@ _evas_object_table_calculate_hints_regular(Evas_Object *o, Evas_Object_Table_Dat } if (!opt-expand_h) - memset(c-expands.h + opt-col, 0, opt-colspan); + memset(c-expands.h + opt-col, 0, opt-colspan * sizeof(Eina_Bool)); else { for (i = opt-col; i opt-col + opt-colspan; i++) c-weights.h[i] += (weightw / (double)opt-colspan); } if (!opt-expand_v) - memset(c-expands.v + opt-row, 0, opt-rowspan); + memset(c-expands.v + opt-row, 0, opt-rowspan * sizeof(Eina_Bool)); else { for (i = opt-row; i opt-row + opt-rowspan; i++) @@ -1173,17 +1171,35 @@ _pack(Eo *o, void *_pd, va_list *list) Evas_Object_Table_Data *priv = _pd; + if (colspan 1) + { +ERR(colspan 1); +return; + } + if ((0x - col) colspan) + { +ERR(col + colspan 0x); +return; + } + if ((col + colspan) = 0x7) + { +WRN(col + colspan getting rather large (32767)); + } if (rowspan 1) { ERR(rowspan 1); return; } - if (colspan 1) + if ((0x - row) rowspan) { -ERR(colspan 1); +ERR(row + rowspan 0x); return; } - + if ((row + rowspan) = 0x7) + { +WRN(row + rowspan getting rather large (32767)); + } + opt = _evas_object_table_option_get(child); if (!opt) { --
[EGIT] [core/efl] master 02/02: eina: fix a possible race condition during eina_file_close.
jeyzu pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=58b578c9b07497496fedd51f3aa3bd434a0fa305 commit 58b578c9b07497496fedd51f3aa3bd434a0fa305 Author: Jérémy Zurcher jer...@asynk.ch Date: Wed Nov 20 10:19:16 2013 +0100 eina: fix a possible race condition during eina_file_close. replay 7e8fb93 without the breakage --- ChangeLog | 4 NEWS| 3 ++- src/lib/eina/eina_file_common.c | 9 ++--- src/tests/eina/eina_test_file.c | 34 ++ 4 files changed, 46 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3dc7c28..6c3dea3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2013-11-20 Cedric Bail + + * Eina: Fix a possible race condition during eina_file_close. + 2013-11-19 Tom Hacohen * Evas textblock: Fixed order of tags inserted with markup_app/prepend. diff --git a/NEWS b/NEWS index 6a1f8bd..5ce9bcf 100644 --- a/NEWS +++ b/NEWS @@ -268,7 +268,8 @@ Fixes: - Fix memory leak in eina_xattr_value_ls. - Fix magic failure in eina_value_array_count when array has not been allocated. - Fix issue when wchar_t is signed and eina_unicode does negative array lookups. - - Eina: fix eina_file_map_lines() to not drop of one character in the last line. + - Fix eina_file_map_lines() to not drop of one character in the last line. + - Fix a possible race condition during eina_file_close(). * Eet: - Fix PPC (big endian) image codec bug. - Fix leak in eet_pbkdf2_sha1 with OpenSSL. diff --git a/src/lib/eina/eina_file_common.c b/src/lib/eina/eina_file_common.c index 7b05b3b..7f83c87 100644 --- a/src/lib/eina/eina_file_common.c +++ b/src/lib/eina/eina_file_common.c @@ -451,17 +451,20 @@ eina_file_close(Eina_File *file) EINA_SAFETY_ON_NULL_RETURN(file); + eina_lock_take(_eina_file_lock_cache); + eina_lock_take(file-lock); file-refcount--; if (file-refcount == 0) leave = EINA_FALSE; eina_lock_release(file-lock); - if (leave) return; - - eina_lock_take(_eina_file_lock_cache); + if (leave) goto end; eina_hash_del(_eina_file_cache, file-filename, file); + + // Backend specific file resource close eina_file_real_close(file); + end: eina_lock_release(_eina_file_lock_cache); } diff --git a/src/tests/eina/eina_test_file.c b/src/tests/eina/eina_test_file.c index f2f3225..e8f735d 100644 --- a/src/tests/eina/eina_test_file.c +++ b/src/tests/eina/eina_test_file.c @@ -441,6 +441,39 @@ START_TEST(eina_test_file_virtualize) } END_TEST +static void * +_eina_test_file_thread(void *data EINA_UNUSED, Eina_Thread t EINA_UNUSED) +{ + Eina_File *f; + unsigned int i; + + for (i = 0; i 1; ++i) + { +f = eina_file_open(/bin/sh, EINA_FALSE); +fail_if(!f); +eina_file_close(f); + } + + return NULL; +} + +START_TEST(eina_test_file_thread) +{ + Eina_Thread th[4]; + unsigned int i; + + fail_if(!eina_init()); + + for (i = 0; i 4; i++) + fail_if(!(eina_thread_create(th[i], EINA_THREAD_NORMAL, 0, _eina_test_file_thread, NULL))); + + for (i = 0; i 4; i++) + fail_if(eina_thread_join(th[i]) != NULL); + + eina_shutdown(); +} +END_TEST + void eina_test_file(TCase *tc) { @@ -449,5 +482,6 @@ eina_test_file(TCase *tc) tcase_add_test(tc, eina_file_ls_simple); tcase_add_test(tc, eina_file_map_new_test); tcase_add_test(tc, eina_test_file_virtualize); + tcase_add_test(tc, eina_test_file_thread); } --
[EGIT] [core/efl] master 01/02: Revert eina: fix a possible race condition during eina_file_close.
jeyzu pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=8a3e021298c8d7ebf8cb587554422aa6a93edcc9 commit 8a3e021298c8d7ebf8cb587554422aa6a93edcc9 Author: Jérémy Zurcher jer...@asynk.ch Date: Wed Nov 20 10:11:21 2013 +0100 Revert eina: fix a possible race condition during eina_file_close. it breaks everything This reverts commit 7e8fb93206ee95945bb757267832537c13ab4287. --- ChangeLog | 4 NEWS| 3 +-- src/lib/eina/eina_file.c| 9 +++-- src/lib/eina/eina_file_common.c | 15 +++ src/lib/eina/eina_file_common.h | 3 --- src/lib/eina/eina_file_win32.c | 7 +-- src/tests/eina/eina_test_file.c | 34 -- 7 files changed, 16 insertions(+), 59 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6c3dea3..3dc7c28 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,3 @@ -2013-11-20 Cedric Bail - - * Eina: Fix a possible race condition during eina_file_close. - 2013-11-19 Tom Hacohen * Evas textblock: Fixed order of tags inserted with markup_app/prepend. diff --git a/NEWS b/NEWS index 5ce9bcf..6a1f8bd 100644 --- a/NEWS +++ b/NEWS @@ -268,8 +268,7 @@ Fixes: - Fix memory leak in eina_xattr_value_ls. - Fix magic failure in eina_value_array_count when array has not been allocated. - Fix issue when wchar_t is signed and eina_unicode does negative array lookups. - - Fix eina_file_map_lines() to not drop of one character in the last line. - - Fix a possible race condition during eina_file_close(). + - Eina: fix eina_file_map_lines() to not drop of one character in the last line. * Eet: - Fix PPC (big endian) image codec bug. - Fix leak in eet_pbkdf2_sha1 with OpenSSL. diff --git a/src/lib/eina/eina_file.c b/src/lib/eina/eina_file.c index 8ae5a0f..6d7ee56 100644 --- a/src/lib/eina/eina_file.c +++ b/src/lib/eina/eina_file.c @@ -305,6 +305,11 @@ eina_file_real_close(Eina_File *file) { Eina_File_Map *map; + if (file-refcount != 0) return; + + eina_hash_free(file-rmap); + eina_hash_free(file-map); + EINA_LIST_FREE(file-dead_map, map) { munmap(map-map, map-length); @@ -315,6 +320,8 @@ eina_file_real_close(Eina_File *file) munmap(file-global_map, file-length); if (file-fd != -1) close(file-fd); + + free(file); } static void @@ -905,8 +912,6 @@ eina_file_open(const char *path, Eina_Bool shared) n-shared = shared; eina_lock_new(n-lock); eina_hash_direct_add(_eina_file_cache, n-filename, n); - - EINA_MAGIC_SET(n, EINA_FILE_MAGIC); } else { diff --git a/src/lib/eina/eina_file_common.c b/src/lib/eina/eina_file_common.c index f5724d7..7b05b3b 100644 --- a/src/lib/eina/eina_file_common.c +++ b/src/lib/eina/eina_file_common.c @@ -451,26 +451,17 @@ eina_file_close(Eina_File *file) EINA_SAFETY_ON_NULL_RETURN(file); - eina_lock_take(_eina_file_lock_cache); - eina_lock_take(file-lock); file-refcount--; if (file-refcount == 0) leave = EINA_FALSE; eina_lock_release(file-lock); - if (leave) goto end; + if (leave) return; - eina_hash_del(_eina_file_cache, file-filename, file); + eina_lock_take(_eina_file_lock_cache); - // Backend specific file resource close + eina_hash_del(_eina_file_cache, file-filename, file); eina_file_real_close(file); - // Generic destruction of the file - eina_hash_free(file-rmap); file-rmap = NULL; - eina_hash_free(file-map); file-map = NULL; - EINA_MAGIC_SET(file, 0); - free(file); - - end: eina_lock_release(_eina_file_lock_cache); } diff --git a/src/lib/eina/eina_file_common.h b/src/lib/eina/eina_file_common.h index e3ee0fc..0ac704d 100644 --- a/src/lib/eina/eina_file_common.h +++ b/src/lib/eina/eina_file_common.h @@ -24,14 +24,11 @@ #include eina_lock.h #include eina_list.h -#define EINA_FILE_MAGIC 0xFEEDBEEF - typedef struct _Eina_File_Map Eina_File_Map; typedef struct _Eina_Lines_Iterator Eina_Lines_Iterator; struct _Eina_File { - EINA_MAGIC; const char *filename; Eina_Hash *map; diff --git a/src/lib/eina/eina_file_win32.c b/src/lib/eina/eina_file_win32.c index 8290501..cddf2da 100644 --- a/src/lib/eina/eina_file_win32.c +++ b/src/lib/eina/eina_file_win32.c @@ -366,6 +366,9 @@ eina_file_real_close(Eina_File *file) { Eina_File_Map *map; + eina_hash_free(file-rmap); + eina_hash_free(file-map); + EINA_LIST_FREE(file-dead_map, map) { UnmapViewOfFile(map-map); @@ -377,6 +380,8 @@ eina_file_real_close(Eina_File *file) if (file-fm) CloseHandle(file-fm); if (file-handle) CloseHandle(file-handle); + + free(file); } static void @@ -832,8 +837,6 @@ eina_file_open(const char *path, Eina_Bool shared) n-shared = shared; eina_lock_new(n-lock); eina_hash_direct_add(_eina_file_cache, n-filename, n); - - EINA_MAGIC_SET(n,
Re: [E-devel] [EGIT] [core/efl] master 01/02: Revert eina: fix a possible race condition during eina_file_close.
On Wed, Nov 20, 2013 at 6:11 PM, Jérémy Zurcher jer...@asynk.ch wrote: jeyzu pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=8a3e021298c8d7ebf8cb587554422aa6a93edcc9 commit 8a3e021298c8d7ebf8cb587554422aa6a93edcc9 Author: Jérémy Zurcher jer...@asynk.ch Date: Wed Nov 20 10:11:21 2013 +0100 Revert eina: fix a possible race condition during eina_file_close. it breaks everything Please elaborate. It work for me and solve an actual bugs. How do you see the problem ? This reverts commit 7e8fb93206ee95945bb757267832537c13ab4287. --- ChangeLog | 4 NEWS| 3 +-- src/lib/eina/eina_file.c| 9 +++-- src/lib/eina/eina_file_common.c | 15 +++ src/lib/eina/eina_file_common.h | 3 --- src/lib/eina/eina_file_win32.c | 7 +-- src/tests/eina/eina_test_file.c | 34 -- 7 files changed, 16 insertions(+), 59 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6c3dea3..3dc7c28 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,3 @@ -2013-11-20 Cedric Bail - - * Eina: Fix a possible race condition during eina_file_close. - 2013-11-19 Tom Hacohen * Evas textblock: Fixed order of tags inserted with markup_app/prepend. diff --git a/NEWS b/NEWS index 5ce9bcf..6a1f8bd 100644 --- a/NEWS +++ b/NEWS @@ -268,8 +268,7 @@ Fixes: - Fix memory leak in eina_xattr_value_ls. - Fix magic failure in eina_value_array_count when array has not been allocated. - Fix issue when wchar_t is signed and eina_unicode does negative array lookups. - - Fix eina_file_map_lines() to not drop of one character in the last line. - - Fix a possible race condition during eina_file_close(). + - Eina: fix eina_file_map_lines() to not drop of one character in the last line. * Eet: - Fix PPC (big endian) image codec bug. - Fix leak in eet_pbkdf2_sha1 with OpenSSL. diff --git a/src/lib/eina/eina_file.c b/src/lib/eina/eina_file.c index 8ae5a0f..6d7ee56 100644 --- a/src/lib/eina/eina_file.c +++ b/src/lib/eina/eina_file.c @@ -305,6 +305,11 @@ eina_file_real_close(Eina_File *file) { Eina_File_Map *map; + if (file-refcount != 0) return; + + eina_hash_free(file-rmap); + eina_hash_free(file-map); + EINA_LIST_FREE(file-dead_map, map) { munmap(map-map, map-length); @@ -315,6 +320,8 @@ eina_file_real_close(Eina_File *file) munmap(file-global_map, file-length); if (file-fd != -1) close(file-fd); + + free(file); } static void @@ -905,8 +912,6 @@ eina_file_open(const char *path, Eina_Bool shared) n-shared = shared; eina_lock_new(n-lock); eina_hash_direct_add(_eina_file_cache, n-filename, n); - - EINA_MAGIC_SET(n, EINA_FILE_MAGIC); } else { diff --git a/src/lib/eina/eina_file_common.c b/src/lib/eina/eina_file_common.c index f5724d7..7b05b3b 100644 --- a/src/lib/eina/eina_file_common.c +++ b/src/lib/eina/eina_file_common.c @@ -451,26 +451,17 @@ eina_file_close(Eina_File *file) EINA_SAFETY_ON_NULL_RETURN(file); - eina_lock_take(_eina_file_lock_cache); - eina_lock_take(file-lock); file-refcount--; if (file-refcount == 0) leave = EINA_FALSE; eina_lock_release(file-lock); - if (leave) goto end; + if (leave) return; - eina_hash_del(_eina_file_cache, file-filename, file); + eina_lock_take(_eina_file_lock_cache); - // Backend specific file resource close + eina_hash_del(_eina_file_cache, file-filename, file); eina_file_real_close(file); - // Generic destruction of the file - eina_hash_free(file-rmap); file-rmap = NULL; - eina_hash_free(file-map); file-map = NULL; - EINA_MAGIC_SET(file, 0); - free(file); - - end: eina_lock_release(_eina_file_lock_cache); } diff --git a/src/lib/eina/eina_file_common.h b/src/lib/eina/eina_file_common.h index e3ee0fc..0ac704d 100644 --- a/src/lib/eina/eina_file_common.h +++ b/src/lib/eina/eina_file_common.h @@ -24,14 +24,11 @@ #include eina_lock.h #include eina_list.h -#define EINA_FILE_MAGIC 0xFEEDBEEF - typedef struct _Eina_File_Map Eina_File_Map; typedef struct _Eina_Lines_Iterator Eina_Lines_Iterator; struct _Eina_File { - EINA_MAGIC; const char *filename; Eina_Hash *map; diff --git a/src/lib/eina/eina_file_win32.c b/src/lib/eina/eina_file_win32.c index 8290501..cddf2da 100644 --- a/src/lib/eina/eina_file_win32.c +++ b/src/lib/eina/eina_file_win32.c @@ -366,6 +366,9 @@ eina_file_real_close(Eina_File *file) { Eina_File_Map *map; + eina_hash_free(file-rmap); + eina_hash_free(file-map); + EINA_LIST_FREE(file-dead_map, map) { UnmapViewOfFile(map-map); @@ -377,6 +380,8 @@ eina_file_real_close(Eina_File *file) if (file-fm) CloseHandle(file-fm); if (file-handle)
Re: [E-devel] [EGIT] [core/efl] master 01/02: Revert eina: fix a possible race condition during eina_file_close.
sorry, random crash on e start, no background, no wallpaper preview in settings, terminology crash (does not find its theme files) I rm -fr and rebuild everything to be sure before starting to search for an answer On Wednesday 20 November 2013 18:13, Cedric BAIL wrote : On Wed, Nov 20, 2013 at 6:11 PM, Jérémy Zurcher jer...@asynk.ch wrote: jeyzu pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=8a3e021298c8d7ebf8cb587554422aa6a93edcc9 commit 8a3e021298c8d7ebf8cb587554422aa6a93edcc9 Author: Jérémy Zurcher jer...@asynk.ch Date: Wed Nov 20 10:11:21 2013 +0100 Revert eina: fix a possible race condition during eina_file_close. it breaks everything Please elaborate. It work for me and solve an actual bugs. How do you see the problem ? This reverts commit 7e8fb93206ee95945bb757267832537c13ab4287. --- ChangeLog | 4 NEWS| 3 +-- src/lib/eina/eina_file.c| 9 +++-- src/lib/eina/eina_file_common.c | 15 +++ src/lib/eina/eina_file_common.h | 3 --- src/lib/eina/eina_file_win32.c | 7 +-- src/tests/eina/eina_test_file.c | 34 -- 7 files changed, 16 insertions(+), 59 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6c3dea3..3dc7c28 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,3 @@ -2013-11-20 Cedric Bail - - * Eina: Fix a possible race condition during eina_file_close. - 2013-11-19 Tom Hacohen * Evas textblock: Fixed order of tags inserted with markup_app/prepend. diff --git a/NEWS b/NEWS index 5ce9bcf..6a1f8bd 100644 --- a/NEWS +++ b/NEWS @@ -268,8 +268,7 @@ Fixes: - Fix memory leak in eina_xattr_value_ls. - Fix magic failure in eina_value_array_count when array has not been allocated. - Fix issue when wchar_t is signed and eina_unicode does negative array lookups. - - Fix eina_file_map_lines() to not drop of one character in the last line. - - Fix a possible race condition during eina_file_close(). + - Eina: fix eina_file_map_lines() to not drop of one character in the last line. * Eet: - Fix PPC (big endian) image codec bug. - Fix leak in eet_pbkdf2_sha1 with OpenSSL. diff --git a/src/lib/eina/eina_file.c b/src/lib/eina/eina_file.c index 8ae5a0f..6d7ee56 100644 --- a/src/lib/eina/eina_file.c +++ b/src/lib/eina/eina_file.c @@ -305,6 +305,11 @@ eina_file_real_close(Eina_File *file) { Eina_File_Map *map; + if (file-refcount != 0) return; + + eina_hash_free(file-rmap); + eina_hash_free(file-map); + EINA_LIST_FREE(file-dead_map, map) { munmap(map-map, map-length); @@ -315,6 +320,8 @@ eina_file_real_close(Eina_File *file) munmap(file-global_map, file-length); if (file-fd != -1) close(file-fd); + + free(file); } static void @@ -905,8 +912,6 @@ eina_file_open(const char *path, Eina_Bool shared) n-shared = shared; eina_lock_new(n-lock); eina_hash_direct_add(_eina_file_cache, n-filename, n); - - EINA_MAGIC_SET(n, EINA_FILE_MAGIC); } else { diff --git a/src/lib/eina/eina_file_common.c b/src/lib/eina/eina_file_common.c index f5724d7..7b05b3b 100644 --- a/src/lib/eina/eina_file_common.c +++ b/src/lib/eina/eina_file_common.c @@ -451,26 +451,17 @@ eina_file_close(Eina_File *file) EINA_SAFETY_ON_NULL_RETURN(file); - eina_lock_take(_eina_file_lock_cache); - eina_lock_take(file-lock); file-refcount--; if (file-refcount == 0) leave = EINA_FALSE; eina_lock_release(file-lock); - if (leave) goto end; + if (leave) return; - eina_hash_del(_eina_file_cache, file-filename, file); + eina_lock_take(_eina_file_lock_cache); - // Backend specific file resource close + eina_hash_del(_eina_file_cache, file-filename, file); eina_file_real_close(file); - // Generic destruction of the file - eina_hash_free(file-rmap); file-rmap = NULL; - eina_hash_free(file-map); file-map = NULL; - EINA_MAGIC_SET(file, 0); - free(file); - - end: eina_lock_release(_eina_file_lock_cache); } diff --git a/src/lib/eina/eina_file_common.h b/src/lib/eina/eina_file_common.h index e3ee0fc..0ac704d 100644 --- a/src/lib/eina/eina_file_common.h +++ b/src/lib/eina/eina_file_common.h @@ -24,14 +24,11 @@ #include eina_lock.h #include eina_list.h -#define EINA_FILE_MAGIC 0xFEEDBEEF - typedef struct _Eina_File_Map Eina_File_Map; typedef struct _Eina_Lines_Iterator Eina_Lines_Iterator; struct _Eina_File { - EINA_MAGIC; const char *filename; Eina_Hash *map; diff --git a/src/lib/eina/eina_file_win32.c b/src/lib/eina/eina_file_win32.c index 8290501..cddf2da 100644 ---
Re: [E-devel] [EGIT] [core/efl] master 01/02: Revert eina: fix a possible race condition during eina_file_close.
On Wed, Nov 20, 2013 at 6:30 PM, Jérémy Zurcher jer...@asynk.ch wrote: random crash on e start, no background, no wallpaper preview in settings, terminology crash (does not find its theme files) Weird, I have all of them working with that patch here. What is your architecture/system ? -- Cedric BAIL -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/efl] master 01/02: Revert eina: fix a possible race condition during eina_file_close.
Hello. On Wed, 2013-11-20 at 10:30, Jérémy Zurcher wrote: sorry, random crash on e start, no background, no wallpaper preview in settings, terminology crash (does not find its theme files) Besides the termininology crash I just had exactly the same. Let me rebuild with the revert and check. regards Stefan Schmidt -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] master 01/01: edje - removed unused function.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=21b82129025d96d872d2d7fda1eb62c67a5b5207 commit 21b82129025d96d872d2d7fda1eb62c67a5b5207 Author: ChunEon Park her...@hermet.pe.kr Date: Wed Nov 20 18:52:12 2013 +0900 edje - removed unused function. --- src/lib/edje/edje_calc.c| 6 -- src/lib/edje/edje_private.h | 1 - 2 files changed, 7 deletions(-) diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c index 4f02f78..2f9f1d2 100644 --- a/src/lib/edje/edje_calc.c +++ b/src/lib/edje/edje_calc.c @@ -765,12 +765,6 @@ _edje_recalc_do(Edje *ed) } } -void -_edje_part_recalc_1(Edje *ed, Edje_Real_Part *ep) -{ - _edje_part_recalc(ed, ep, FLAG_XY, NULL); -} - int _edje_part_dragable_calc(Edje *ed EINA_UNUSED, Edje_Real_Part *ep, FLOAT_T *x, FLOAT_T *y) { diff --git a/src/lib/edje/edje_private.h b/src/lib/edje/edje_private.h index 524335e..7fc53fb 100644 --- a/src/lib/edje/edje_private.h +++ b/src/lib/edje/edje_private.h @@ -1947,7 +1947,6 @@ Edje_Part_Description_Common *_edje_part_description_find(Edje *ed, void _edje_part_description_apply(Edje *ed, Edje_Real_Part *ep, const char *d1, double v1, const char *d2, double v2); void _edje_recalc(Edje *ed); void _edje_recalc_do(Edje *ed); -void _edje_part_recalc_1(Edje *ed, Edje_Real_Part *ep); int _edje_part_dragable_calc(Edje *ed, Edje_Real_Part *ep, FLOAT_T *x, FLOAT_T *y); void _edje_dragable_pos_set(Edje *ed, Edje_Real_Part *ep, FLOAT_T x, FLOAT_T y); --
[EGIT] [apps/ecrire] master 01/01: Updated ecrire icon.
tasn pushed a commit to branch master. http://git.enlightenment.org/apps/ecrire.git/commit/?id=1ba3d389203c4bf74b19c7f109259ed8859ef0b2 commit 1ba3d389203c4bf74b19c7f109259ed8859ef0b2 Author: Tom Hacohen t...@stosb.com Date: Wed Nov 20 10:04:38 2013 + Updated ecrire icon. Many thanks to ApB (Apostolos B.) for providing the new one. This closes T534 --- AUTHORS | 3 +++ data/ecrire.png | Bin 8014 - 9249 bytes 2 files changed, 3 insertions(+) diff --git a/AUTHORS b/AUTHORS index ee22837..b6633c7 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1 +1,4 @@ Tom Hacohen t...@stosb.com + +Ecrire icon: +ApB (Apostolos B.) diff --git a/data/ecrire.png b/data/ecrire.png index 673a412..febce16 100644 Binary files a/data/ecrire.png and b/data/ecrire.png differ --
Re: [E-devel] [EGIT] [core/efl] master 01/02: Revert eina: fix a possible race condition during eina_file_close.
On Wednesday 20 November 2013 18:25, Cedric BAIL wrote : On Wed, Nov 20, 2013 at 6:30 PM, Jérémy Zurcher jer...@asynk.ch wrote: random crash on e start, no background, no wallpaper preview in settings, terminology crash (does not find its theme files) Weird, I have all of them working with that patch here. What is your architecture/system ? 64bits model name : Intel(R) Core(TM)2 Duo CPU E7500 @ 2.93GHz this only is enough to break me ! diff --git a/src/lib/eina/eina_file_common.h b/src/lib/eina/eina_file_common.h index 0ac704d..e3ee0fc 100644 --- a/src/lib/eina/eina_file_common.h +++ b/src/lib/eina/eina_file_common.h @@ -24,11 +24,14 @@ #include eina_lock.h #include eina_list.h +#define EINA_FILE_MAGIC 0xFEEDBEEF + typedef struct _Eina_File_Map Eina_File_Map; typedef struct _Eina_Lines_Iterator Eina_Lines_Iterator; struct _Eina_File { + EINA_MAGIC; const char *filename; Eina_Hash *map; -- Cedric BAIL -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel --- Hell'O from Yverdoom Jérémy (jeyzu) -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/efl] master 01/01: Docs fix for ecore_animator_add fixed
You stole credit. :) Either don't change people's commits (and just add a fixup commit) or make sure to manually set the author to the correct value... -- Tom. On 19/11/13 23:42, Carsten Haitzler (Rasterman) wrote: raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=0146e3dacc87189eba100bf5489498290ec9f86b commit 0146e3dacc87189eba100bf5489498290ec9f86b Author: Carsten Haitzler (Rasterman) ras...@rasterman.com Date: Wed Nov 20 08:41:42 2013 +0900 Docs fix for ecore_animator_add fixed Summary: Function returns boolean value, docs said it can return int. I had fixed that. Reviewers: cedric, raster Reviewed By: raster CC: cedric Differential Revision: https://phab.enlightenment.org/D342 --- src/lib/ecore/Ecore_Legacy.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib/ecore/Ecore_Legacy.h b/src/lib/ecore/Ecore_Legacy.h index 0bc0009..d7d01ce 100644 --- a/src/lib/ecore/Ecore_Legacy.h +++ b/src/lib/ecore/Ecore_Legacy.h @@ -86,9 +86,9 @@ EAPI void *ecore_poller_del(Ecore_Poller *poller); * the @p frametime interval set by ecore_animator_frametime_set(). The * function will be passed the @p data pointer as its parameter. * - * When the animator @p func is called, it must return a value of either 1 or - * 0. If it returns 1 (or ECORE_CALLBACK_RENEW), it will be called again at - * the next tick, or if it returns 0 (or ECORE_CALLBACK_CANCEL) it will be + * When the animator @p func is called, it must return a boolean value. + * If it returns EINA_TRUE (or ECORE_CALLBACK_RENEW), it will be called again at + * the next tick, or if it returns EINA_FALSE (or ECORE_CALLBACK_CANCEL) it will be * deleted automatically making any references/handles for it invalid. * * @note The default @p frametime value is 1/30th of a second. -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/efl] master 01/01: Docs fix for ecore_animator_add fixed
btw how did this happen? arc didnt work? Daniel Juyung Seo (SeoZ) On Nov 20, 2013 7:15 PM, Tom Hacohen tom.haco...@samsung.com wrote: You stole credit. :) Either don't change people's commits (and just add a fixup commit) or make sure to manually set the author to the correct value... -- Tom. On 19/11/13 23:42, Carsten Haitzler (Rasterman) wrote: raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=0146e3dacc87189eba100bf5489498290ec9f86b commit 0146e3dacc87189eba100bf5489498290ec9f86b Author: Carsten Haitzler (Rasterman) ras...@rasterman.com Date: Wed Nov 20 08:41:42 2013 +0900 Docs fix for ecore_animator_add fixed Summary: Function returns boolean value, docs said it can return int. I had fixed that. Reviewers: cedric, raster Reviewed By: raster CC: cedric Differential Revision: https://phab.enlightenment.org/D342 --- src/lib/ecore/Ecore_Legacy.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib/ecore/Ecore_Legacy.h b/src/lib/ecore/Ecore_Legacy.h index 0bc0009..d7d01ce 100644 --- a/src/lib/ecore/Ecore_Legacy.h +++ b/src/lib/ecore/Ecore_Legacy.h @@ -86,9 +86,9 @@ EAPI void *ecore_poller_del(Ecore_Poller *poller); * the @p frametime interval set by ecore_animator_frametime_set(). The * function will be passed the @p data pointer as its parameter. * - * When the animator @p func is called, it must return a value of either 1 or - * 0. If it returns 1 (or ECORE_CALLBACK_RENEW), it will be called again at - * the next tick, or if it returns 0 (or ECORE_CALLBACK_CANCEL) it will be + * When the animator @p func is called, it must return a boolean value. + * If it returns EINA_TRUE (or ECORE_CALLBACK_RENEW), it will be called again at + * the next tick, or if it returns EINA_FALSE (or ECORE_CALLBACK_CANCEL) it will be * deleted automatically making any references/handles for it invalid. * * @note The default @p frametime value is 1/30th of a second. -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/efl] master 01/01: Docs fix for ecore_animator_add fixed
On 20/11/13 10:32, Daniel Juyung Seo wrote: btw how did this happen? arc didnt work? No idea actually. -- Tom. -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/efl] master 01/01: Docs fix for ecore_animator_add fixed
On Wed, 20 Nov 2013 10:10:07 + Tom Hacohen tom.haco...@samsung.com said: You stole credit. :) Either don't change people's commits (and just add a fixup commit) or make sure to manually set the author to the correct value... i didnt steal credit - i used arc toi patch it in it SHOULD have kept author. it has in the past. the tool went wrong somehow - i don't know why/how. arch patch etc. set the author FROM the phab/arc patch info. or have in the past. -- Tom. On 19/11/13 23:42, Carsten Haitzler (Rasterman) wrote: raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=0146e3dacc87189eba100bf5489498290ec9f86b commit 0146e3dacc87189eba100bf5489498290ec9f86b Author: Carsten Haitzler (Rasterman) ras...@rasterman.com Date: Wed Nov 20 08:41:42 2013 +0900 Docs fix for ecore_animator_add fixed Summary: Function returns boolean value, docs said it can return int. I had fixed that. Reviewers: cedric, raster Reviewed By: raster CC: cedric Differential Revision: https://phab.enlightenment.org/D342 --- src/lib/ecore/Ecore_Legacy.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib/ecore/Ecore_Legacy.h b/src/lib/ecore/Ecore_Legacy.h index 0bc0009..d7d01ce 100644 --- a/src/lib/ecore/Ecore_Legacy.h +++ b/src/lib/ecore/Ecore_Legacy.h @@ -86,9 +86,9 @@ EAPI void *ecore_poller_del(Ecore_Poller *poller); * the @p frametime interval set by ecore_animator_frametime_set(). The * function will be passed the @p data pointer as its parameter. * - * When the animator @p func is called, it must return a value of either 1 or - * 0. If it returns 1 (or ECORE_CALLBACK_RENEW), it will be called again at - * the next tick, or if it returns 0 (or ECORE_CALLBACK_CANCEL) it will be + * When the animator @p func is called, it must return a boolean value. + * If it returns EINA_TRUE (or ECORE_CALLBACK_RENEW), it will be called again at + * the next tick, or if it returns EINA_FALSE (or ECORE_CALLBACK_CANCEL) it will be * deleted automatically making any references/handles for it invalid. * * @note The default @p frametime value is 1/30th of a second. -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- - Codito, ergo sum - I code, therefore I am -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/efl] master 01/01: Docs fix for ecore_animator_add fixed
On Wed, 20 Nov 2013 19:32:59 +0900 Daniel Juyung Seo seojuyu...@gmail.com said: btw how did this happen? arc didnt work? arc somehow didnt do the right thing author. it's the first time i used arc on my desktop at home since i re-installed with arch - it works fine on my laptop on arch so i dont know why. Daniel Juyung Seo (SeoZ) On Nov 20, 2013 7:15 PM, Tom Hacohen tom.haco...@samsung.com wrote: You stole credit. :) Either don't change people's commits (and just add a fixup commit) or make sure to manually set the author to the correct value... -- Tom. On 19/11/13 23:42, Carsten Haitzler (Rasterman) wrote: raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=0146e3dacc87189eba100bf5489498290ec9f86b commit 0146e3dacc87189eba100bf5489498290ec9f86b Author: Carsten Haitzler (Rasterman) ras...@rasterman.com Date: Wed Nov 20 08:41:42 2013 +0900 Docs fix for ecore_animator_add fixed Summary: Function returns boolean value, docs said it can return int. I had fixed that. Reviewers: cedric, raster Reviewed By: raster CC: cedric Differential Revision: https://phab.enlightenment.org/D342 --- src/lib/ecore/Ecore_Legacy.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib/ecore/Ecore_Legacy.h b/src/lib/ecore/Ecore_Legacy.h index 0bc0009..d7d01ce 100644 --- a/src/lib/ecore/Ecore_Legacy.h +++ b/src/lib/ecore/Ecore_Legacy.h @@ -86,9 +86,9 @@ EAPI void *ecore_poller_del(Ecore_Poller *poller); * the @p frametime interval set by ecore_animator_frametime_set(). The * function will be passed the @p data pointer as its parameter. * - * When the animator @p func is called, it must return a value of either 1 or - * 0. If it returns 1 (or ECORE_CALLBACK_RENEW), it will be called again at - * the next tick, or if it returns 0 (or ECORE_CALLBACK_CANCEL) it will be + * When the animator @p func is called, it must return a boolean value. + * If it returns EINA_TRUE (or ECORE_CALLBACK_RENEW), it will be called again at + * the next tick, or if it returns EINA_FALSE (or ECORE_CALLBACK_CANCEL) it will be * deleted automatically making any references/handles for it invalid. * * @note The default @p frametime value is 1/30th of a second. -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- - Codito, ergo sum - I code, therefore I am -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] master 02/02: eina: cleanup file destruction and reintroduce EINA_MAGIC use.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=0cfb40b7fb03a96973fe27542b4a5a739eca4386 commit 0cfb40b7fb03a96973fe27542b4a5a739eca4386 Author: Cedric Bail cedric.b...@samsung.com Date: Wed Nov 20 20:06:50 2013 +0900 eina: cleanup file destruction and reintroduce EINA_MAGIC use. --- src/lib/eina/eina_file.c| 11 +++ src/lib/eina/eina_file_common.c | 19 --- src/lib/eina/eina_file_common.h | 4 src/lib/eina/eina_file_win32.c | 9 +++-- 4 files changed, 26 insertions(+), 17 deletions(-) diff --git a/src/lib/eina/eina_file.c b/src/lib/eina/eina_file.c index 6d7ee56..1ae3681 100644 --- a/src/lib/eina/eina_file.c +++ b/src/lib/eina/eina_file.c @@ -305,11 +305,6 @@ eina_file_real_close(Eina_File *file) { Eina_File_Map *map; - if (file-refcount != 0) return; - - eina_hash_free(file-rmap); - eina_hash_free(file-map); - EINA_LIST_FREE(file-dead_map, map) { munmap(map-map, map-length); @@ -320,8 +315,6 @@ eina_file_real_close(Eina_File *file) munmap(file-global_map, file-length); if (file-fd != -1) close(file-fd); - - free(file); } static void @@ -875,7 +868,7 @@ eina_file_open(const char *path, Eina_Bool shared) { file-delete_me = EINA_TRUE; eina_hash_del(_eina_file_cache, file-filename, file); -eina_file_real_close(file); + eina_file_clean_close(file); file = NULL; } @@ -912,6 +905,8 @@ eina_file_open(const char *path, Eina_Bool shared) n-shared = shared; eina_lock_new(n-lock); eina_hash_direct_add(_eina_file_cache, n-filename, n); + + EINA_MAGIC_SET(n, EINA_FILE_MAGIC); } else { diff --git a/src/lib/eina/eina_file_common.c b/src/lib/eina/eina_file_common.c index 7f83c87..7952190 100644 --- a/src/lib/eina/eina_file_common.c +++ b/src/lib/eina/eina_file_common.c @@ -444,6 +444,21 @@ eina_file_dup(const Eina_File *f) return file; } +void +eina_file_clean_close(Eina_File *file) +{ + // Generic destruction of the file + eina_hash_free(file-rmap); file-rmap = NULL; + eina_hash_free(file-map); file-map = NULL; + + // Backend specific file resource close + eina_file_real_close(file); + + // Final death + EINA_MAGIC_SET(file, 0); + free(file); +} + EAPI void eina_file_close(Eina_File *file) { @@ -461,9 +476,7 @@ eina_file_close(Eina_File *file) eina_hash_del(_eina_file_cache, file-filename, file); - // Backend specific file resource close - eina_file_real_close(file); - + eina_file_clean_close(file); end: eina_lock_release(_eina_file_lock_cache); } diff --git a/src/lib/eina/eina_file_common.h b/src/lib/eina/eina_file_common.h index 0ac704d..62ad2b2 100644 --- a/src/lib/eina/eina_file_common.h +++ b/src/lib/eina/eina_file_common.h @@ -24,11 +24,14 @@ #include eina_lock.h #include eina_list.h +#define EINA_FILE_MAGIC 0xFEEDBEEF + typedef struct _Eina_File_Map Eina_File_Map; typedef struct _Eina_Lines_Iterator Eina_Lines_Iterator; struct _Eina_File { + EINA_MAGIC; const char *filename; Eina_Hash *map; @@ -121,6 +124,7 @@ struct _Eina_Lines_Iterator Eina_Bool eina_file_path_relative(const char *path); Eina_Tmpstr *eina_file_current_directory_get(const char *path, size_t len); char *eina_file_cleanup(Eina_Tmpstr *path); +void eina_file_clean_close(Eina_File *file); void eina_file_real_close(Eina_File *file); void eina_file_flush(Eina_File *file, unsigned long int length); void eina_file_common_map_free(Eina_File *file, void *map, diff --git a/src/lib/eina/eina_file_win32.c b/src/lib/eina/eina_file_win32.c index cddf2da..7cb108d 100644 --- a/src/lib/eina/eina_file_win32.c +++ b/src/lib/eina/eina_file_win32.c @@ -366,9 +366,6 @@ eina_file_real_close(Eina_File *file) { Eina_File_Map *map; - eina_hash_free(file-rmap); - eina_hash_free(file-map); - EINA_LIST_FREE(file-dead_map, map) { UnmapViewOfFile(map-map); @@ -380,8 +377,6 @@ eina_file_real_close(Eina_File *file) if (file-fm) CloseHandle(file-fm); if (file-handle) CloseHandle(file-handle); - - free(file); } static void @@ -807,7 +802,7 @@ eina_file_open(const char *path, Eina_Bool shared) { file-delete_me = EINA_TRUE; eina_hash_del(_eina_file_cache, file-filename, file); -eina_file_real_close(file); +eina_file_clean_close(file); file = NULL; } @@ -837,6 +832,8 @@ eina_file_open(const char *path, Eina_Bool shared) n-shared = shared; eina_lock_new(n-lock); eina_hash_direct_add(_eina_file_cache, n-filename, n); + + EINA_MAGIC_SET(n, EINA_FILE_MAGIC); } else { --
[EGIT] [core/efl] master 01/02: edje: fix use of eina_hash_pointer_new to actually look at the right value.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=4096a185232ce685db92b391d8a8cc241a090b2c commit 4096a185232ce685db92b391d8a8cc241a090b2c Author: Cedric Bail cedric.b...@samsung.com Date: Wed Nov 20 20:04:58 2013 +0900 edje: fix use of eina_hash_pointer_new to actually look at the right value. --- ChangeLog | 1 + NEWS | 3 ++- src/lib/edje/edje_cache.c | 10 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6c3dea3..b9c4c28 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,7 @@ 2013-11-20 Cedric Bail * Eina: Fix a possible race condition during eina_file_close. + * Edje: Fix use of eina_hash_pointer to actually look at the pointer. 2013-11-19 Tom Hacohen diff --git a/NEWS b/NEWS index 5ce9bcf..01803f8 100644 --- a/NEWS +++ b/NEWS @@ -435,7 +435,8 @@ Fixes: - Fix size calculation of flags of signal callbacks - Check for both Lua 5.1 and 5.2. - Fixed memory leak in the edje map color transition. -- Add null checking for name of anchor and item in geometry get functions. + - Add null checking for name of anchor and item in geometry get functions. + - Fix use of eina_hash_pointer to actually look at the pointer value. * Efreet: - Fix desktop command parsing of https. diff --git a/src/lib/edje/edje_cache.c b/src/lib/edje/edje_cache.c index f2e9b20..607eff5 100644 --- a/src/lib/edje/edje_cache.c +++ b/src/lib/edje/edje_cache.c @@ -388,7 +388,7 @@ _edje_file_dangling(Edje_File *edf) if (edf-dangling) return; edf-dangling = EINA_TRUE; - eina_hash_del(_edje_file_hash, edf-f, edf); + eina_hash_del(_edje_file_hash, edf-f, edf); if (!eina_hash_population(_edje_file_hash)) { eina_hash_free(_edje_file_hash); @@ -411,7 +411,7 @@ _edje_cache_file_coll_open(const Eina_File *file, const char *coll, int *error_r goto find_list; } - edf = eina_hash_find(_edje_file_hash, file); + edf = eina_hash_find(_edje_file_hash, file); if (edf) { edf-references++; @@ -425,7 +425,7 @@ find_list: { edf-references = 1; _edje_file_cache = eina_list_remove_list(_edje_file_cache, l); -eina_hash_direct_add(_edje_file_hash, file, edf); +eina_hash_direct_add(_edje_file_hash, edf-f, edf); goto open; } } @@ -439,7 +439,7 @@ find_list: (void) ed; #endif - eina_hash_direct_add(_edje_file_hash, file, edf); + eina_hash_direct_add(_edje_file_hash, edf-f, edf); /* return edf; */ open: @@ -654,7 +654,7 @@ _edje_cache_file_unref(Edje_File *edf) return; } - eina_hash_del(_edje_file_hash, edf-f, edf); + eina_hash_del(_edje_file_hash, edf-f, edf); if (!eina_hash_population(_edje_file_hash)) { eina_hash_free(_edje_file_hash); --
Re: [E-devel] [EGIT] [core/efl] master 01/02: Revert eina: fix a possible race condition during eina_file_close.
On Wed, Nov 20, 2013 at 7:25 PM, Jérémy Zurcher jer...@asynk.ch wrote: On Wednesday 20 November 2013 18:25, Cedric BAIL wrote : On Wed, Nov 20, 2013 at 6:30 PM, Jérémy Zurcher jer...@asynk.ch wrote: random crash on e start, no background, no wallpaper preview in settings, terminology crash (does not find its theme files) Weird, I have all of them working with that patch here. What is your architecture/system ? 64bits model name : Intel(R) Core(TM)2 Duo CPU E7500 @ 2.93GHz this only is enough to break me ! Ok, found the problem and pushed back again the magic in. In fact the real magic is how did that work at all before ! It was a bug in edje that wasn't using eina_hash_pointer properly. Let me know if things are fixed now for you. diff --git a/src/lib/eina/eina_file_common.h b/src/lib/eina/eina_file_common.h index 0ac704d..e3ee0fc 100644 --- a/src/lib/eina/eina_file_common.h +++ b/src/lib/eina/eina_file_common.h @@ -24,11 +24,14 @@ #include eina_lock.h #include eina_list.h +#define EINA_FILE_MAGIC 0xFEEDBEEF + typedef struct _Eina_File_Map Eina_File_Map; typedef struct _Eina_Lines_Iterator Eina_Lines_Iterator; struct _Eina_File { + EINA_MAGIC; const char *filename; Eina_Hash *map; -- Cedric BAIL -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/efl] master 01/02: edje: fix use of eina_hash_pointer_new to actually look at the right value.
On 20/11/13 11:09, Cedric Bail wrote: @@ -411,7 +411,7 @@ _edje_cache_file_coll_open(const Eina_File *file, const char *coll, int *error_r goto find_list; } - edf = eina_hash_find(_edje_file_hash, file); + edf = eina_hash_find(_edje_file_hash, file); Dude, no way in hell this is correct. You are looking up the local parameter address in the hash table, essentially causing cache to *always* miss. -- Tom. -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/efl] master 01/02: edje: fix use of eina_hash_pointer_new to actually look at the right value.
On 20/11/13 11:17, Tom Hacohen wrote: On 20/11/13 11:09, Cedric Bail wrote: @@ -411,7 +411,7 @@ _edje_cache_file_coll_open(const Eina_File *file, const char *coll, int *error_r goto find_list; } - edf = eina_hash_find(_edje_file_hash, file); + edf = eina_hash_find(_edje_file_hash, file); Dude, no way in hell this is correct. You are looking up the local parameter address in the hash table, essentially causing cache to *always* miss. Nvm, eina_hash_pointer is crazy. -- Tom. -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/elementary] master 01/01: elementary/elc_multibuttonentry.c : Multibuttonentry doesn't need to call parents' on_focus.
woohyun pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=6c3ac8bd674352eda408e3b047d855b5607d3b94 commit 6c3ac8bd674352eda408e3b047d855b5607d3b94 Author: WooHyun Jung wh0705.j...@samsung.com Date: Wed Nov 20 20:17:17 2013 +0900 elementary/elc_multibuttonentry.c : Multibuttonentry doesn't need to call parents' on_focus. --- src/lib/elc_multibuttonentry.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/lib/elc_multibuttonentry.c b/src/lib/elc_multibuttonentry.c index 6ddb70f..77004f9 100644 --- a/src/lib/elc_multibuttonentry.c +++ b/src/lib/elc_multibuttonentry.c @@ -287,9 +287,6 @@ _elm_multibuttonentry_smart_on_focus(Eo *obj, void *_pd, va_list *list) if (ret) *ret = EINA_FALSE; Eina_Bool int_ret; - eo_do_super(obj, MY_CLASS, elm_wdg_on_focus(int_ret)); - if (!int_ret) return; - if (elm_widget_focus_get(obj)) { // ACCESS --
[EGIT] [core/elementary] master 01/01: Fix build warning.
woohyun pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=3d2e5d44aa4edc1675914b546535d44311cc22ae commit 3d2e5d44aa4edc1675914b546535d44311cc22ae Author: WooHyun Jung wh0705.j...@samsung.com Date: Wed Nov 20 20:23:49 2013 +0900 Fix build warning. --- src/lib/elc_multibuttonentry.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/lib/elc_multibuttonentry.c b/src/lib/elc_multibuttonentry.c index 77004f9..800401b 100644 --- a/src/lib/elc_multibuttonentry.c +++ b/src/lib/elc_multibuttonentry.c @@ -285,7 +285,6 @@ _elm_multibuttonentry_smart_on_focus(Eo *obj, void *_pd, va_list *list) Eina_Bool *ret = va_arg(*list, Eina_Bool *); if (ret) *ret = EINA_FALSE; - Eina_Bool int_ret; if (elm_widget_focus_get(obj)) { --
[EGIT] [core/efl] master 01/01: eo - fix _parent_set in base clase when old_parent_pd is NULL
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=0355a6a296d8c4a22bf2a2e844a0ba0d4e0abd2e commit 0355a6a296d8c4a22bf2a2e844a0ba0d4e0abd2e Author: Carsten Haitzler (Rasterman) ras...@rasterman.com Date: Wed Nov 20 20:20:26 2013 +0900 eo - fix _parent_set in base clase when old_parent_pd is NULL this should fix T538 --- src/lib/eo/eo_base_class.c | 10 ++ 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/lib/eo/eo_base_class.c b/src/lib/eo/eo_base_class.c index 95ca1b5..b553178 100644 --- a/src/lib/eo/eo_base_class.c +++ b/src/lib/eo/eo_base_class.c @@ -131,8 +131,9 @@ _parent_set(Eo *obj, void *class_data, va_list *list) Private_Data *old_parent_pd; old_parent_pd = eo_data_scope_get(pd-parent, EO_BASE_CLASS); -old_parent_pd-children = eina_list_remove(old_parent_pd-children, - obj); +if (old_parent_pd) + old_parent_pd-children = eina_list_remove(old_parent_pd-children, + obj); eo_xunref(obj, pd-parent); } @@ -142,8 +143,9 @@ _parent_set(Eo *obj, void *class_data, va_list *list) Private_Data *parent_pd = NULL; parent_pd = eo_data_scope_get(parent_id, EO_BASE_CLASS); -parent_pd-children = eina_list_append(parent_pd-children, - obj); +if (parent_pd) + parent_pd-children = eina_list_append(parent_pd-children, + obj); eo_xref(obj, pd-parent); } } --
Re: [E-devel] [EGIT] [core/elementary] master 01/01: Fix build warning.
Comment regarding the commit message (yeah, I'm a pedantic asshole): You didn't fix a build warning, you removed an unused variable. :) -- Tom. On 20/11/13 11:23, WooHyun Jung wrote: woohyun pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=3d2e5d44aa4edc1675914b546535d44311cc22ae commit 3d2e5d44aa4edc1675914b546535d44311cc22ae Author: WooHyun Jung wh0705.j...@samsung.com Date: Wed Nov 20 20:23:49 2013 +0900 Fix build warning. --- src/lib/elc_multibuttonentry.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/lib/elc_multibuttonentry.c b/src/lib/elc_multibuttonentry.c index 77004f9..800401b 100644 --- a/src/lib/elc_multibuttonentry.c +++ b/src/lib/elc_multibuttonentry.c @@ -285,7 +285,6 @@ _elm_multibuttonentry_smart_on_focus(Eo *obj, void *_pd, va_list *list) Eina_Bool *ret = va_arg(*list, Eina_Bool *); if (ret) *ret = EINA_FALSE; - Eina_Bool int_ret; if (elm_widget_focus_get(obj)) { -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/elementary] master 01/01: Fix build warning.
On Wed, 20 Nov 2013 11:21:38 + Tom Hacohen tom.haco...@samsung.com said: Comment regarding the commit message (yeah, I'm a pedantic asshole): yes. :P :) -- - Codito, ergo sum - I code, therefore I am -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/elementary] master 01/01: Fix build warning.
Tom thanks :) good advice. -Original Message- From: Tom Hacohenlt;tom.haco...@samsung.comgt; To: Enlightenment developer listlt;enlightenment-devel@lists.sourceforge.netgt;; Cc: Sent: 2013-11-20 (수) 20:21:38 Subject: Re: [E-devel] [EGIT] [core/elementary] master 01/01: Fix build warning. Comment regarding the commit message (yeah, I'm a pedantic asshole): You didn't fix a build warning, you removed an unused variable. :) -- Tom. On 20/11/13 11:23, WooHyun Jung wrote: gt; woohyun pushed a commit to branch master. gt; gt; http://git.enlightenment.org/core/elementary.git/commit/?id=3d2e5d44aa4edc1675914b546535d44311cc22ae gt; gt; commit 3d2e5d44aa4edc1675914b546535d44311cc22ae gt; Author: WooHyun Jung lt;wh0705.junggt;@samsung.comgt; gt; Date: Wed Nov 20 20:23:49 2013 +0900 gt; gt; Fix build warning. gt; --- gt; src/lib/elc_multibuttonentry.c | 1 - gt; 1 file changed, 1 deletion(-) gt; gt; diff --git a/src/lib/elc_multibuttonentry.c b/src/lib/elc_multibuttonentry.c gt; index 77004f9..800401b 100644 gt; --- a/src/lib/elc_multibuttonentry.c gt; +++ b/src/lib/elc_multibuttonentry.c gt; @@ -285,7 +285,6 @@ _elm_multibuttonentry_smart_on_focus(Eo *obj, void *_pd, va_list *list) gt; gt; Eina_Bool *ret = va_arg(*list, Eina_Bool *); gt; if (ret) *ret = EINA_FALSE; gt; - Eina_Bool int_ret; gt; gt; if (elm_widget_focus_get(obj)) gt;{ gt; -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311amp;iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/elementary] master 01/01: Fix build warning.
On Wed, Nov 20, 2013 at 8:21 PM, Tom Hacohen tom.haco...@samsung.comwrote: Comment regarding the commit message (yeah, I'm a pedantic asshole): A pedantic asshole. So true :) Daniel Juyung Seo (SeoZ) You didn't fix a build warning, you removed an unused variable. :) -- Tom. On 20/11/13 11:23, WooHyun Jung wrote: woohyun pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=3d2e5d44aa4edc1675914b546535d44311cc22ae commit 3d2e5d44aa4edc1675914b546535d44311cc22ae Author: WooHyun Jung wh0705.j...@samsung.com Date: Wed Nov 20 20:23:49 2013 +0900 Fix build warning. --- src/lib/elc_multibuttonentry.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/lib/elc_multibuttonentry.c b/src/lib/elc_multibuttonentry.c index 77004f9..800401b 100644 --- a/src/lib/elc_multibuttonentry.c +++ b/src/lib/elc_multibuttonentry.c @@ -285,7 +285,6 @@ _elm_multibuttonentry_smart_on_focus(Eo *obj, void *_pd, va_list *list) Eina_Bool *ret = va_arg(*list, Eina_Bool *); if (ret) *ret = EINA_FALSE; - Eina_Bool int_ret; if (elm_widget_focus_get(obj)) { -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/elementary] master 01/01: Fix build warning.
You must be doing something wrong. You are the first one not calling me an asshole. :P -- Tom. On 20/11/13 11:38, woohyun wrote: Tom thanks :) good advice. -Original Message- From: Tom Hacohenlt;tom.haco...@samsung.comgt; To: Enlightenment developer listlt;enlightenment-devel@lists.sourceforge.netgt;; Cc: Sent: 2013-11-20 (수) 20:21:38 Subject: Re: [E-devel] [EGIT] [core/elementary] master 01/01: Fix build warning. Comment regarding the commit message (yeah, I'm a pedantic asshole): You didn't fix a build warning, you removed an unused variable. :) -- Tom. On 20/11/13 11:23, WooHyun Jung wrote: gt; woohyun pushed a commit to branch master. gt; gt; http://git.enlightenment.org/core/elementary.git/commit/?id=3d2e5d44aa4edc1675914b546535d44311cc22ae gt; gt; commit 3d2e5d44aa4edc1675914b546535d44311cc22ae gt; Author: WooHyun Jung lt;wh0705.junggt;@samsung.comgt; gt; Date: Wed Nov 20 20:23:49 2013 +0900 gt; gt; Fix build warning. gt; --- gt; src/lib/elc_multibuttonentry.c | 1 - gt; 1 file changed, 1 deletion(-) gt; gt; diff --git a/src/lib/elc_multibuttonentry.c b/src/lib/elc_multibuttonentry.c gt; index 77004f9..800401b 100644 gt; --- a/src/lib/elc_multibuttonentry.c gt; +++ b/src/lib/elc_multibuttonentry.c gt; @@ -285,7 +285,6 @@ _elm_multibuttonentry_smart_on_focus(Eo *obj, void *_pd, va_list *list) gt; gt; Eina_Bool *ret = va_arg(*list, Eina_Bool *); gt; if (ret) *ret = EINA_FALSE; gt; - Eina_Bool int_ret; gt; gt; if (elm_widget_focus_get(obj)) gt;{ gt; -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311amp;iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] master 02/02: Eo tests: Added a parent_set parameter validity test.
tasn pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=46a3f014659f3097d99cdbd8d170daab7fc8885b commit 46a3f014659f3097d99cdbd8d170daab7fc8885b Author: Tom Hacohen t...@stosb.com Date: Wed Nov 20 12:16:47 2013 + Eo tests: Added a parent_set parameter validity test. --- src/tests/eo/suite/eo_test_general.c | 6 ++ 1 file changed, 6 insertions(+) diff --git a/src/tests/eo/suite/eo_test_general.c b/src/tests/eo/suite/eo_test_general.c index e2dde96..900ec58 100644 --- a/src/tests/eo/suite/eo_test_general.c +++ b/src/tests/eo/suite/eo_test_general.c @@ -657,6 +657,7 @@ START_TEST(eo_magic_checks) { Eo *parent = NULL; Eo *wref = NULL; +Eo *obj2 = NULL; obj = eo_add((Eo_Class *) buf, NULL); fail_if(obj); @@ -715,6 +716,11 @@ START_TEST(eo_magic_checks) eo_manual_free((Eo *) buf); eo_destructed_is((Eo *) buf); +obj2 = NULL; +eo_do(obj, eo_parent_set((Eo *) buf)); +eo_do(obj, eo_parent_get(obj2)); +fail_if(obj2 (obj2 == (Eo *) buf)); + eo_unref(obj); if (!buf) --
[EGIT] [core/efl] master 01/02: Eo: Check parent is valid in eo_parent_set.
tasn pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=cad3cf30a48d59bf52c7ed556b71b31495c6eb63 commit cad3cf30a48d59bf52c7ed556b71b31495c6eb63 Author: Tom Hacohen t...@stosb.com Date: Wed Nov 20 11:53:45 2013 + Eo: Check parent is valid in eo_parent_set. This is an extension to raster's 0355a6a296d8c4a22bf2a2e844a0ba0d4e0abd2e (eo - fix _parent_set in base clase when old_parent_pd is NULL). I also added an error message in case this check fails. --- src/lib/eo/eo_base_class.c | 32 ++-- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/src/lib/eo/eo_base_class.c b/src/lib/eo/eo_base_class.c index b553178..772683c 100644 --- a/src/lib/eo/eo_base_class.c +++ b/src/lib/eo/eo_base_class.c @@ -131,22 +131,34 @@ _parent_set(Eo *obj, void *class_data, va_list *list) Private_Data *old_parent_pd; old_parent_pd = eo_data_scope_get(pd-parent, EO_BASE_CLASS); -if (old_parent_pd) - old_parent_pd-children = eina_list_remove(old_parent_pd-children, - obj); +old_parent_pd-children = eina_list_remove(old_parent_pd-children, + obj); eo_xunref(obj, pd-parent); } - pd-parent = parent_id; - if (pd-parent) + /* Set new parent */ + if (parent_id) { Private_Data *parent_pd = NULL; - parent_pd = eo_data_scope_get(parent_id, EO_BASE_CLASS); -if (parent_pd) - parent_pd-children = eina_list_append(parent_pd-children, - obj); -eo_xref(obj, pd-parent); + +if (EINA_LIKELY(parent_pd != NULL)) + { + pd-parent = parent_id; + parent_pd-children = eina_list_append(parent_pd-children, + obj); + eo_xref(obj, pd-parent); + } +else + { + pd-parent = NULL; + ERR(New parent %p for object %p is not a valid Eo object., + parent_id, obj); + } + } + else + { +pd-parent = NULL; } } --
[EGIT] [apps/ecrire] master 01/01: Updated the icon to the newest version by ApB.
tasn pushed a commit to branch master. http://git.enlightenment.org/apps/ecrire.git/commit/?id=f87f471a4874eb667369a88b5cf8c68c747be197 commit f87f471a4874eb667369a88b5cf8c68c747be197 Author: Tom Hacohen t...@stosb.com Date: Wed Nov 20 12:31:03 2013 + Updated the icon to the newest version by ApB. --- data/ecrire.png | Bin 9249 - 11911 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/data/ecrire.png b/data/ecrire.png index febce16..c08f5b9 100644 Binary files a/data/ecrire.png and b/data/ecrire.png differ --
[EGIT] [apps/ecrire] master 01/01: Used elm_popup instead of elm_inwin.
tasn pushed a commit to branch master. http://git.enlightenment.org/apps/ecrire.git/commit/?id=783e3bed59834e3c1d32ca6aa04263e38c91a3c1 commit 783e3bed59834e3c1d32ca6aa04263e38c91a3c1 Author: Tom Hacohen t...@stosb.com Date: Wed Nov 20 12:39:17 2013 + Used elm_popup instead of elm_inwin. --- src/bin/ui/alerts.c | 26 +- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/bin/ui/alerts.c b/src/bin/ui/alerts.c index 24b508d..58ede94 100644 --- a/src/bin/ui/alerts.c +++ b/src/bin/ui/alerts.c @@ -38,20 +38,20 @@ void ui_alert_need_saving(Evas_Object *entry, void (*done)(void *data), void *data) { Ecrire_Entry *ent = data; - Evas_Object *inwin, *bx, *hbx, *btn, *lbl; - inwin = elm_win_inwin_add(elm_object_top_widget_get(entry)); - evas_object_show(inwin); + Evas_Object *popup, *bx, *hbx, *btn, *lbl; + popup = elm_popup_add(elm_object_top_widget_get(entry)); + evas_object_show(popup); done_cb = done; done_data = data; - bx = elm_box_add(inwin); - elm_win_inwin_content_set(inwin, bx); + bx = elm_box_add(popup); + elm_object_content_set(popup, bx); evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, 0.0); evas_object_show(bx); - lbl = elm_label_add(inwin); + lbl = elm_label_add(popup); elm_object_text_set(lbl, _(align=centerWould you like to save changes to document?br Any unsaved changes will be lost.)); @@ -60,33 +60,33 @@ ui_alert_need_saving(Evas_Object *entry, void (*done)(void *data), void *data) elm_box_pack_end(bx, lbl); evas_object_show(lbl); - hbx = elm_box_add(inwin); + hbx = elm_box_add(popup); elm_box_horizontal_set(hbx, EINA_TRUE); evas_object_size_hint_weight_set(hbx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(hbx, EVAS_HINT_FILL, 0.0); elm_box_pack_end(bx, hbx); evas_object_show(hbx); - btn = elm_button_add(inwin); + btn = elm_button_add(popup); elm_object_text_set(btn, _(Save)); elm_box_pack_end(hbx, btn); evas_object_show(btn); - evas_object_smart_callback_add(btn, clicked, _save, inwin); + evas_object_smart_callback_add(btn, clicked, _save, popup); if (elm_object_item_disabled_get(ent-save_item) || !ent-filename) { elm_object_disabled_set(btn, EINA_TRUE); } - btn = elm_button_add(inwin); + btn = elm_button_add(popup); elm_object_text_set(btn, _(Discard)); elm_box_pack_end(hbx, btn); evas_object_show(btn); - evas_object_smart_callback_add(btn, clicked, _discard, inwin); + evas_object_smart_callback_add(btn, clicked, _discard, popup); - btn = elm_button_add(inwin); + btn = elm_button_add(popup); elm_object_text_set(btn, _(Cancel)); elm_box_pack_end(hbx, btn); evas_object_show(btn); - evas_object_smart_callback_add(btn, clicked, _cancel, inwin); + evas_object_smart_callback_add(btn, clicked, _cancel, popup); } --
Re: [E-devel] [EGIT] [core/efl] master 01/02: Revert eina: fix a possible race condition during eina_file_close.
On Wednesday 20 November 2013 20:15, Cedric BAIL wrote : Ok, found the problem and pushed back again the magic in. In fact the real magic is how did that work at all before ! It was a bug in edje that wasn't using eina_hash_pointer properly. Let me know if things are fixed now for you. smoothly !! --- Hell'O from Yverdoom Jérémy (jeyzu) -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/enlightenment] master 01/01: Updating portuguese translation
maxerba pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=4b79819050f481ebe97eed8930c292ac6f800c6a commit 4b79819050f481ebe97eed8930c292ac6f800c6a Author: maxerba maiur...@gmail.com Date: Wed Nov 20 19:47:30 2013 +0100 Updating portuguese translation --- po/pt.po | 588 +++ 1 file changed, 214 insertions(+), 374 deletions(-) diff --git a/po/pt.po b/po/pt.po index e062ecc..7b38864 100644 --- a/po/pt.po +++ b/po/pt.po @@ -6,16 +6,16 @@ msgstr Project-Id-Version: enlightenment\n Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n POT-Creation-Date: 2013-11-19 17:09+0900\n -PO-Revision-Date: 2013-05-02 15:19-\n +PO-Revision-Date: 2013-11-20 14:46-\n Last-Translator: Sérgio Marques smarque...@gmail.com\n Language-Team: Portuguese\n -Language: Portuguese\n +Language: pt\n MIME-Version: 1.0\n Content-Type: text/plain; charset=UTF-8\n Content-Transfer-Encoding: 8bit\n Plural-Forms: nplurals=2; plural=n != 1;\n X-Launchpad-Export-Date: 2013-05-02 10:08+\n -X-Generator: Poedit 1.5.4\n +X-Generator: Poedit 1.6beta2\n #: src/bin/e_about.c:17 msgid About Enlightenment @@ -810,9 +810,8 @@ msgid Cancel msgstr Cancelar #: src/bin/e_comp.c:4259 -#, fuzzy msgid Compositor Warning -msgstr Composição +msgstr Aviso de composição #: src/bin/e_comp.c:4259 msgid @@ -822,9 +821,8 @@ msgid msgstr #: src/bin/e_comp.c:4278 src/bin/e_comp.c:4300 -#, fuzzy msgid Compositor Error -msgstr Erro ao importar +msgstr Erro de composição #: src/bin/e_comp.c:4278 msgid Another compositor is already runningbron your display server. @@ -861,9 +859,8 @@ msgid Title msgstr Título #: src/bin/e_comp.c:4792 -#, fuzzy msgid Use fast composite effects for windows -msgstr Ativar efeitos rápidos de composição das janelas +msgstr Utilizar efeitos rápidos de composição das janelas #: src/bin/e_comp.c:4792 src/bin/e_comp.c:4794 src/bin/e_comp.c:4796 #: src/bin/e_comp.c:4798 src/bin/e_comp.c:4800 src/bin/e_comp.c:4803 @@ -974,14 +971,12 @@ msgstr tema #: src/bin/e_configure_option.c:1612 src/bin/e_configure_option.c:1613 #: src/bin/e_configure_option.c:1810 src/bin/e_configure_option.c:1828 #: src/bin/e_configure_option.c:1913 -#, fuzzy msgid animate -msgstr Animação +msgstr animar #: src/bin/e_comp.c:4794 -#, fuzzy msgid Use fast composite effects for menus -msgstr Ativar efeitos rápidos de composição dos menus +msgstr Utilizar efeitos rápidos de composição dos menus #: src/bin/e_comp.c:4794 src/bin/e_comp.c:4805 #: src/bin/e_configure_option.c:1488 src/bin/e_configure_option.c:1491 @@ -996,22 +991,19 @@ msgstr Ativar efeitos rápidos de composição dos menus #: src/bin/e_configure_option.c:1799 src/bin/e_configure_option.c:1800 #: src/bin/e_configure_option.c:2042 msgid menu -msgstr +msgstr menu #: src/bin/e_comp.c:4796 -#, fuzzy msgid Use fast composite effects for popups -msgstr Ativar efeitos rápidos de composição dos alertas +msgstr Utilizar efeitos rápidos de composição dos alertas #: src/bin/e_comp.c:4796 src/bin/e_comp.c:4807 -#, fuzzy msgid popup -msgstr Alerta +msgstr alerta #: src/bin/e_comp.c:4798 -#, fuzzy msgid Use fast composite effects for objects -msgstr Ativar efeitos rápidos de composição para objetos +msgstr Utilizar efeitos rápidos de composição para objetos #: src/bin/e_comp.c:4800 #, fuzzy @@ -1042,9 +1034,8 @@ msgid msgstr Desativar efeitos de composição para overrides #: src/bin/e_comp.c:4813 -#, fuzzy msgid Disable composite effects for the screen -msgstr Desativar efeitos do ecrã +msgstr Desativar efeitos de composição para este ecrã #: src/bin/e_comp.c:4813 src/bin/e_configure_option.c:1535 #: src/bin/e_configure_option.c:1537 src/bin/e_configure_option.c:1595 @@ -1071,9 +1062,8 @@ msgid msgstr #: src/bin/e_comp.c:4817 -#, fuzzy msgid Compositing engine -msgstr Composição +msgstr Motor de composição #: src/bin/e_comp.c:4821 #, fuzzy @@ -1121,14 +,13 @@ msgid delay msgstr atraso #: src/bin/e_comp.c:4839 -#, fuzzy, c-format +#, c-format msgid %1.2f seconds -msgstr %.2f segundos +msgstr %1.2f segundos #: src/bin/e_comp.c:4845 -#, fuzzy msgid Tear-free compositing (VSYNC) -msgstr Atualizações Tear-free (sincronização vertical) +msgstr Composição Tear-free (VSYNC) #: src/bin/e_comp.c:4848 #, fuzzy @@ -1154,9 +1143,8 @@ msgstr Não ocultar gadgets #: src/bin/e_comp.c:4865 src/bin/e_configure_option.c:1907 #: src/bin/e_configure_option.c:1910 src/bin/e_configure_option.c:1913 #: src/bin/e_configure_option.c:1916 src/bin/e_configure_option.c:1918 -#, fuzzy msgid backlight -msgstr Iluminação +msgstr iluminação #: src/bin/e_comp.c:4867 msgid Send flush when compositing windows @@ -1176,7 +1164,7 @@ msgid Rolling average for fps display when compositing msgstr Número médio de imagens #: src/bin/e_comp.c:4875 -#, fuzzy, c-format +#, c-format msgid %1.0f frames msgstr %1.0f
[EGIT] [games/elemines] master 01/01: Updating portuguese and italian translations
maxerba pushed a commit to branch master. http://git.enlightenment.org/games/elemines.git/commit/?id=ebbeef64c1674a84bb61970647b14ea7b366ed7b commit ebbeef64c1674a84bb61970647b14ea7b366ed7b Author: maxerba maiur...@gmail.com Date: Wed Nov 20 19:53:04 2013 +0100 Updating portuguese and italian translations --- po/it.po| 21 - po/pt_PT.po | 18 +- 2 files changed, 17 insertions(+), 22 deletions(-) diff --git a/po/it.po b/po/it.po index 16b95ad..fdef241 100644 --- a/po/it.po +++ b/po/it.po @@ -7,8 +7,8 @@ msgid msgstr Project-Id-Version: elemines 0.2.3\n Report-Msgid-Bugs-To: ngc...@gmail.com\n -POT-Creation-Date: 2013-08-14 12:30+0200\n -PO-Revision-Date: 2013-01-20 10:47+0100\n +POT-Creation-Date: 2013-11-20 19:50+0100\n +PO-Revision-Date: 2013-11-20 19:51+0100\n Last-Translator: Massimo Maiurana maiur...@gmail.com\n Language-Team: Italiano\n Language: it\n @@ -74,27 +74,22 @@ msgid Quit msgstr Esci #: src/game.c:144 -#, fuzzy, c-format +#, c-format msgid Score: %d -msgstr Punteggi +msgstr Punteggio: %d #: src/game.c:151 -#, fuzzy msgid High Score!! -msgstr Classifica +msgstr Nuovo record!! #: src/game.c:159 msgid You win! -msgstr +msgstr Hai vinto! #: src/elemines.h:56 msgid Standard -msgstr +msgstr Standard #: src/elemines.h:57 msgid Custom -msgstr - -#: src/main.c:222 -msgid Level -msgstr +msgstr Personalizzato diff --git a/po/pt_PT.po b/po/pt_PT.po index a79cf18..dc76d6b 100644 --- a/po/pt_PT.po +++ b/po/pt_PT.po @@ -8,13 +8,14 @@ msgstr Project-Id-Version: elemines 0.2.3\n Report-Msgid-Bugs-To: ngc...@gmail.com\n POT-Creation-Date: 2013-08-14 12:30+0200\n -PO-Revision-Date: 2013-04-30 12:55-\n +PO-Revision-Date: 2013-11-05 14:44-\n Last-Translator: Sérgio Marques smarque...@gmail.com\n Language-Team: \n Language: pt_PT\n MIME-Version: 1.0\n Content-Type: text/plain; charset=UTF-8\n Content-Transfer-Encoding: 8bit\n +X-Generator: Poedit 1.5.7\n #: src/gui.c:57 msgid High Scores @@ -74,27 +75,26 @@ msgid Quit msgstr Sair #: src/game.c:144 -#, fuzzy, c-format +#, c-format msgid Score: %d -msgstr Resultados +msgstr Resultado: %d #: src/game.c:151 -#, fuzzy msgid High Score!! -msgstr Recordes +msgstr Recorde! #: src/game.c:159 msgid You win! -msgstr +msgstr Ganhou! #: src/elemines.h:56 msgid Standard -msgstr +msgstr Padrão #: src/elemines.h:57 msgid Custom -msgstr +msgstr Personalizado #: src/main.c:222 msgid Level -msgstr +msgstr Nível --
[EGIT] [enlightenment/modules/packagekit] master 01/01: Adding portuguese localization
maxerba pushed a commit to branch master. http://git.enlightenment.org/enlightenment/modules/packagekit.git/commit/?id=068493f6ea369a23c0e293d5fded2400555d8332 commit 068493f6ea369a23c0e293d5fded2400555d8332 Author: maxerba maiur...@gmail.com Date: Wed Nov 20 19:57:49 2013 +0100 Adding portuguese localization --- module.desktop.in | 2 ++ po/LINGUAS| 1 + po/pt.po | 88 +++ 3 files changed, 91 insertions(+) diff --git a/module.desktop.in b/module.desktop.in index 436eac6..0142fe4 100644 --- a/module.desktop.in +++ b/module.desktop.in @@ -3,7 +3,9 @@ Encoding=UTF-8 Type=Link Name=System updates Name[it]=Aggiornamenti di sistema +Name[pt]=Atualizações do sistema Comment=Control system update status Comment[it]=Controlla lo stato degli aggiornamenti del sistema +Comment[pt]=Controlar o estado das atualizações do sistema Icon=e-module-packagekit X-Enlightenment-ModuleType=system diff --git a/po/LINGUAS b/po/LINGUAS index f1912ee..acfac77 100644 --- a/po/LINGUAS +++ b/po/LINGUAS @@ -1,2 +1,3 @@ fi it +pt diff --git a/po/pt.po b/po/pt.po new file mode 100644 index 000..1b336c6 --- /dev/null +++ b/po/pt.po @@ -0,0 +1,88 @@ +# Portuguese translations for packagekit package +# Copyright (C) 2013 Enlightenment development team +# This file is distributed under the same license as the packagekit package. +# Sérgio Marques smarque...@gmail.com, 2013. +# +msgid +msgstr +Project-Id-Version: packagekit\n +Report-Msgid-Bugs-To: enlightenment-devel@lists.sourceforge.net\n +POT-Creation-Date: 2013-11-03 13:05+0100\n +PO-Revision-Date: 2013-11-05 15:08-\n +Last-Translator: Sérgio Marques smarque...@gmail.com\n +Language-Team: Portuguese\n +Language: pt\n +MIME-Version: 1.0\n +Content-Type: text/plain; charset=UTF-8\n +Content-Transfer-Encoding: 8bit\n +Plural-Forms: nplurals=2; plural=(n != 1);\n +X-Generator: Poedit 1.5.7\n + +#: src/e_mod_main.c:48 +msgid Refresh Packages +msgstr Atualizar pacotes + +#: src/e_mod_main.c:50 +msgid Never +msgstr Nunca + +#: src/e_mod_main.c:52 +msgid Hourly +msgstr Todas as horas + +#: src/e_mod_main.c:54 +msgid Daily +msgstr Diariamente + +#: src/e_mod_main.c:56 +msgid Weekly +msgstr Semanalmente + +#: src/e_mod_main.c:60 +msgid Package Manager +msgstr Gestor de pacotes + +#: src/e_mod_main.c:113 +msgid System Updates Settings +msgstr Definições de atualizações + +#: src/e_mod_main.c:147 +msgid Settings +msgstr Definições + +#: src/e_mod_main.c:213 +msgid System Updates +msgstr Atualizações do sistema + +#: src/e_mod_packagekit.c:35 +msgid No package manager configured +msgstr Gestor de pacotes não configurado + +#: src/e_mod_packagekit.c:36 +msgid +You need to set your preferred package manager.brPlease open the module +configuration and setbrthe program to run.br +msgstr +Tem que definir o gestor de pacotes preferido.brAbra a configuração do +módulo e definabro programa a executar.br + +#: src/e_mod_packagekit.c:86 +msgid One update available +msgstr Uma atualização disponível + +#: src/e_mod_packagekit.c:88 +#, c-format +msgid %d updates available +msgstr %d atualizações disponíveis + +#: src/e_mod_packagekit.c:90 +msgid Your system is updated +msgstr O seu sistema está atualizado + +#: src/e_mod_packagekit.c:118 +msgid Update packages cache +msgstr Atualizar cache de pacotes + +#: src/e_mod_packagekit.c:121 +msgid Run the package manager +msgstr Executar gestor de pacotes --
Re: [E-devel] [e-users] EFL 1.8 Alpha2 + Enlightenment 0.18 Alpha2 Terminology 0.4 Alpha2
2013/11/20 Jeff Hoogland jeffhoogl...@linux.com This is great! Looking forward to packing this up and playing with it this weekend. Any plans to start doing pre-release tars to test the updated python bindings for 1.8? We plan to release the 1.8 bindings just after the efl release, so it's a little premature now. In the meantime you can start playing with the tarball autogenerated by jenkins at: https://build.enlightenment.org/view/Base%20jobs/job/base_pyefl_build/lastSuccessfulBuild/artifact/dist/efl-1.7.99.tar.gz This tarball will be the base for our future releases, please test it and report any issue. Also the coloring on this page - https://phab.enlightenment.org/phame/live/3/post/efl_1_8_alpha_2_enlightenment_0_18_alpha2_terminology_0_4_alpha/ Is pretty awful. Dark blue text on a grey background is impossible to read. This URL also appears to be dead at the moment - http://download.enlightenment.org/new Cheers, On Tue, Nov 19, 2013 at 9:32 PM, Carsten Haitzler ras...@rasterman.com wrote: On Wed, 20 Nov 2013 00:41:00 -0200 Wido wido...@gmail.com said: When you say 'If you have an existing EFL or Elementary install, you may wish to delete its header files and libraries before building the above.' does it makes any difference if I keep them in different path and pay attention to the environment path? if you know what you are doing - you can get away with it. if you have build problems... you're on your own then to address them. (or runtime problems when things accidentally link to the wrong lib versions at runtime). :) Currently, I use /opt/e17-git and I was planing leaving that alone and use a new /opt/e18. Does it makes any sense? my tingling sense tells me that you're going to yell users when they submit bugs with backtraces filled with efl1.7 libs. very likely that there will be much yelling and swearing when we find people are reporting bugs due to their own silliness of having 2 efl installs. i've seen this so many times over so many years again and again... i KNOW it's going to happen... and i highly discourage it unless you REALLY know what u are doing. i.e. you are a hard core developer who knows not just what gdb says, but also your whole system/os. :) 2013/11/19 Carsten Haitzler ras...@rasterman.com We are pleased to announce that our second Alpha release (Alpha 2) of EFL 1.8 is now available for download at: http://download.enlightenment.org/new The relevant components are: http://download.enlightenment.org/rel/libs/efl/efl-1.8.0-alpha2.tar.gz http://download.enlightenment.org/rel/libs/elementary/elementary-1.8.0-alpha2.tar.gz http://download.enlightenment.org/rel/libs/emotion_generic_players/emotion_generic_players-1.8.0-alpha2.tar.gz http://download.enlightenment.org/rel/libs/evas_generic_loaders/evas_generic_loaders-1.8.0-alpha2.tar.gz If you are compiling the above, please compile them in the following order: efl elementary emotion_generic_players evas_generic_loaders If you have an existing EFL or Elementary install, you may wish to delete its header files and libraries before building the above. In addition we have also put up early stage Alphas of Enlightenment 0.18 and Terminology 0.4 available here: http://download.enlightenment.org/rel/apps/enlightenment/enlightenment-0.18.0-alpha2.tar.gz http://download.enlightenment.org/rel/apps/terminology/terminology-0.4.0-alpha2.tar.gz We ask people to test builds and functionality at this stage in preparation for full release. Of course there will be bugs, and this is the point at which to weed them out. Please file bug tasks on http://phab.enlightenment.organd we will address them as best as possible for release. Future Alpha and Betas will come. -- - Codito, ergo sum - I code, therefore I am -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ enlightenment-users mailing list enlightenment-us...@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-users -- Wido -- Shape the Mobile Experience: Free
[EGIT] [e16/e16] master 01/01: Fix potential warnings.
kwo pushed a commit to branch master. http://git.enlightenment.org/e16/e16.git/commit/?id=5dddfd2d542d0a75fb03a5564cf8b9981b6fae7b commit 5dddfd2d542d0a75fb03a5564cf8b9981b6fae7b Author: Kim Woelders k...@woelders.dk Date: Wed Nov 20 20:04:01 2013 +0100 Fix potential warnings. --- lib/e16_trip.c | 8 +--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/e16_trip.c b/lib/e16_trip.c index 671072b..cdb4a66 100644 --- a/lib/e16_trip.c +++ b/lib/e16_trip.c @@ -55,7 +55,7 @@ _XReply(Display * dpy, void *rep, int extra, Bool discard) { static RF *func = NULL; - chars[1024], *p, *name; + chars[1024]; void *bt[128]; int i, n, l; char **sym; @@ -76,6 +76,8 @@ _XReply(Display * dpy, void *rep, int extra, Bool discard) for (i = 1; i n; i++) { #if 1 + char *p, *name; + name = strchr(sym[i], '('); if (name) { @@ -88,9 +90,9 @@ _XReply(Display * dpy, void *rep, int extra, Bool discard) } if (!name || *name == '\0') name = (char *)?; - l += snprintf(s + l, sizeof(s) - l, name); + l += snprintf(s + l, sizeof(s) - l, %s, name); #else - l += snprintf(s + l, sizeof(s) - l, sym[i]); + l += snprintf(s + l, sizeof(s) - l, %s, sym[i]); #endif if (i n - 1) --
[EGIT] [apps/espionage] master 01/01: Espionage: add the new signal inspector.
davemds pushed a commit to branch master. http://git.enlightenment.org/apps/espionage.git/commit/?id=d35bf71a0867f0178b229167795dacabf4161197 commit d35bf71a0867f0178b229167795dacabf4161197 Author: davemds d...@gurumeditation.it Date: Wed Nov 20 21:33:47 2013 +0100 Espionage: add the new signal inspector. A new Pane at the bottom of the window show ALL the signals that transit on both buses. Double clicking on a received signal you can see its full content (parameters). Now Espionage have more features than d-feet...efl beats gnome one more time :D --- espionage/espionage.py | 139 ++--- 1 file changed, 120 insertions(+), 19 deletions(-) diff --git a/espionage/espionage.py b/espionage/espionage.py index ffd468a..b60ad00 100644 --- a/espionage/espionage.py +++ b/espionage/espionage.py @@ -38,6 +38,7 @@ from efl.elementary.panes import Panes from efl.elementary.popup import Popup from efl.elementary.separator import Separator from efl.elementary.table import Table +from efl.elementary.frame import Frame from efl.elementary.genlist import Genlist, GenlistItem, GenlistItemClass from efl.dbus_mainloop import DBusEcoreMainLoop @@ -48,6 +49,14 @@ class Options(object): self.show_introspect_stuff = False self.show_private_stuff = False self.pretty_output = True +self.scroll_on_signal = True + + +def prettify_if_needed(data): +if options.pretty_output: +return utf8_to_markup(json.dumps(data, indent=2)) +else: +return utf8_to_markup(str(data)) ### connect to session and system buses, and set session as the current one @@ -548,21 +557,103 @@ class MethodRunner(Popup): # wrong params for example are raised later :/ def reply_handler(self, *rets): -if rets: -if options.pretty_output: -s = utf8_to_markup(json.dumps(rets, indent=2)) -else: -s = utf8_to_markup(str(rets)) -else: -s = Method executed successfully.brNothing returned. -self._return_entry.entry = s +self._return_entry.entry = prettify_if_needed(rets) if rets \ +else Method executed successfully.brNothing returned. def error_handler(self, *rets): self._return_entry.entry = 'Error executing method' +### Signals receiver +class SignalItemClass(GenlistItemClass): +def __init__(self): +GenlistItemClass.__init__(self, item_style='default_style') +def text_get(self, gl, part, data): +return 'b%s/ iface: i%s/ path: i%s/ sender: i%s/' % \ + (data['signal'], data['iface'], data['path'], data['sender']) + +class SignalReceiver(Frame): +def __init__(self, parent): +Frame.__init__(self, parent, text=Signals) +self._parent = parent + +vbox = Box(self) +vbox.show() +self.content = vbox + +self.siglist = Genlist(self, homogeneous=True, mode=elm.ELM_LIST_SCROLL) +self.siglist.size_hint_weight = EVAS_HINT_EXPAND, EVAS_HINT_EXPAND +self.siglist.size_hint_align = EVAS_HINT_FILL, EVAS_HINT_FILL +self.siglist.callback_clicked_double_add(self.signal_clicked_cb) +self.siglist.show() +vbox.pack_end(self.siglist) +self.itc = SignalItemClass() + +hbox = Box(self, horizontal=True) +hbox.size_hint_align = 0.0, 0.5 +hbox.show() +vbox.pack_end(hbox) + +bt = Button(self, text='Clear') +bt.callback_clicked_add(lambda b: self.siglist.clear()) +hbox.pack_end(bt) +bt.show() + +def scroll_on_signal_clicked_cb(chk): +options.scroll_on_signal = chk.state +ck = Check(self, text='Scroll on signal') +ck.state = options.scroll_on_signal +ck.callback_changed_add(scroll_on_signal_clicked_cb) +hbox.pack_end(ck) +ck.show() + +for b in session_bus, system_bus: +b.add_signal_receiver(self.signal_cb, sender_keyword='sender', +destination_keyword='dest', interface_keyword='iface', +member_keyword='signal',path_keyword='path') + +def signal_cb(self, *args, **kargs): +# print('*** SIGNAL RECEIVED ***') +# print(json.dumps(args, indent=2)) +# print(json.dumps(kargs, indent=2)) + +kargs['args'] = args +item = self.siglist.item_append(self.itc, kargs) +if options.scroll_on_signal is True: +item.bring_in() + +if self.siglist.items_count 200: +self.siglist.first_item.delete() + +def signal_clicked_cb(self, gl, item): +pp = Popup(self._parent) +pp.part_text_set('title,text', 'Signal content') + +en = Entry(self, text = prettify_if_needed(item.data['args'])) +en.size_hint_weight = EVAS_HINT_EXPAND, EVAS_HINT_EXPAND +en.size_hint_align = EVAS_HINT_FILL, EVAS_HINT_FILL +
Re: [E-devel] [EGIT] [apps/espionage] master 01/01: Espionage: add the new signal inspector.
On Wednesday, November 20, 2013, davemds wrote: davemds pushed a commit to branch master. http://git.enlightenment.org/apps/espionage.git/commit/?id=d35bf71a0867f0178b229167795dacabf4161197 commit d35bf71a0867f0178b229167795dacabf4161197 Author: davemds d...@gurumeditation.it javascript:; Date: Wed Nov 20 21:33:47 2013 +0100 Espionage: add the new signal inspector. A new Pane at the bottom of the window show ALL the signals that transit on both buses. Double clicking on a received signal you can see its full content (parameters). Now Espionage have more features than d-feet...efl beats gnome one more time :D Just need better GUI and GFX, we know u can do it better --- espionage/espionage.py | 139 ++--- 1 file changed, 120 insertions(+), 19 deletions(-) diff --git a/espionage/espionage.py b/espionage/espionage.py index ffd468a..b60ad00 100644 --- a/espionage/espionage.py +++ b/espionage/espionage.py @@ -38,6 +38,7 @@ from efl.elementary.panes import Panes from efl.elementary.popup import Popup from efl.elementary.separator import Separator from efl.elementary.table import Table +from efl.elementary.frame import Frame from efl.elementary.genlist import Genlist, GenlistItem, GenlistItemClass from efl.dbus_mainloop import DBusEcoreMainLoop @@ -48,6 +49,14 @@ class Options(object): self.show_introspect_stuff = False self.show_private_stuff = False self.pretty_output = True +self.scroll_on_signal = True + + +def prettify_if_needed(data): +if options.pretty_output: +return utf8_to_markup(json.dumps(data, indent=2)) +else: +return utf8_to_markup(str(data)) ### connect to session and system buses, and set session as the current one @@ -548,21 +557,103 @@ class MethodRunner(Popup): # wrong params for example are raised later :/ def reply_handler(self, *rets): -if rets: -if options.pretty_output: -s = utf8_to_markup(json.dumps(rets, indent=2)) -else: -s = utf8_to_markup(str(rets)) -else: -s = Method executed successfully.brNothing returned. -self._return_entry.entry = s +self._return_entry.entry = prettify_if_needed(rets) if rets \ +else Method executed successfully.brNothing returned. def error_handler(self, *rets): self._return_entry.entry = 'Error executing method' +### Signals receiver +class SignalItemClass(GenlistItemClass): +def __init__(self): +GenlistItemClass.__init__(self, item_style='default_style') +def text_get(self, gl, part, data): +return 'b%s/ iface: i%s/ path: i%s/ sender: i%s/' % \ + (data['signal'], data['iface'], data['path'], data['sender']) + +class SignalReceiver(Frame): +def __init__(self, parent): +Frame.__init__(self, parent, text=Signals) +self._parent = parent + +vbox = Box(self) +vbox.show() +self.content = vbox + +self.siglist = Genlist(self, homogeneous=True, mode=elm.ELM_LIST_SCROLL) +self.siglist.size_hint_weight = EVAS_HINT_EXPAND, EVAS_HINT_EXPAND +self.siglist.size_hint_align = EVAS_HINT_FILL, EVAS_HINT_FILL +self.siglist.callback_clicked_double_add(self.signal_clicked_cb) +self.siglist.show() +vbox.pack_end(self.siglist) +self.itc = SignalItemClass() + +hbox = Box(self, horizontal=True) +hbox.size_hint_align = 0.0, 0.5 +hbox.show() +vbox.pack_end(hbox) + +bt = Button(self, text='Clear') +bt.callback_clicked_add(lambda b: self.siglist.clear()) +hbox.pack_end(bt) +bt.show() + +def scroll_on_signal_clicked_cb(chk): +options.scroll_on_signal = chk.state +ck = Check(self, text='Scroll on signal') +ck.state = options.scroll_on_signal +ck.callback_changed_add(scroll_on_signal_clicked_cb) +hbox.pack_end(ck) +ck.show() + +for b in session_bus, system_bus: +b.add_signal_receiver(self.signal_cb, sender_keyword='sender', +destination_keyword='dest', interface_keyword='iface', +member_keyword='signal',path_keyword='path') + +def signal_cb(self, *args, **kargs): +# print('*** SIGNAL RECEIVED ***') +# print(json.dumps(args, indent=2)) +# print(json.dumps(kargs, indent=2)) + +kargs['args'] = args +item = self.siglist.item_append(self.itc, kargs) +if options.scroll_on_signal is True: +item.bring_in() + +if self.siglist.items_count 200: +self.siglist.first_item.delete() + +def signal_clicked_cb(self, gl, item): +pp = Popup(self._parent) +
[EGIT] [apps/espionage] master 01/01: Espionage: fix for recent enum change in pyefl
davemds pushed a commit to branch master. http://git.enlightenment.org/apps/espionage.git/commit/?id=54ead421d37ef960faed8d5704672060bdd3a392 commit 54ead421d37ef960faed8d5704672060bdd3a392 Author: davemds d...@gurumeditation.it Date: Wed Nov 20 21:55:49 2013 +0100 Espionage: fix for recent enum change in pyefl --- espionage/espionage.py | 20 +++- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/espionage/espionage.py b/espionage/espionage.py index b60ad00..342c04b 100644 --- a/espionage/espionage.py +++ b/espionage/espionage.py @@ -39,7 +39,9 @@ from efl.elementary.popup import Popup from efl.elementary.separator import Separator from efl.elementary.table import Table from efl.elementary.frame import Frame -from efl.elementary.genlist import Genlist, GenlistItem, GenlistItemClass +from efl.elementary.genlist import Genlist, GenlistItem, GenlistItemClass, \ +ELM_GENLIST_ITEM_GROUP, ELM_GENLIST_ITEM_TREE, \ +ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY, ELM_LIST_SCROLL from efl.dbus_mainloop import DBusEcoreMainLoop @@ -282,13 +284,13 @@ class NamesList(Genlist): # add private public group items self.public_group = self.item_append(self.itc_g, Public Services, - flags=elm.ELM_GENLIST_ITEM_GROUP) - self.public_group.select_mode_set(elm.ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY) + flags=ELM_GENLIST_ITEM_GROUP) +self.public_group.select_mode_set(ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY) if options.show_private_stuff: self.private_group = self.item_append(self.itc_g, Private Services, - flags=elm.ELM_GENLIST_ITEM_GROUP) - self.private_group.select_mode_set(elm.ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY) + flags=ELM_GENLIST_ITEM_GROUP) + self.private_group.select_mode_set(ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY) # populate the genlist self.populate() @@ -392,8 +394,8 @@ class DetailList(Genlist): # objects for obj in recursive_introspect(bus, name, '/'): obj_item = self.item_append(self.itc_g, obj, -flags=elm.ELM_GENLIST_ITEM_GROUP) -obj_item.select_mode_set(elm.ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY) +flags=ELM_GENLIST_ITEM_GROUP) +obj_item.select_mode_set(ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY) # interfaces for iface in obj.interfaces: @@ -402,7 +404,7 @@ class DetailList(Genlist): continue iface_item = self.item_append(self.itc, iface, parent_item=obj_item, - flags=elm.ELM_GENLIST_ITEM_TREE) + flags=ELM_GENLIST_ITEM_TREE) def sort_cb(self, it1, it2): pri1 = pri2 = 0 @@ -581,7 +583,7 @@ class SignalReceiver(Frame): vbox.show() self.content = vbox -self.siglist = Genlist(self, homogeneous=True, mode=elm.ELM_LIST_SCROLL) +self.siglist = Genlist(self, homogeneous=True, mode=ELM_LIST_SCROLL) self.siglist.size_hint_weight = EVAS_HINT_EXPAND, EVAS_HINT_EXPAND self.siglist.size_hint_align = EVAS_HINT_FILL, EVAS_HINT_FILL self.siglist.callback_clicked_double_add(self.signal_clicked_cb) --
Re: [E-devel] [EGIT] [apps/espionage] master 01/01: Espionage: add the new signal inspector.
2013/11/20 Gustavo Sverzut Barbieri barbi...@gmail.com On Wednesday, November 20, 2013, davemds wrote: davemds pushed a commit to branch master. http://git.enlightenment.org/apps/espionage.git/commit/?id=d35bf71a0867f0178b229167795dacabf4161197 commit d35bf71a0867f0178b229167795dacabf4161197 Author: davemds d...@gurumeditation.it javascript:; Date: Wed Nov 20 21:33:47 2013 +0100 Espionage: add the new signal inspector. A new Pane at the bottom of the window show ALL the signals that transit on both buses. Double clicking on a received signal you can see its full content (parameters). Now Espionage have more features than d-feet...efl beats gnome one more time :D Just need better GUI and GFX, we know u can do it better TBH I do not have so many ideas on how to beautify it. I have plans to add icons for items in the lists, and to add custom textblock style to colorize methods params...but thats all. Any suggestion is welcome. Now that we are on this: someone know a source of standard icons for object oriented stuff ? I need icons for method, object, property, interface and signal. --- espionage/espionage.py | 139 ++--- 1 file changed, 120 insertions(+), 19 deletions(-) diff --git a/espionage/espionage.py b/espionage/espionage.py index ffd468a..b60ad00 100644 --- a/espionage/espionage.py +++ b/espionage/espionage.py @@ -38,6 +38,7 @@ from efl.elementary.panes import Panes from efl.elementary.popup import Popup from efl.elementary.separator import Separator from efl.elementary.table import Table +from efl.elementary.frame import Frame from efl.elementary.genlist import Genlist, GenlistItem, GenlistItemClass from efl.dbus_mainloop import DBusEcoreMainLoop @@ -48,6 +49,14 @@ class Options(object): self.show_introspect_stuff = False self.show_private_stuff = False self.pretty_output = True +self.scroll_on_signal = True + + +def prettify_if_needed(data): +if options.pretty_output: +return utf8_to_markup(json.dumps(data, indent=2)) +else: +return utf8_to_markup(str(data)) ### connect to session and system buses, and set session as the current one @@ -548,21 +557,103 @@ class MethodRunner(Popup): # wrong params for example are raised later :/ def reply_handler(self, *rets): -if rets: -if options.pretty_output: -s = utf8_to_markup(json.dumps(rets, indent=2)) -else: -s = utf8_to_markup(str(rets)) -else: -s = Method executed successfully.brNothing returned. -self._return_entry.entry = s +self._return_entry.entry = prettify_if_needed(rets) if rets \ +else Method executed successfully.brNothing returned. def error_handler(self, *rets): self._return_entry.entry = 'Error executing method' +### Signals receiver +class SignalItemClass(GenlistItemClass): +def __init__(self): +GenlistItemClass.__init__(self, item_style='default_style') +def text_get(self, gl, part, data): +return 'b%s/ iface: i%s/ path: i%s/ sender: i%s/' % \ + (data['signal'], data['iface'], data['path'], data['sender']) + +class SignalReceiver(Frame): +def __init__(self, parent): +Frame.__init__(self, parent, text=Signals) +self._parent = parent + +vbox = Box(self) +vbox.show() +self.content = vbox + +self.siglist = Genlist(self, homogeneous=True, mode=elm.ELM_LIST_SCROLL) +self.siglist.size_hint_weight = EVAS_HINT_EXPAND, EVAS_HINT_EXPAND +self.siglist.size_hint_align = EVAS_HINT_FILL, EVAS_HINT_FILL +self.siglist.callback_clicked_double_add(self.signal_clicked_cb) +self.siglist.show() +vbox.pack_end(self.siglist) +self.itc = SignalItemClass() + +hbox = Box(self, horizontal=True) +hbox.size_hint_align = 0.0, 0.5 +hbox.show() +vbox.pack_end(hbox) + +bt = Button(self, text='Clear') +bt.callback_clicked_add(lambda b: self.siglist.clear()) +hbox.pack_end(bt) +bt.show() + +def scroll_on_signal_clicked_cb(chk): +options.scroll_on_signal = chk.state +ck = Check(self, text='Scroll on signal') +ck.state = options.scroll_on_signal +ck.callback_changed_add(scroll_on_signal_clicked_cb) +hbox.pack_end(ck) +ck.show() + +for b in session_bus, system_bus: +b.add_signal_receiver(self.signal_cb, sender_keyword='sender', +destination_keyword='dest', interface_keyword='iface', +member_keyword='signal',path_keyword='path') + +def
Re: [E-devel] [EGIT] [apps/espionage] master 01/01: Espionage: add the new signal inspector.
On Wednesday, November 20, 2013, Davide Andreoli wrote: 2013/11/20 Gustavo Sverzut Barbieri barbi...@gmail.com javascript:; On Wednesday, November 20, 2013, davemds wrote: davemds pushed a commit to branch master. http://git.enlightenment.org/apps/espionage.git/commit/?id=d35bf71a0867f0178b229167795dacabf4161197 commit d35bf71a0867f0178b229167795dacabf4161197 Author: davemds d...@gurumeditation.it javascript:; javascript:; Date: Wed Nov 20 21:33:47 2013 +0100 Espionage: add the new signal inspector. A new Pane at the bottom of the window show ALL the signals that transit on both buses. Double clicking on a received signal you can see its full content (parameters). Now Espionage have more features than d-feet...efl beats gnome one more time :D Just need better GUI and GFX, we know u can do it better TBH I do not have so many ideas on how to beautify it. I have plans to add icons for items in the lists, and to add custom textblock style to colorize methods params...but thats all. Any suggestion is welcome. Thats enough Now that we are on this: someone know a source of standard icons for object oriented stuff ? I need icons for method, object, property, interface and signal. --- espionage/espionage.py | 139 ++--- 1 file changed, 120 insertions(+), 19 deletions(-) diff --git a/espionage/espionage.py b/espionage/espionage.py index ffd468a..b60ad00 100644 --- a/espionage/espionage.py +++ b/espionage/espionage.py @@ -38,6 +38,7 @@ from efl.elementary.panes import Panes from efl.elementary.popup import Popup from efl.elementary.separator import Separator from efl.elementary.table import Table +from efl.elementary.frame import Frame from efl.elementary.genlist import Genlist, GenlistItem, GenlistItemClass from efl.dbus_mainloop import DBusEcoreMainLoop @@ -48,6 +49,14 @@ class Options(object): self.show_introspect_stuff = False self.show_private_stuff = False self.pretty_output = True +self.scroll_on_signal = True + + +def prettify_if_needed(data): +if options.pretty_output: +return utf8_to_markup(json.dumps(data, indent=2)) +else: +return utf8_to_markup(str(data)) ### connect to session and system buses, and set session as the current one @@ -548,21 +557,103 @@ class MethodRunner(Popup): # wrong params for example are raised later :/ def reply_handler(self, *rets): -if rets: -if options.pretty_output: -s = utf8_to_markup(json.dumps(rets, indent=2)) -else: -s = utf8_to_markup(str(rets)) -else: -s = Method executed successfully.brNothing returned. -self._return_entry.entry = s +self._return_entry.entry = prettify_if_needed(rets) if rets \ +else Method executed successfully.brNothing returned. def error_handler(self, *rets): self._return_entry.entry = 'Error executing method' +### Signals receiver +class SignalItemClass(GenlistItemClass): +def __init__(self): +GenlistItemClass.__init__(self, item_style='default_style') +def text_get(self, gl, part, data): +return 'b%s/ iface: i%s/ path: i%s/ sender: i%s/' % \ + (data['signal'], data['iface'], data['path'], data['sender']) + +class SignalReceiver(Frame): +def __init__(self, parent): +Frame.__init__(self, parent, text=Signals) +self._parent = parent + +vbox = Box(self) +vbox.show() +self.content = vbox + +self.siglist = Genlist(self, homogeneous=True, mode=elm.ELM_LIST_SCROLL) +self.siglist.size_hint_weight = EVAS_HINT_EXPAND, EVAS_HINT_EXPAND +self.siglist.size_hint_align = EVAS_HINT_FILL, EVAS_HINT_FILL + self.siglist.callback_clicked_double_add(self.signal_clicked_cb) +self.siglist.show() +vbox.pack_end(self. -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net javascript:; https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Shape the
[E-devel] Fwd: [Enlightenment-intl] Greek Translation Update
Hello people, Just forwarding this mail for any (most i'd guess? :p) devs not subscribed in the i18n list. -- Forwarded message -- From: RageCryX ragec...@yahoo.gr Date: Wed, Nov 20, 2013 at 11:21 PM Subject: [Enlightenment-intl] Greek Translation Update To: enlightenment-i...@lists.sourceforge.net enlightenment-i...@lists.sourceforge.net Greek translation update (el.po) for enlightenment (attached el.po_diff) Also I wanted to ask: Is it possible to open a localization section in the wiki with subsections for each language so we can make (localized) lookup tables for terms (like gadgets, shelf, module etc) so its more easy for new translators to pick up and dont get the already translated content messy? And a second idea targeted mostly at the developers (hope someone reads this): Another section in the wiki or the bug tracker (or smth) to propose alternatives for the original messages or the inclusion of tooltips in some cases. There is no message I can't translate from English to Greek, but some of these messages become to ambiguous/abstract for the user when translated, tooltips would help clarify these. Thanks for your time, George Koutsikos - i think it is a really good and practical idea (the second part even more so). -- Regards, Alex-P. Natsios (a.k.a Drakevr) -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Which constraint solver is used in EFL?
On Wed, 2013-11-20 at 11:51 +1000, David Seikel wrote: On Wed, 20 Nov 2013 09:15:01 +0900 Carsten Haitzler (The Rasterman) ras...@rasterman.com wrote: On Tue, 19 Nov 2013 15:20:01 + Thomas Strobel ts...@cam.ac.uk said: Hi all, I was wondering which constraint solver is being used in EFL for placing evas objects relatively to each other? Especially for edje, can anyone point me to a research paper or similar which describes the algorithm being used? nope. can't. it's just math man. math. there is no constraint solver at all. it's just calculate your coords - if you are relative TO something else... your coords depend on its coords - so go calculate what you depend on first... and repeat (recurse). it's just inside edje. simple basic logic+math Well, I guessed it was related to math. ;) Or to put it another way, there are no constraints, it's not that sort of system. Things are placed relative to other things, at a fixed fraction of the size of the thing it is relative to. Thank you very much for clarifying how it works. I just didn't want to work through the source immediately, searching for a constraint solver's implementation like Cassowary. On the other hand, there is also ephysics, which can be used to make graphics objects react to other objects in a 2D plane using the bullet physics library. You can ask the bullet library authors about their algorithms. -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [apps/terminology] master 02/02: do not bring back a selection from the dead
billiob pushed a commit to branch master. http://git.enlightenment.org/apps/terminology.git/commit/?id=b149052d642d0c280e85425d1bf73b6c9fee3f39 commit b149052d642d0c280e85425d1bf73b6c9fee3f39 Author: Boris Faure bill...@gmail.com Date: Wed Nov 20 23:12:19 2013 +0100 do not bring back a selection from the dead --- src/bin/termio.c | 25 + 1 file changed, 1 insertion(+), 24 deletions(-) diff --git a/src/bin/termio.c b/src/bin/termio.c index 1ea60f5..4764472 100644 --- a/src/bin/termio.c +++ b/src/bin/termio.c @@ -41,12 +41,6 @@ struct _Termio int button; } mouse; struct { - struct { - int x, y; - } start, end; - Eina_Bool available : 1; - } backup_sel; - struct { char *string; int x1, y1, x2, y2; int suspend; @@ -3043,22 +3037,10 @@ _smart_cb_mouse_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUS } else if (ev-flags EVAS_BUTTON_DOUBLE_CLICK) { - if (shift - sd-backup_sel.available) - { - _sel_set(data, EINA_TRUE); - sd-pty-selection.is_active = EINA_TRUE; - sd-pty-selection.start.x = sd-backup_sel.start.x; - sd-pty-selection.start.y = sd-backup_sel.start.y; - sd-pty-selection.end.x = sd-backup_sel.end.x; - sd-pty-selection.end.y = sd-backup_sel.end.y; - _selection_dbl_fix(data); + if (shift) _sel_word_to(data, cx, cy - sd-scroll); - } else - { _sel_word(data, cx, cy - sd-scroll); - } if (sd-pty-selection.is_active) _take_selection(data, ELM_SEL_TYPE_PRIMARY); sd-didclick = EINA_TRUE; @@ -3213,11 +3195,6 @@ _smart_cb_mouse_up(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED _smart_update_queue(data, sd); _take_selection(data, ELM_SEL_TYPE_PRIMARY); } -sd-backup_sel.available = sd-pty-selection.is_active; -sd-backup_sel.start.x = sd-pty-selection.start.x; -sd-backup_sel.start.y = sd-pty-selection.start.y; -sd-backup_sel.end.x = sd-pty-selection.end.x; -sd-backup_sel.end.y = sd-pty-selection.end.y; } } } --
[EGIT] [apps/terminology] master 01/02: do not send mouse tracking when ctrl/shift are pressed. Closes T39, T535
billiob pushed a commit to branch master. http://git.enlightenment.org/apps/terminology.git/commit/?id=e5efdabd27b248a7f3babc37a85f4bca76ba661f commit e5efdabd27b248a7f3babc37a85f4bca76ba661f Author: Boris Faure bill...@gmail.com Date: Wed Nov 20 22:36:51 2013 +0100 do not send mouse tracking when ctrl/shift are pressed. Closes T39, T535 Do just like xterm. It uses them to show some popups. Ctrl+mouse makes box selection. --- src/bin/termio.c | 70 +--- 1 file changed, 36 insertions(+), 34 deletions(-) diff --git a/src/bin/termio.c b/src/bin/termio.c index 006a5e4..1ea60f5 100644 --- a/src/bin/termio.c +++ b/src/bin/termio.c @@ -2608,15 +2608,13 @@ _rep_mouse_down(Termio *sd, Evas_Event_Mouse_Down *ev, int cx, int cy) } else { - int shift = evas_key_modifier_is_set(ev-modifiers, Shift) ? 4 : 0; int meta = evas_key_modifier_is_set(ev-modifiers, Alt) ? 8 : 0; - int ctrl = evas_key_modifier_is_set(ev-modifiers, Control) ? 16 : 0; if (btn 2) btn = 0; buf[0] = 0x1b; buf[1] = '['; buf[2] = 'M'; - buf[3] = (btn | shift | meta | ctrl) + ' '; + buf[3] = (btn | meta) + ' '; buf[4] = cx + 1 + ' '; buf[5] = cy + 1 + ' '; buf[6] = 0; @@ -2627,16 +2625,14 @@ _rep_mouse_down(Termio *sd, Evas_Event_Mouse_Down *ev, int cx, int cy) break; case MOUSE_EXT_UTF8: // ESC.[.M.BTN/FLGS.XUTF8.YUTF8 { - int shift = evas_key_modifier_is_set(ev-modifiers, Shift) ? 4 : 0; int meta = evas_key_modifier_is_set(ev-modifiers, Alt) ? 8 : 0; - int ctrl = evas_key_modifier_is_set(ev-modifiers, Control) ? 16 : 0; int v, i; if (btn 2) btn = 0; buf[0] = 0x1b; buf[1] = '['; buf[2] = 'M'; - buf[3] = (btn | shift | meta | ctrl) + ' '; + buf[3] = (btn | meta) + ' '; i = 4; v = cx + 1 + ' '; if (v = 127) buf[i++] = v; @@ -2659,25 +2655,21 @@ _rep_mouse_down(Termio *sd, Evas_Event_Mouse_Down *ev, int cx, int cy) break; case MOUSE_EXT_SGR: // ESC.[..NUM.;.NUM.;.NUM.M { - int shift = evas_key_modifier_is_set(ev-modifiers, Shift) ? 4 : 0; int meta = evas_key_modifier_is_set(ev-modifiers, Alt) ? 8 : 0; - int ctrl = evas_key_modifier_is_set(ev-modifiers, Control) ? 16 : 0; snprintf(buf, sizeof(buf), %c[%i;%i;%iM, 0x1b, - (btn | shift | meta | ctrl), cx + 1, cy + 1); + (btn | meta), cx + 1, cy + 1); termpty_write(sd-pty, buf, strlen(buf)); ret = EINA_TRUE; } break; case MOUSE_EXT_URXVT: // ESC.[.NUM.;.NUM.;.NUM.M { - int shift = evas_key_modifier_is_set(ev-modifiers, Shift) ? 4 : 0; int meta = evas_key_modifier_is_set(ev-modifiers, Alt) ? 8 : 0; - int ctrl = evas_key_modifier_is_set(ev-modifiers, Control) ? 16 : 0; if (btn 2) btn = 0; snprintf(buf, sizeof(buf), %c[%i;%i;%iM, 0x1b, - (btn | shift | meta | ctrl) + ' ', + (btn | meta) + ' ', cx + 1, cy + 1); termpty_write(sd-pty, buf, strlen(buf)); ret = EINA_TRUE; @@ -2694,7 +2686,7 @@ _rep_mouse_up(Termio *sd, Evas_Event_Mouse_Up *ev, int cx, int cy) { char buf[64]; Eina_Bool ret = EINA_FALSE; - int shift, meta, ctrl; + int meta; if ((sd-pty-mouse_mode == MOUSE_OFF) || (sd-pty-mouse_mode == MOUSE_X10)) @@ -2702,9 +2694,7 @@ _rep_mouse_up(Termio *sd, Evas_Event_Mouse_Up *ev, int cx, int cy) if (sd-mouse.button == ev-button) sd-mouse.button = 0; - shift = evas_key_modifier_is_set(ev-modifiers, Shift) ? 4 : 0; meta = evas_key_modifier_is_set(ev-modifiers, Alt) ? 8 : 0; - ctrl = evas_key_modifier_is_set(ev-modifiers, Control) ? 16 : 0; switch (sd-pty-mouse_ext) { @@ -2714,7 +2704,7 @@ _rep_mouse_up(Termio *sd, Evas_Event_Mouse_Up *ev, int cx, int cy) buf[0] = 0x1b; buf[1] = '['; buf[2] = 'M'; - buf[3] = (3 | shift | meta | ctrl) + ' '; + buf[3] = (3 | meta) + ' '; buf[4] = cx + 1 + ' '; buf[5] = cy + 1 + ' '; buf[6] = 0; @@ -2729,7 +2719,7 @@ _rep_mouse_up(Termio *sd, Evas_Event_Mouse_Up *ev, int cx, int cy) buf[0] = 0x1b; buf[1] = '['; buf[2] = 'M'; - buf[3] = (3 | shift | meta | ctrl) + ' '; + buf[3] = (3 | meta) + ' '; i = 4; v = cx + 1 + ' ';
[EGIT] [core/enlightenment] master 01/06: disable resizing of buttons in window remember dialog
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=3cd71f149b1ac47407558a9f6a365904e016ea54 commit 3cd71f149b1ac47407558a9f6a365904e016ea54 Author: Mike Blumenkrantz zm...@enlightenment.org Date: Tue Nov 19 22:00:17 2013 -0500 disable resizing of buttons in window remember dialog T381 --- src/modules/conf_window_remembers/e_int_config_remembers.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/conf_window_remembers/e_int_config_remembers.c b/src/modules/conf_window_remembers/e_int_config_remembers.c index 7477130..eca507b 100644 --- a/src/modules/conf_window_remembers/e_int_config_remembers.c +++ b/src/modules/conf_window_remembers/e_int_config_remembers.c @@ -186,7 +186,7 @@ _basic_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata) e_widget_list_object_append(of2, ow, 1, 1, 0.5); cfdata-btn2 = ow = e_widget_button_add(evas, _(Delete), list-remove, _cb_delete, cfdata, NULL); e_widget_list_object_append(of2, ow, 1, 1, 0.5); - e_widget_list_object_append(ol, of2, 1, 1, 0.5); + e_widget_list_object_append(ol, of2, 1, 0, 0.5); _cb_list_change(cfdata, NULL); return ol; --
[EGIT] [core/enlightenment] master 04/06: block mouse down focus event focus setting on already-focused windows
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=d17ab08019eb1abe27c39d5201585656564ffe4b commit d17ab08019eb1abe27c39d5201585656564ffe4b Author: Mike Blumenkrantz zm...@enlightenment.org Date: Wed Nov 20 13:17:42 2013 -0500 block mouse down focus event focus setting on already-focused windows fixes steam menus with click focus, which previously would close immediately after opening when they lost focus --- src/bin/e_focus.c | 11 +++ 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/bin/e_focus.c b/src/bin/e_focus.c index 24cc3e9..28fb473 100644 --- a/src/bin/e_focus.c +++ b/src/bin/e_focus.c @@ -63,10 +63,13 @@ e_focus_event_mouse_out(E_Border *bd) EAPI void e_focus_event_mouse_down(E_Border *bd) { - if (e_config-focus_policy == E_FOCUS_CLICK) - e_border_focus_set(bd, 1, 1); - else if (e_config-always_click_to_focus) - e_border_focus_set(bd, 1, 1); + if (!bd-focused) + { +if (e_config-focus_policy == E_FOCUS_CLICK) + e_border_focus_set(bd, 1, 1); +else if (e_config-always_click_to_focus) + e_border_focus_set(bd, 1, 1); + } if (e_config-always_click_to_raise) { if (!bd-lock_user_stacking) --
[EGIT] [core/enlightenment] master 02/06: force render queue on nocomp window hide
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=7cc9e7db3bf7cad18b300ea934f07e30cce4b6c8 commit 7cc9e7db3bf7cad18b300ea934f07e30cce4b6c8 Author: Mike Blumenkrantz zm...@enlightenment.org Date: Wed Nov 20 01:33:56 2013 -0500 force render queue on nocomp window hide without this, it was possible to break the compositor by enabling options which prevent unfullscreening a window on vdesk flip, which causes nocomp mode to remain permanently enabled, even after the window has closed --- src/bin/e_comp.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c index d1f2898..4fef776 100644 --- a/src/bin/e_comp.c +++ b/src/bin/e_comp.c @@ -2746,6 +2746,8 @@ _e_comp_win_hide(E_Comp_Win *cw) ecore_timer_del(cw-update_timeout); cw-update_timeout = NULL; } + if (cw-nocomp) + _e_comp_render_queue(cw-c); if (conf-keep_unmapped cw-win) { if (!cw-delete_me) --
[EGIT] [core/enlightenment] master 03/06: accurately set menu radio item in client vdesk Move to... submenu
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=12ce306457103cf588d3290458c3164484136f29 commit 12ce306457103cf588d3290458c3164484136f29 Author: Mike Blumenkrantz zm...@enlightenment.org Date: Wed Nov 20 12:30:21 2013 -0500 accurately set menu radio item in client vdesk Move to... submenu T478 --- src/bin/e_int_border_menu.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/bin/e_int_border_menu.c b/src/bin/e_int_border_menu.c index ef12f6f..919a49b 100644 --- a/src/bin/e_int_border_menu.c +++ b/src/bin/e_int_border_menu.c @@ -937,14 +937,12 @@ _e_border_menu_cb_sendto_pre(void *data, E_Menu *m __UNUSED__, E_Menu_Item *mi) E_Menu *subm; E_Menu_Item *submi; E_Border *bd; - E_Desk *desk_cur; E_Zone *zone; Eina_List *l = NULL; char buf[128]; int zones, i; bd = data; - desk_cur = e_desk_current_get(bd-zone); zones = eina_list_count(bd-zone-container-zones); subm = e_menu_new(); @@ -979,7 +977,7 @@ _e_border_menu_cb_sendto_pre(void *data, E_Menu *m __UNUSED__, E_Menu_Item *mi) #ifdef DESKMIRROR_TEST e_menu_item_icon_file_set(submi, sup); #endif - if ((bd-zone == zone) (desk_cur == desk)) + if ((bd-zone == zone) (!bd-iconic) (bd-desk == desk)) e_menu_item_toggle_set(submi, 1); else e_menu_item_callback_set(submi, _e_border_menu_cb_sendto, desk); --
[EGIT] [core/enlightenment] master 06/06: add back/forward mouse button support for efm when a toolbar is present
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=bedf56c457939c897e1eac1f3a2b27c945166178 commit bedf56c457939c897e1eac1f3a2b27c945166178 Author: Mike Blumenkrantz zm...@enlightenment.org Date: Wed Nov 20 15:26:49 2013 -0500 add back/forward mouse button support for efm when a toolbar is present button numbers untested because I don't have a mouse, so if they're wrong someone should post the results of clicking those buttons from xev T67 --- src/modules/fileman/e_fwin_nav.c | 19 +++ 1 file changed, 19 insertions(+) diff --git a/src/modules/fileman/e_fwin_nav.c b/src/modules/fileman/e_fwin_nav.c index d382260..fffcd19 100644 --- a/src/modules/fileman/e_fwin_nav.c +++ b/src/modules/fileman/e_fwin_nav.c @@ -55,6 +55,8 @@ static void _cb_button_click(void *data, Evas_Object *obj, const cha static void _cb_scroll_resize(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info); static void _box_button_append(Instance *inst, const char *label, Edje_Signal_Cb func); static void _box_button_free(Nav_Item *ni); +static void _cb_fm_mouse_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info); + static Eina_List *instances = NULL; static const char *_nav_mod_dir = NULL; @@ -289,6 +291,8 @@ _gc_init(E_Gadcon *gc, const char *name, const char *id, const char *style) inst-tbar = tbar; inst-o_fm = o_fm; + evas_object_event_callback_add(o_fm, EVAS_CALLBACK_MOUSE_DOWN, _cb_fm_mouse_down, inst); + snprintf(buf, sizeof(buf), %s/e-module-efm_nav.edj, _nav_mod_dir); inst-theme = eina_stringshare_add(buf); @@ -392,6 +396,9 @@ _gc_shutdown(E_Gadcon_Client *gcc) instances = eina_list_remove(instances, inst); evas_object_event_callback_del_full(inst-o_fm, + EVAS_CALLBACK_MOUSE_DOWN, + _cb_fm_mouse_down, inst); + evas_object_event_callback_del_full(inst-o_fm, EVAS_CALLBACK_KEY_DOWN, _cb_key_down, inst); @@ -588,6 +595,18 @@ _cb_favorites_click(void *data, Evas_Object *obj __UNUSED__, const char *emissio } static void +_cb_fm_mouse_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info) +{ + Instance *inst = data; + Evas_Event_Mouse_Down *ev = event_info; + + if (ev-button == 9) + _cb_forward_click(inst, NULL, NULL, NULL); + else if (ev-button == 8) + _cb_back_click(inst, NULL, NULL, NULL); +} + +static void _cb_changed(void *data, Evas_Object *obj __UNUSED__, void *event_info) { Instance *inst; --
[EGIT] [core/enlightenment] master 05/06: prepend new windows to focus stack during init
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=cc2939b327f9ae1ff8b13d3f6bc10ed1b973003f commit cc2939b327f9ae1ff8b13d3f6bc10ed1b973003f Author: Mike Blumenkrantz zm...@enlightenment.org Date: Wed Nov 20 15:12:25 2013 -0500 prepend new windows to focus stack during init this fixes stacking after restarts since we manage and raise windows from the bottom up, meaning that we must also build our focus stack from back to front --- src/bin/e_border.c | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/bin/e_border.c b/src/bin/e_border.c index 43cc261..19b49ff 100644 --- a/src/bin/e_border.c +++ b/src/bin/e_border.c @@ -728,7 +728,10 @@ e_border_new(E_Container *con, Ecore_X_Window win, int first_map, int internal) desk[1] = desky; ecore_x_window_prop_card32_set(win, E_ATOM_DESK, desk, 2); - focus_stack = eina_list_append(focus_stack, bd); + if (starting) + focus_stack = eina_list_prepend(focus_stack, bd); + else + focus_stack = eina_list_append(focus_stack, bd); return bd; } --
[E-devel] I'm baaaaaaaack
It's been a long month, and I'm sure you all missed me very much. We're finally in the release cycle for E18, so I'm beginning to hack away at the few remaining bugs: http://i.imgur.com/yeKUrll.gif I've seen the open tickets, and most of them aren't going to be fixed before release. If anyone has any urgent bugs, speak up. -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/elementary] master 01/01: elementary/elm_scroller.c : For checking focus next object, focus_direcion_get function should be changed to focus_next_get function. If there is no focus next o
woohyun pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=0a3f2f0e315789bd5be87d2205c306b20f660bc2 commit 0a3f2f0e315789bd5be87d2205c306b20f660bc2 Author: WooHyun Jung wh0705.j...@samsung.com Date: Thu Nov 21 10:13:40 2013 +0900 elementary/elm_scroller.c : For checking focus next object, focus_direcion_get function should be changed to focus_next_get function. If there is no focus next object, focus_direction_get will be executed by focus_next_get. --- src/lib/elm_scroller.c | 21 ++--- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/src/lib/elm_scroller.c b/src/lib/elm_scroller.c index 67ae134..b3082d9 100644 --- a/src/lib/elm_scroller.c +++ b/src/lib/elm_scroller.c @@ -151,31 +151,22 @@ _elm_scroller_smart_event(Eo *obj, void *_pd, va_list *list) } else { - Evas_Object *tmp = NULL; - double degree = 0.0, weight = 0.0; - void *(*list_data_get)(const Eina_List *list); - - list_data_get = eina_list_data_get; + Eina_Bool r = EINA_FALSE; if ((!strcmp(ev-key, Left)) || (!strcmp(ev-key, KP_Left))) - degree = 270.0; + r = elm_widget_focus_next_get(obj, ELM_FOCUS_LEFT, new_focus); else if ((!strcmp(ev-key, Right)) || (!strcmp(ev-key, KP_Right))) - degree = 90.0; + r = elm_widget_focus_next_get(obj, ELM_FOCUS_RIGHT, new_focus); else if ((!strcmp(ev-key, Up)) || (!strcmp(ev-key, KP_Up))) - degree = 0.0; + r = elm_widget_focus_next_get(obj, ELM_FOCUS_UP, new_focus); else if ((!strcmp(ev-key, Down)) || (!strcmp(ev-key, KP_Down))) - degree = 180.0; - - if (elm_widget_focus_list_direction_get - (obj, current_focus, can_focus_list, list_data_get, degree, - tmp, weight)) - new_focus = tmp; + r = elm_widget_focus_next_get(obj, ELM_FOCUS_DOWN, new_focus); - if (new_focus) + if (r new_focus) { Evas_Coord l_x = 0; Evas_Coord l_y = 0; --
[EGIT] [core/efl] master 01/01: edje - more elaborated compare to reduce compare count.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=3c9059e3e4ca1cd8dd1846d2baf0ca7379b1f4a9 commit 3c9059e3e4ca1cd8dd1846d2baf0ca7379b1f4a9 Author: ChunEon Park her...@hermet.pe.kr Date: Thu Nov 21 10:25:35 2013 +0900 edje - more elaborated compare to reduce compare count. --- src/lib/edje/edje_smart.c | 35 ++- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/src/lib/edje/edje_smart.c b/src/lib/edje/edje_smart.c index dae9b59..d4c095e 100644 --- a/src/lib/edje/edje_smart.c +++ b/src/lib/edje/edje_smart.c @@ -182,26 +182,27 @@ _edje_smart_move(Eo *obj EINA_UNUSED, void *_pd, va_list *list) Edje_Real_Part *ep; ep = ed-table_parts[i]; - if ((ep-type == EDJE_RP_TYPE_TEXT) - (ep-typedata.text)) - evas_object_move(ep-object, -ed-x + ep-x + ep-typedata.text-offset.x, -ed-y + ep-y + ep-typedata.text-offset.y); + if ((ep-type == EDJE_RP_TYPE_TEXT) (ep-typedata.text)) + { + evas_object_move(ep-object, + ed-x + ep-x + ep-typedata.text-offset.x, + ed-y + ep-y + ep-typedata.text-offset.y); + } else - evas_object_move(ep-object, -ed-x + ep-x, -ed-y + ep-y); - if (ep-part-entry_mode EDJE_ENTRY_EDIT_MODE_NONE) - _edje_entry_real_part_configure(ed, ep); - if ((ep-type == EDJE_RP_TYPE_SWALLOW) - (ep-typedata.swallow)) { - if (ep-typedata.swallow-swallowed_object) -evas_object_move -(ep-typedata.swallow-swallowed_object, -ed-x + ep-x, -ed-y + ep-y); + evas_object_move(ep-object, ed-x + ep-x, ed-y + ep-y); + if ((ep-type == EDJE_RP_TYPE_SWALLOW) + (ep-typedata.swallow)) +{ + if (ep-typedata.swallow-swallowed_object) + evas_object_move +(ep-typedata.swallow-swallowed_object, + ed-x + ep-x, + ed-y + ep-y); +} } + if (ep-part-entry_mode EDJE_ENTRY_EDIT_MODE_NONE) + _edje_entry_real_part_configure(ed, ep); } } // _edje_emit(ed, move, NULL); --
[EGIT] [core/efl] master 01/01: evas: reduce numbers of call to eet_init/eet_shutdown.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=63c01cbb2a01a09a40d22fa47454a82c8b31183f commit 63c01cbb2a01a09a40d22fa47454a82c8b31183f Author: Cedric Bail cedric.b...@samsung.com Date: Thu Nov 21 10:47:27 2013 +0900 evas: reduce numbers of call to eet_init/eet_shutdown. --- src/lib/evas/canvas/evas_main.c | 8 src/lib/evas/common/evas_image_main.c | 6 -- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/lib/evas/canvas/evas_main.c b/src/lib/evas/canvas/evas_main.c index 101b82f..6cc8f8e 100644 --- a/src/lib/evas/canvas/evas_main.c +++ b/src/lib/evas/canvas/evas_main.c @@ -51,6 +51,10 @@ evas_init(void) eo_init(); +#ifdef BUILD_LOADER_EET + eet_init(); +#endif + evas_module_init(); if (!evas_async_events_init()) goto shutdown_module; @@ -124,6 +128,10 @@ evas_shutdown(void) evas_font_dir_cache_free(); evas_common_shutdown(); evas_module_shutdown(); + +#ifdef BUILD_LOADER_EET + eet_shutdown(); +#endif eo_shutdown(); eina_log_domain_unregister(_evas_log_dom_global); diff --git a/src/lib/evas/common/evas_image_main.c b/src/lib/evas/common/evas_image_main.c index 1492d80..75767dc 100644 --- a/src/lib/evas/common/evas_image_main.c +++ b/src/lib/evas/common/evas_image_main.c @@ -194,9 +194,6 @@ evas_common_image_init(void) reference++; ERR(REF++=%i, reference); -#ifdef BUILD_LOADER_EET - eet_init(); -#endif evas_common_scalecache_init(); } @@ -229,9 +226,6 @@ evas_common_image_shutdown(void) #endif } -#ifdef BUILD_LOADER_EET - eet_shutdown(); -#endif evas_common_scalecache_shutdown(); } --
[EGIT] [core/efl] master 01/01: edje - use Eina_Bool.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c28f08a477f7bce7b514b8f9aa58904234be1e03 commit c28f08a477f7bce7b514b8f9aa58904234be1e03 Author: ChunEon Park her...@hermet.pe.kr Date: Thu Nov 21 13:00:55 2013 +0900 edje - use Eina_Bool. --- src/lib/edje/edje_calc.c | 8 src/lib/edje/edje_callbacks.c | 16 src/lib/edje/edje_embryo.c| 2 +- src/lib/edje/edje_private.h | 4 ++-- src/lib/edje/edje_program.c | 16 src/lib/edje/edje_util.c | 38 +++--- 6 files changed, 42 insertions(+), 42 deletions(-) diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c index 2f9f1d2..017c199 100644 --- a/src/lib/edje/edje_calc.c +++ b/src/lib/edje/edje_calc.c @@ -131,7 +131,7 @@ _edje_part_pos_set(Edje *ed, Edje_Real_Part *ep, int mode, FLOAT_T pos, FLOAT_T ed-dirty = EINA_TRUE; ed-recalc_call = EINA_TRUE; #ifdef EDJE_CALC_CACHE - ep-invalidate = 1; + ep-invalidate = EINA_TRUE; #endif } @@ -607,7 +607,7 @@ _edje_part_description_apply(Edje *ed, Edje_Real_Part *ep, const char *d1, doubl ed-dirty = EINA_TRUE; ed-recalc_call = EINA_TRUE; #ifdef EDJE_CALC_CACHE - ep-invalidate = 1; + ep-invalidate = EINA_TRUE; #endif } @@ -846,7 +846,7 @@ _edje_dragable_pos_set(Edje *ed, Edje_Real_Part *ep, FLOAT_T x, FLOAT_T y) } #ifdef EDJE_CALC_CACHE - ep-invalidate = 1; + ep-invalidate = EINA_TRUE; #endif _edje_recalc(ed); /* won't do anything if dirty flag isn't set */ } @@ -3969,7 +3969,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta if (ep-calculated == FLAG_XY) { ep-state = ed-state; -ep-invalidate = 0; +ep-invalidate = EINA_FALSE; } #else eina_cow_free(_edje_calc_params_map_cow, (const Eina_Cow_Data **) lp1.map); diff --git a/src/lib/edje/edje_callbacks.c b/src/lib/edje/edje_callbacks.c index 9a508c7..5ea7efb 100644 --- a/src/lib/edje/edje_callbacks.c +++ b/src/lib/edje/edje_callbacks.c @@ -151,7 +151,7 @@ _edje_mouse_down_signal_cb(void *data, Eo *obj, const Eo_Event_Description *desc { rp-clicked_button = ev-button; if (!(ev-event_flags EVAS_EVENT_FLAG_ON_HOLD)) - rp-still_in = 1; + rp-still_in = EINA_TRUE; } // _edje_recalc_do(ed); _edje_thaw(ed); @@ -209,7 +209,7 @@ _edje_mouse_up_signal_cb(void *data, Eo *obj, const Eo_Event_Description *desc E ed-recalc_call = EINA_TRUE; ed-dirty = EINA_TRUE; #ifdef EDJE_CALC_CACHE - rp-invalidate = 1; + rp-invalidate = EINA_TRUE; #endif if (!ignored rp-drag-started) _edje_emit(ed, drag,stop, rp-part-name); @@ -225,7 +225,7 @@ _edje_mouse_up_signal_cb(void *data, Eo *obj, const Eo_Event_Description *desc E _edje_emit(ed, buf, rp-part-name); } rp-clicked_button = 0; - rp-still_in = 0; + rp-still_in = EINA_FALSE; // _edje_recalc_do(ed); _edje_thaw(ed); @@ -262,7 +262,7 @@ _edje_mouse_move_signal_cb(void *data, Eo *obj, const Eo_Event_Description *desc { if (ev-event_flags EVAS_EVENT_FLAG_ON_HOLD) - rp-still_in = 0; + rp-still_in = EINA_FALSE; else { Evas_Coord x, y, w, h; @@ -270,7 +270,7 @@ _edje_mouse_move_signal_cb(void *data, Eo *obj, const Eo_Event_Description *desc evas_object_geometry_get(obj, x, y, w, h); if ((ev-cur.canvas.x x) || (ev-cur.canvas.y y) || (ev-cur.canvas.x = (x + w)) || (ev-cur.canvas.y = (y + h))) - rp-still_in = 0; + rp-still_in = EINA_FALSE; } } else @@ -282,7 +282,7 @@ _edje_mouse_move_signal_cb(void *data, Eo *obj, const Eo_Event_Description *desc evas_object_geometry_get(obj, x, y, w, h); if ((ev-cur.canvas.x = x) (ev-cur.canvas.y = y) (ev-cur.canvas.x (x + w)) (ev-cur.canvas.y (y + h))) - rp-still_in = 1; + rp-still_in = EINA_TRUE; } } _edje_freeze(ed); @@ -297,7 +297,7 @@ _edje_mouse_move_signal_cb(void *data, Eo *obj, const Eo_Event_Description *desc ed-recalc_call = EINA_TRUE; ed-dirty = EINA_TRUE; #ifdef EDJE_CALC_CACHE -rp-invalidate = 1; +rp-invalidate = EINA_TRUE; #endif } _edje_recalc_do(ed); @@ -321,7 +321,7 @@ _edje_mouse_move_signal_cb(void *data, Eo *obj, const Eo_Event_Description *desc ed-recalc_call = EINA_TRUE; ed-dirty = EINA_TRUE; #ifdef EDJE_CALC_CACHE - rp-invalidate = 1; + rp-invalidate = EINA_TRUE; #endif _edje_recalc_do(ed); } diff --git a/src/lib/edje/edje_embryo.c b/src/lib/edje/edje_embryo.c index b9686af..a57fd99 100644 ---
Re: [E-devel] I'm baaaaaaaack
about time ! and no blog post since a while !! :) On Thu, Nov 21, 2013 at 12:25 AM, Michael Blumenkrantz michael.blumenkra...@gmail.com wrote: It's been a long month, and I'm sure you all missed me very much. We're finally in the release cycle for E18, so I'm beginning to hack away at the few remaining bugs: http://i.imgur.com/yeKUrll.gif I've seen the open tickets, and most of them aren't going to be fixed before release. If anyone has any urgent bugs, speak up. -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] master 01/01: edje - cleaning the code.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=035d573571a80f23077b46937586d71a1f638a54 commit 035d573571a80f23077b46937586d71a1f638a54 Author: ChunEon Park her...@hermet.pe.kr Date: Thu Nov 21 13:12:34 2013 +0900 edje - cleaning the code. keep our code convention. --- src/lib/edje/edje_calc.c | 61 1 file changed, 31 insertions(+), 30 deletions(-) diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c index 017c199..b6816ee 100644 --- a/src/lib/edje/edje_calc.c +++ b/src/lib/edje/edje_calc.c @@ -3345,24 +3345,27 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta #ifdef EDJE_CALC_CACHE if (ed-all_part_change || ep-invalidate || -state1 = ep-param1.state || -statec = ep-param1.state || -statet = ep-param1.state || -statec1 = ep-param1.state || -statel1 = ep-param1.state || -statep1 = ep-param1.state || +(state1 = ep-param1.state) || +(statec = ep-param1.state) || +(statet = ep-param1.state) || +(statec1 = ep-param1.state) || +(statel1 = ep-param1.state) || +(statep1 = ep-param1.state) || proxy_invalidate || state || -((ep-part-type == EDJE_PART_TYPE_TEXT || ep-part-type == EDJE_PART_TYPE_TEXTBLOCK) ed-text_part_change)) +((ep-part-type == EDJE_PART_TYPE_TEXT || + ep-part-type == EDJE_PART_TYPE_TEXTBLOCK) + ed-text_part_change)) #endif { - _edje_part_recalc_single(ed, ep, ep-param1.description, chosen_desc, center[0], light[0], persp[0], - rp1[Rel1X], rp1[Rel1Y], rp1[Rel2X], rp1[Rel2Y], - confine_to, threshold, - p1, ep-param1.set, mmw, mmh, pos); + _edje_part_recalc_single(ed, ep, ep-param1.description, + chosen_desc, center[0], light[0], + persp[0], rp1[Rel1X], rp1[Rel1Y], + rp1[Rel2X], rp1[Rel2Y], confine_to, + threshold, p1, ep-param1.set, mmw, mmh, + pos); #ifdef EDJE_CALC_CACHE - if (flags == FLAG_XY) - ep-param1.state = ed-state; + if (flags == FLAG_XY) ep-param1.state = ed-state; #endif } } @@ -3410,29 +3413,27 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta if (ed-all_part_change || ep-invalidate || -state2 = ep-param2-state || -statec = ep-param2-state || -statet = ep-param2-state || -statec2 = ep-param2-state || -statel2 = ep-param2-state || -statep2 = ep-param2-state || +(state2 = ep-param2-state) || +(statec = ep-param2-state) || +(statet = ep-param2-state) || +(statec2 = ep-param2-state) || +(statel2 = ep-param2-state) || +(statep2 = ep-param2-state) || proxy_invalidate || state || -((ep-part-type == EDJE_PART_TYPE_TEXT || ep-part-type == EDJE_PART_TYPE_TEXTBLOCK) ed-text_part_change)) +((ep-part-type == EDJE_PART_TYPE_TEXT || + ep-part-type == EDJE_PART_TYPE_TEXTBLOCK) + ed-text_part_change)) #endif { _edje_part_recalc_single(ed, ep, ep-param2-description, - chosen_desc, - center[1], light[1], persp[1], - rp2[Rel1X], - rp2[Rel1Y], - rp2[Rel2X], - rp2[Rel2Y], - confine_to, threshold, - p2, ep-param2-set, mmw, mmh, pos); + chosen_desc, center[1], light[1], + persp[1], rp2[Rel1X], rp2[Rel1Y], + rp2[Rel2X], rp2[Rel2Y], confine_to, + threshold, p2, ep-param2-set, mmw, mmh, + pos); #ifdef EDJE_CALC_CACHE - if (flags == FLAG_XY) - ep-param2-state = ed-state; + if (flags == FLAG_XY) ep-param2-state = ed-state; #endif } --
[EGIT] [core/efl] master 01/01: edje - Fix to update map enabled part when edje object is moved.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=12aba0db5a0949488d37b69b8696ed424666dca8 commit 12aba0db5a0949488d37b69b8696ed424666dca8 Author: ChunEon Park her...@hermet.pe.kr Date: Thu Nov 21 13:26:37 2013 +0900 edje - Fix to update map enabled part when edje object is moved. --- ChangeLog | 4 +++ NEWS| 1 + src/lib/edje/edje_calc.c| 6 - src/lib/edje/edje_private.h | 1 + src/lib/edje/edje_smart.c | 59 ++--- 5 files changed, 40 insertions(+), 31 deletions(-) diff --git a/ChangeLog b/ChangeLog index b9c4c28..de43e9e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2013-11-21 ChunEon Park (Hermet) + + * Edje: Fix to update map-enabled part when the edje object is moved. + 2013-11-20 Cedric Bail * Eina: Fix a possible race condition during eina_file_close. diff --git a/NEWS b/NEWS index 01803f8..cdb7d7d 100644 --- a/NEWS +++ b/NEWS @@ -437,6 +437,7 @@ Fixes: - Fixed memory leak in the edje map color transition. - Add null checking for name of anchor and item in geometry get functions. - Fix use of eina_hash_pointer to actually look at the pointer value. + - Fix to update map-enabled part when the edje object is moved. * Efreet: - Fix desktop command parsing of https. diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c index b6816ee..6f98455 100644 --- a/src/lib/edje/edje_calc.c +++ b/src/lib/edje/edje_calc.c @@ -650,7 +650,6 @@ _edje_recalc_do(Edje *ed) need_calc = evas_object_smart_need_recalculate_get(ed-obj); evas_object_smart_need_recalculate_set(ed-obj, 0); if (!ed-dirty) return; - ed-have_mapped_part = EINA_FALSE; ed-dirty = EINA_FALSE; ed-state++; for (i = 0; i ed-table_parts_size; i++) @@ -3353,6 +3352,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta (statep1 = ep-param1.state) || proxy_invalidate || state || +(ep-map_on ed-have_mapped_part) || ((ep-part-type == EDJE_PART_TYPE_TEXT || ep-part-type == EDJE_PART_TYPE_TEXTBLOCK) ed-text_part_change)) @@ -3421,6 +3421,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta (statep2 = ep-param2-state) || proxy_invalidate || state || +(ep-map_on ed-have_mapped_part) || ((ep-part-type == EDJE_PART_TYPE_TEXT || ep-part-type == EDJE_PART_TYPE_TEXTBLOCK) ed-text_part_change)) @@ -3894,6 +3895,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta static Evas_Map *map = NULL; ed-have_mapped_part = EINA_TRUE; + ep-map_on = EINA_TRUE; // create map and populate with part geometry if (!map) map = evas_map_new(4); @@ -3915,6 +3917,8 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta } else { + ep-map_on = EINA_FALSE; + if (ep-nested_smart) { /* Cancel map of smart obj holding nested parts */ eo_do(ep-nested_smart, diff --git a/src/lib/edje/edje_private.h b/src/lib/edje/edje_private.h index b6e0db9..bfcc9b7 100644 --- a/src/lib/edje/edje_private.h +++ b/src/lib/edje/edje_private.h @@ -1594,6 +1594,7 @@ struct _Edje_Real_Part #ifdef EDJE_CALC_CACHE Eina_Bool invalidate : 1; // 0 #endif + Eina_Bool map_on : 1; // 0 }; // 128 // WITH EDJE_CALC_CACHE: 407 diff --git a/src/lib/edje/edje_smart.c b/src/lib/edje/edje_smart.c index d4c095e..7fb79a8 100644 --- a/src/lib/edje/edje_smart.c +++ b/src/lib/edje/edje_smart.c @@ -151,6 +151,7 @@ _edje_smart_move(Eo *obj EINA_UNUSED, void *_pd, va_list *list) Evas_Coord x = va_arg(*list, Evas_Coord); Evas_Coord y = va_arg(*list, Evas_Coord); Edje *ed = _pd; + unsigned int i; if ((ed-x == x) (ed-y == y)) return; ed-x = x; @@ -168,43 +169,41 @@ _edje_smart_move(Eo *obj EINA_UNUSED, void *_pd, va_list *list) return; } - if (ed-have_mapped_part) + for (i = 0; i ed-table_parts_size; i++) { -ed-dirty = EINA_TRUE; -_edje_recalc_do(ed); - } - else - { -unsigned int i; +Edje_Real_Part *ep; -for (i = 0; i ed-table_parts_size; i++) +ep = ed-table_parts[i]; +if ((ep-type == EDJE_RP_TYPE_TEXT) (ep-typedata.text)) { - Edje_Real_Part *ep; - - ep = ed-table_parts[i]; - if ((ep-type == EDJE_RP_TYPE_TEXT) (ep-typedata.text)) - { - evas_object_move(ep-object, - ed-x + ep-x + ep-typedata.text-offset.x, -
[EGIT] [core/efl] master 01/01: edje - actually we don't need extra variable.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=eea338764abcf38c8be404be7e3c540cfedc002b commit eea338764abcf38c8be404be7e3c540cfedc002b Author: ChunEon Park her...@hermet.pe.kr Date: Thu Nov 21 13:50:19 2013 +0900 edje - actually we don't need extra variable. --- src/lib/edje/edje_calc.c| 7 ++- src/lib/edje/edje_private.h | 1 - 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c index 6f98455..038882d 100644 --- a/src/lib/edje/edje_calc.c +++ b/src/lib/edje/edje_calc.c @@ -3352,7 +3352,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta (statep1 = ep-param1.state) || proxy_invalidate || state || -(ep-map_on ed-have_mapped_part) || +(ed-have_mapped_part chosen_desc-map.on) || ((ep-part-type == EDJE_PART_TYPE_TEXT || ep-part-type == EDJE_PART_TYPE_TEXTBLOCK) ed-text_part_change)) @@ -3421,7 +3421,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta (statep2 = ep-param2-state) || proxy_invalidate || state || -(ep-map_on ed-have_mapped_part) || +(ed-have_mapped_part chosen_desc-map.on) || ((ep-part-type == EDJE_PART_TYPE_TEXT || ep-part-type == EDJE_PART_TYPE_TEXTBLOCK) ed-text_part_change)) @@ -3895,7 +3895,6 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta static Evas_Map *map = NULL; ed-have_mapped_part = EINA_TRUE; - ep-map_on = EINA_TRUE; // create map and populate with part geometry if (!map) map = evas_map_new(4); @@ -3917,8 +3916,6 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta } else { - ep-map_on = EINA_FALSE; - if (ep-nested_smart) { /* Cancel map of smart obj holding nested parts */ eo_do(ep-nested_smart, diff --git a/src/lib/edje/edje_private.h b/src/lib/edje/edje_private.h index bfcc9b7..b6e0db9 100644 --- a/src/lib/edje/edje_private.h +++ b/src/lib/edje/edje_private.h @@ -1594,7 +1594,6 @@ struct _Edje_Real_Part #ifdef EDJE_CALC_CACHE Eina_Bool invalidate : 1; // 0 #endif - Eina_Bool map_on : 1; // 0 }; // 128 // WITH EDJE_CALC_CACHE: 407 --
[EGIT] [core/elementary] master 01/01: elm_diskselector.c: reduce item_count number on _item_del. or reducing item_count could be skipped in some cases like elm_index_clear.
seoz pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=342b108641d495ae43f4313feab3a59f170269ed commit 342b108641d495ae43f4313feab3a59f170269ed Author: Daniel Juyung Seo juyung@samsung.com Date: Thu Nov 21 14:26:39 2013 +0900 elm_diskselector.c: reduce item_count number on _item_del. or reducing item_count could be skipped in some cases like elm_index_clear. This fixes T508. --- src/lib/elm_diskselector.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib/elm_diskselector.c b/src/lib/elm_diskselector.c index 6135dd8..be5eb44 100644 --- a/src/lib/elm_diskselector.c +++ b/src/lib/elm_diskselector.c @@ -327,6 +327,8 @@ _item_del(Elm_Diskselector_Item *item) { if (!item) return; + ELM_DISKSELECTOR_DATA_GET(WIDGET(item), sd); + sd-item_count -= 1; eina_stringshare_del(item-label); if (item-icon) @@ -371,7 +373,6 @@ _item_del_pre_hook(Elm_Object_Item *item) } _item_del(it); - sd-item_count -= 1; if (sd-round) { --
[EGIT] [core/efl] master 01/02: eina: fix the crash seen by some during rebuild.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=62b469749a4b79351b9bc52d40b9249ee48086bf commit 62b469749a4b79351b9bc52d40b9249ee48086bf Author: Cedric Bail cedric.b...@samsung.com Date: Thu Nov 21 14:46:59 2013 +0900 eina: fix the crash seen by some during rebuild. Before this patch, we were unconditionnaly destroying the Eina_File if that one did change on disk. We also make sure that we remove the right entry from the cache if the file did change there. --- src/lib/eina/eina_file.c| 1 - src/lib/eina/eina_file_common.c | 11 ++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/lib/eina/eina_file.c b/src/lib/eina/eina_file.c index 1ae3681..ca2fe61 100644 --- a/src/lib/eina/eina_file.c +++ b/src/lib/eina/eina_file.c @@ -868,7 +868,6 @@ eina_file_open(const char *path, Eina_Bool shared) { file-delete_me = EINA_TRUE; eina_hash_del(_eina_file_cache, file-filename, file); - eina_file_clean_close(file); file = NULL; } diff --git a/src/lib/eina/eina_file_common.c b/src/lib/eina/eina_file_common.c index 7952190..f6ae3be 100644 --- a/src/lib/eina/eina_file_common.c +++ b/src/lib/eina/eina_file_common.c @@ -463,6 +463,8 @@ EAPI void eina_file_close(Eina_File *file) { Eina_Bool leave = EINA_TRUE; + unsigned int length; + unsigned int key; EINA_SAFETY_ON_NULL_RETURN(file); @@ -474,7 +476,14 @@ eina_file_close(Eina_File *file) eina_lock_release(file-lock); if (leave) goto end; - eina_hash_del(_eina_file_cache, file-filename, file); + length = strlen(file-filename) + 1; + key = eina_hash_djb2(file-filename, length); + if (eina_hash_find_by_hash(_eina_file_cache, + file-filename, length, key) == file) + { +eina_hash_del_by_key_hash(_eina_file_cache, + file-filename, length, key); + } eina_file_clean_close(file); end: --
[EGIT] [core/efl] master 02/02: evas: actually include the header.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c9f6889bf6696b078c23a5f570734b9f2bbe1bec commit c9f6889bf6696b078c23a5f570734b9f2bbe1bec Author: Cedric Bail cedric.b...@samsung.com Date: Thu Nov 21 14:48:50 2013 +0900 evas: actually include the header. --- src/lib/evas/canvas/evas_main.c | 4 1 file changed, 4 insertions(+) diff --git a/src/lib/evas/canvas/evas_main.c b/src/lib/evas/canvas/evas_main.c index 6cc8f8e..a932c2b 100644 --- a/src/lib/evas/canvas/evas_main.c +++ b/src/lib/evas/canvas/evas_main.c @@ -7,6 +7,10 @@ #include Eo.h +#ifdef BUILD_LOADER_EET +# include Eet.h +#endif + EAPI Eo_Op EVAS_CANVAS_BASE_ID = EO_NOOP; #define MY_CLASS EVAS_CLASS --
[EGIT] [legacy/eina] eina-1.7 01/01: eina: backport fix for race condition in Eina_File infrastructure.
cedric pushed a commit to branch eina-1.7. http://git.enlightenment.org/legacy/eina.git/commit/?id=ba420c60474c23bfc0d59b07f9e4d0710ebcfa86 commit ba420c60474c23bfc0d59b07f9e4d0710ebcfa86 Author: Cedric Bail cedric.b...@samsung.com Date: Thu Nov 21 14:58:32 2013 +0900 eina: backport fix for race condition in Eina_File infrastructure. --- ChangeLog | 5 + NEWS| 9 + src/lib/eina_file.c | 14 +- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8970c02..bfefe9f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -434,3 +434,8 @@ 2013-09-10 Eduardo Lima (Etrunko) * 1.7.9 release + +2013-11-21 Cedric Bail + + * Fix race condition when calling eina_file_open/eina_file_close. + diff --git a/NEWS b/NEWS index 9aad8db..fb8dc75 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,12 @@ +Eina 1.7.10 + +Changes since Eina 1.7.9: +- + +Fixes: +* Fix race condition when calling eina_file_open/eina_file_close. + + Eina 1.7.9 Changes since Eina 1.7.8: diff --git a/src/lib/eina_file.c b/src/lib/eina_file.c index 68a6cce..7fe6bb0 100644 --- a/src/lib/eina_file.c +++ b/src/lib/eina_file.c @@ -988,7 +988,6 @@ eina_file_open(const char *path, Eina_Bool shared) { file-delete_me = EINA_TRUE; eina_hash_del(_eina_file_cache, file-filename, file); -_eina_file_real_close(file); file = NULL; } @@ -1050,18 +1049,23 @@ eina_file_open(const char *path, Eina_Bool shared) EAPI void eina_file_close(Eina_File *file) { + Eina_Bool leave = EINA_TRUE; + EINA_SAFETY_ON_NULL_RETURN(file); + eina_lock_take(_eina_file_lock_cache); + eina_lock_take(file-lock); file-refcount--; + if (file-refcount == 0) leave = EINA_FALSE; eina_lock_release(file-lock); + if (leave) goto end; - if (file-refcount != 0) return; - eina_lock_take(_eina_file_lock_cache); - - eina_hash_del(_eina_file_cache, file-filename, file); + if (eina_hash_find(_eina_file_cache, file-filename) == file) + eina_hash_del(_eina_file_cache, file-filename, file); _eina_file_real_close(file); + end: eina_lock_release(_eina_file_lock_cache); } --
[EGIT] [core/efl] master 01/01: evas: header order are important.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c113bdcfcf30cab109fb30d685b60afb06e90033 commit c113bdcfcf30cab109fb30d685b60afb06e90033 Author: Cedric Bail cedric.b...@samsung.com Date: Thu Nov 21 15:18:42 2013 +0900 evas: header order are important. First system, then EFL public, then EFL internal. If not, you break windows build. --- src/lib/evas/canvas/evas_main.c | 12 ++-- 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/lib/evas/canvas/evas_main.c b/src/lib/evas/canvas/evas_main.c index a932c2b..672c85b 100644 --- a/src/lib/evas/canvas/evas_main.c +++ b/src/lib/evas/canvas/evas_main.c @@ -1,3 +1,9 @@ +#include Eo.h + +#ifdef BUILD_LOADER_EET +# include Eet.h +#endif + #include evas_common_private.h #include evas_private.h //#include evas_cs.h @@ -5,12 +11,6 @@ #include evas_cs2_private.h #endif -#include Eo.h - -#ifdef BUILD_LOADER_EET -# include Eet.h -#endif - EAPI Eo_Op EVAS_CANVAS_BASE_ID = EO_NOOP; #define MY_CLASS EVAS_CLASS --
[EGIT] [core/efl] master 01/01: evas: sorry for the last broken commit.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=e11df0e08584978378be92c08ebc24970931a0a0 commit e11df0e08584978378be92c08ebc24970931a0a0 Author: Cedric Bail cedric.b...@samsung.com Date: Thu Nov 21 15:33:21 2013 +0900 evas: sorry for the last broken commit. --- src/lib/evas/canvas/evas_main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib/evas/canvas/evas_main.c b/src/lib/evas/canvas/evas_main.c index 672c85b..7ad2ae4 100644 --- a/src/lib/evas/canvas/evas_main.c +++ b/src/lib/evas/canvas/evas_main.c @@ -1,10 +1,11 @@ +#include evas_common_private.h + #include Eo.h #ifdef BUILD_LOADER_EET # include Eet.h #endif -#include evas_common_private.h #include evas_private.h //#include evas_cs.h #ifdef EVAS_CSERVE2 --
[EGIT] [core/efl] master 01/01: evas: fixing headers order for windows build is insane.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=3b42ecbe1ece19fd30aca3e54c3d58ad659c50ab commit 3b42ecbe1ece19fd30aca3e54c3d58ad659c50ab Author: Cedric Bail cedric.b...@samsung.com Date: Thu Nov 21 16:08:55 2013 +0900 evas: fixing headers order for windows build is insane. --- src/lib/evas/canvas/evas_main.c| 7 --- src/lib/evas/include/evas_common_private.h | 5 + 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/lib/evas/canvas/evas_main.c b/src/lib/evas/canvas/evas_main.c index 7ad2ae4..60c23af 100644 --- a/src/lib/evas/canvas/evas_main.c +++ b/src/lib/evas/canvas/evas_main.c @@ -1,11 +1,4 @@ #include evas_common_private.h - -#include Eo.h - -#ifdef BUILD_LOADER_EET -# include Eet.h -#endif - #include evas_private.h //#include evas_cs.h #ifdef EVAS_CSERVE2 diff --git a/src/lib/evas/include/evas_common_private.h b/src/lib/evas/include/evas_common_private.h index 90272d3..16b7b40 100644 --- a/src/lib/evas/include/evas_common_private.h +++ b/src/lib/evas/include/evas_common_private.h @@ -48,6 +48,11 @@ #endif #include Eina.h +#include Eo.h + +#ifdef BUILD_LOADER_EET +# include Eet.h +#endif #include Evas.h //#include Evas_GL.h --
Re: [E-devel] Which constraint solver is used in EFL?
On Wed, 20 Nov 2013 22:07:36 + Thomas Strobel ts...@cam.ac.uk said: On Wed, 2013-11-20 at 11:51 +1000, David Seikel wrote: On Wed, 20 Nov 2013 09:15:01 +0900 Carsten Haitzler (The Rasterman) ras...@rasterman.com wrote: On Tue, 19 Nov 2013 15:20:01 + Thomas Strobel ts...@cam.ac.uk said: Hi all, I was wondering which constraint solver is being used in EFL for placing evas objects relatively to each other? Especially for edje, can anyone point me to a research paper or similar which describes the algorithm being used? nope. can't. it's just math man. math. there is no constraint solver at all. it's just calculate your coords - if you are relative TO something else... your coords depend on its coords - so go calculate what you depend on first... and repeat (recurse). it's just inside edje. simple basic logic+math Well, I guessed it was related to math. ;) Or to put it another way, there are no constraints, it's not that sort of system. Things are placed relative to other things, at a fixed fraction of the size of the thing it is relative to. Thank you very much for clarifying how it works. I just didn't want to work through the source immediately, searching for a constraint solver's implementation like Cassowary. you won't find one. :) you will find edje_calc.c :) it's in there. it's just a dependency tree. technically its not a strict tree. it can be a graph. and then x and y dimensions can be separate graphs. sometimes x depends on y (or y depends on x) when aspect ratio hints and/or textblock stuff is there. then you get crossover. the code leaves breadcrumbs as it recurses down the graph to detect cycles and aborts the recursing if it detects a cycle (an infinite loop) at runtime. it's just purpose built for edje. in fact.. edc is nothing more that providing the input parameters to this calc func. edc is really raw input to this code. edc was never designed as an abstract description itself. it's pretty raw nuts and bolts. On the other hand, there is also ephysics, which can be used to make graphics objects react to other objects in a 2D plane using the bullet physics library. You can ask the bullet library authors about their algorithms. -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- - Codito, ergo sum - I code, therefore I am -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/enlightenment] master 01/01: e: fix generation of the wallpapper from a picture.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=46ee3c3226e69dad43998574c63eccf7e1fe3f59 commit 46ee3c3226e69dad43998574c63eccf7e1fe3f59 Author: Cedric Bail cedric.b...@samsung.com Date: Thu Nov 21 16:51:28 2013 +0900 e: fix generation of the wallpapper from a picture. NOTE; eina_mkstemp doesn't alter it's parameter, you need to ask the filename if you want it. --- src/bin/e_import_config_dialog.c | 7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/bin/e_import_config_dialog.c b/src/bin/e_import_config_dialog.c index 3159685..5248f61 100644 --- a/src/bin/e_import_config_dialog.c +++ b/src/bin/e_import_config_dialog.c @@ -20,6 +20,7 @@ _import_edj_gen(E_Import_Config_Dialog *import) int w = 0, h = 0; const char *file, *locale; char buf[PATH_MAX], cmd[PATH_MAX], tmpn[PATH_MAX], ipart[PATH_MAX], enc[128]; + Eina_Tmpstr *path = NULL; char *imgdir = NULL, *fstrip; int cr, cg, cb, ca; FILE *f; @@ -51,7 +52,7 @@ _import_edj_gen(E_Import_Config_Dialog *import) } strcpy(tmpn, e_bgdlg_new.edc-tmp-XX); - fd = eina_file_mkstemp(tmpn, NULL); + fd = eina_file_mkstemp(tmpn, path); if (fd 0) { printf(Error Creating tmp file: %s\n, strerror(errno)); @@ -262,7 +263,7 @@ _import_edj_gen(E_Import_Config_Dialog *import) fclose(f); snprintf(cmd, sizeof(cmd), %s/edje_cc -v %s %s %s, e_prefix_bin_get(), -ipart, tmpn, e_util_filename_escape(buf)); +ipart, path, e_util_filename_escape(buf)); import-tmpf = strdup(tmpn); import-fdest = eina_stringshare_add(buf); @@ -270,6 +271,8 @@ _import_edj_gen(E_Import_Config_Dialog *import) ecore_event_handler_add(ECORE_EXE_EVENT_DEL, _import_cb_edje_cc_exit, import); import-exe = ecore_exe_run(cmd, import); + + eina_tmpstr_del(path); } static Eina_Bool --