[EGIT] [website/www-content] master 01/01: Wiki page download-latest changed with summary [] by Simon
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=75c85782bd8be2db3a99088000f7707c6bf579c2 commit 75c85782bd8be2db3a99088000f7707c6bf579c2 Author: SimonDate: Thu Mar 22 19:12:16 2018 -0700 Wiki page download-latest changed with summary [] by Simon --- pages/download-latest.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/download-latest.txt b/pages/download-latest.txt index e3be3eda2..4bab1a681 100644 --- a/pages/download-latest.txt +++ b/pages/download-latest.txt @@ -2,7 +2,7 @@ efl_v = 1.20.7 python_efl_v = 1.20.0 -enlightenment_v = 0.22.2 +enlightenment_v = 0.22.3 terminology_v = 1.1.1 rage_v= 0.3.0 econnman_v= 1.1 --
[EGIT] [website/www-content] master 01/01: Wiki page start-release changed with summary [] by Simon
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=0c2f5236a1df6a1107bad7d773857e581dd0a567 commit 0c2f5236a1df6a1107bad7d773857e581dd0a567 Author: SimonDate: Thu Mar 22 19:11:00 2018 -0700 Wiki page start-release changed with summary [] by Simon --- pages/incl/start-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/incl/start-release.txt b/pages/incl/start-release.txt index a36be0c0e..9b5f441cc 100644 --- a/pages/incl/start-release.txt +++ b/pages/incl/start-release.txt @@ -1,3 +1,3 @@ -EFL 1.20.7 and [[https://www.enlightenment.org/news/e0.22.2_release|Enlightenment 0.22.2]] are out - go to our [[/download]] page. +EFL 1.20.7 and [[https://www.enlightenment.org/news/e0.22.3_release|Enlightenment 0.22.3]] are out - go to our [[/download]] page. --
[EGIT] [core/efl] master 02/02: eolian: complete staging area merge logic
q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=806c30ec34bff7d83635f40427741fc75e7ede01 commit 806c30ec34bff7d83635f40427741fc75e7ede01 Author: Daniel KolesaDate: Thu Mar 22 17:56:35 2018 +0100 eolian: complete staging area merge logic --- src/lib/eolian/eolian_database.c | 141 ++- 1 file changed, 109 insertions(+), 32 deletions(-) diff --git a/src/lib/eolian/eolian_database.c b/src/lib/eolian/eolian_database.c index 47754e790d..19e6ef7f9a 100644 --- a/src/lib/eolian/eolian_database.c +++ b/src/lib/eolian/eolian_database.c @@ -565,21 +565,52 @@ database_unit_del(Eolian_Unit *unit) free(unit); } +static Eina_Bool +_hashlist_free_cb(const Eina_Hash *hash EINA_UNUSED, + const void *key EINA_UNUSED, + void *data, void *fdata EINA_UNUSED) +{ + eina_list_free((Eina_List *)data); + return EINA_TRUE; +} + +static void +_hashlist_free(Eina_Hash *h) +{ + eina_hash_foreach(h, _hashlist_free_cb, NULL); + eina_hash_free(h); +} + +static void +_hashlist_free_buckets(Eina_Hash *h) +{ + eina_hash_foreach(h, _hashlist_free_cb, NULL); + eina_hash_free_buckets(h); +} + static void -_state_area_init(Eolian_State *state, Eolian_State_Area *a, Eina_Bool owned) +_state_area_init(Eolian_State *state, Eolian_State_Area *a) { database_unit_init(state, >unit, NULL); - a->units = eina_hash_stringshared_new( - owned ? EINA_FREE_CB(database_unit_del) : NULL); + a->units = eina_hash_stringshared_new(NULL); a->classes_f = eina_hash_stringshared_new(NULL); - a->aliases_f = eina_hash_stringshared_new(EINA_FREE_CB(eina_list_free)); - a->structs_f = eina_hash_stringshared_new(EINA_FREE_CB(eina_list_free)); - a->enums_f = eina_hash_stringshared_new(EINA_FREE_CB(eina_list_free)); - a->globals_f = eina_hash_stringshared_new(EINA_FREE_CB(eina_list_free)); - a->constants_f = eina_hash_stringshared_new(EINA_FREE_CB(eina_list_free)); - a->objects_f = eina_hash_stringshared_new(EINA_FREE_CB(eina_list_free)); + a->aliases_f = eina_hash_stringshared_new(NULL); + a->structs_f = eina_hash_stringshared_new(NULL); + a->enums_f = eina_hash_stringshared_new(NULL); + a->globals_f = eina_hash_stringshared_new(NULL); + a->constants_f = eina_hash_stringshared_new(NULL); + a->objects_f = eina_hash_stringshared_new(NULL); +} + +static Eina_Bool +_ulist_free_cb(const Eina_Hash *hash EINA_UNUSED, + const void *key EINA_UNUSED, + void *data, void *fdata EINA_UNUSED) +{ + database_unit_del((Eolian_Unit *)data); + return EINA_TRUE; } static void @@ -587,15 +618,16 @@ _state_area_contents_del(Eolian_State_Area *a) { _unit_contents_del(>unit); + eina_hash_foreach(a->units, _ulist_free_cb, NULL); eina_hash_free(a->units); eina_hash_free(a->classes_f); - eina_hash_free(a->aliases_f); - eina_hash_free(a->structs_f); - eina_hash_free(a->enums_f); - eina_hash_free(a->globals_f); - eina_hash_free(a->constants_f); - eina_hash_free(a->objects_f); + _hashlist_free(a->aliases_f); + _hashlist_free(a->structs_f); + _hashlist_free(a->enums_f); + _hashlist_free(a->globals_f); + _hashlist_free(a->constants_f); + _hashlist_free(a->objects_f); } static void @@ -631,8 +663,8 @@ eolian_state_new(void) state->error = _default_error_cb; - _state_area_init(state, >main, EINA_TRUE); - _state_area_init(state, >staging, EINA_FALSE); + _state_area_init(state, >main); + _state_area_init(state, >staging); state->filenames_eo = eina_hash_string_small_new(free); state->filenames_eot = eina_hash_string_small_new(free); @@ -786,16 +818,30 @@ _eolian_file_parse_nodep(Eolian_Unit *parent, const char *filepath) static void _state_clean(Eolian_State *state) { -eina_hash_free_buckets(state->defer); + eina_hash_free_buckets(state->defer); + + Eolian_State_Area *st = >staging; + + Eolian_Unit *stu = >unit; + eina_hash_free_buckets(stu->classes); + eina_hash_free_buckets(stu->globals); + eina_hash_free_buckets(stu->constants); + eina_hash_free_buckets(stu->aliases); + eina_hash_free_buckets(stu->structs); + eina_hash_free_buckets(stu->enums); + eina_hash_free_buckets(stu->objects); -Eolian_Unit *st = >staging.unit; -eina_hash_free_buckets(st->classes); -eina_hash_free_buckets(st->globals); -eina_hash_free_buckets(st->constants); -eina_hash_free_buckets(st->aliases); -eina_hash_free_buckets(st->structs); -eina_hash_free_buckets(st->enums); -eina_hash_free_buckets(st->objects); + eina_hash_foreach(st->units, _ulist_free_cb, NULL); + eina_hash_free_buckets(st->units); + + eina_hash_free_buckets(st->classes_f); + + _hashlist_free_buckets(st->aliases_f); + _hashlist_free_buckets(st->structs_f); + _hashlist_free_buckets(st->enums_f); + _hashlist_free_buckets(st->globals_f); +
[EGIT] [core/efl] master 01/02: eolian: introduce main and staging areas properly
q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=db04d3f670b7ad3477cc97667e610ab4f922c4f7 commit db04d3f670b7ad3477cc97667e610ab4f922c4f7 Author: Daniel KolesaDate: Thu Mar 22 17:05:26 2018 +0100 eolian: introduce main and staging areas properly The state is now correctly divided. No merging is performed yet, which is to be done next. --- src/lib/eolian/database_type.c | 12 ++--- src/lib/eolian/database_var.c| 8 ++-- src/lib/eolian/eo_lexer.c| 2 +- src/lib/eolian/eo_parser.c | 8 ++-- src/lib/eolian/eolian_database.c | 95 ++-- src/lib/eolian/eolian_database.h | 30 - 6 files changed, 85 insertions(+), 70 deletions(-) diff --git a/src/lib/eolian/database_type.c b/src/lib/eolian/database_type.c index 28626fd636..ffdf5ebf3d 100644 --- a/src/lib/eolian/database_type.c +++ b/src/lib/eolian/database_type.c @@ -36,8 +36,8 @@ void database_type_add(Eolian_Unit *unit, Eolian_Typedecl *tp) { EOLIAN_OBJECT_ADD(unit, tp->base.name, tp, aliases); - eina_hash_set(unit->state->aliases_f, tp->base.file, eina_list_append -((Eina_List*)eina_hash_find(unit->state->aliases_f, tp->base.file), + eina_hash_set(unit->state->main.aliases_f, tp->base.file, eina_list_append +((Eina_List*)eina_hash_find(unit->state->main.aliases_f, tp->base.file), tp)); database_object_add(unit, >base); } @@ -46,8 +46,8 @@ void database_struct_add(Eolian_Unit *unit, Eolian_Typedecl *tp) { EOLIAN_OBJECT_ADD(unit, tp->base.name, tp, structs); - eina_hash_set(unit->state->structs_f, tp->base.file, eina_list_append -((Eina_List*)eina_hash_find(unit->state->structs_f, tp->base.file), tp)); + eina_hash_set(unit->state->main.structs_f, tp->base.file, eina_list_append +((Eina_List*)eina_hash_find(unit->state->main.structs_f, tp->base.file), tp)); database_object_add(unit, >base); } @@ -55,8 +55,8 @@ void database_enum_add(Eolian_Unit *unit, Eolian_Typedecl *tp) { EOLIAN_OBJECT_ADD(unit, tp->base.name, tp, enums); - eina_hash_set(unit->state->enums_f, tp->base.file, eina_list_append -((Eina_List*)eina_hash_find(unit->state->enums_f, tp->base.file), tp)); + eina_hash_set(unit->state->main.enums_f, tp->base.file, eina_list_append +((Eina_List*)eina_hash_find(unit->state->main.enums_f, tp->base.file), tp)); database_object_add(unit, >base); } diff --git a/src/lib/eolian/database_var.c b/src/lib/eolian/database_var.c index 8196c3ce55..c14859b246 100644 --- a/src/lib/eolian/database_var.c +++ b/src/lib/eolian/database_var.c @@ -22,16 +22,16 @@ static void database_var_global_add(Eolian_Unit *unit, Eolian_Variable *var) { EOLIAN_OBJECT_ADD(unit, var->base.name, var, globals); - eina_hash_set(unit->state->globals_f, var->base.file, eina_list_append - ((Eina_List*)eina_hash_find(unit->state->globals_f, var->base.file), var)); + eina_hash_set(unit->state->main.globals_f, var->base.file, eina_list_append + ((Eina_List*)eina_hash_find(unit->state->main.globals_f, var->base.file), var)); } static void database_var_constant_add(Eolian_Unit *unit, Eolian_Variable *var) { EOLIAN_OBJECT_ADD(unit, var->base.name, var, constants); - eina_hash_set(unit->state->constants_f, var->base.file, eina_list_append - ((Eina_List*)eina_hash_find(unit->state->constants_f, var->base.file), var)); + eina_hash_set(unit->state->main.constants_f, var->base.file, eina_list_append + ((Eina_List*)eina_hash_find(unit->state->main.constants_f, var->base.file), var)); } void diff --git a/src/lib/eolian/eo_lexer.c b/src/lib/eolian/eo_lexer.c index 8e9d9fad15..d4e6815ff3 100644 --- a/src/lib/eolian/eo_lexer.c +++ b/src/lib/eolian/eo_lexer.c @@ -1089,7 +1089,7 @@ eo_lexer_set_input(Eo_Lexer *ls, Eolian_State *state, const char *source) } ls->unit = ncunit; database_unit_init(state, ncunit, ls->filename); - eina_hash_add(state->units, ls->filename, ncunit); + eina_hash_add(state->main.units, ls->filename, ncunit); if (ls->current != 0xEF) return; diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c index 6f87fcda54..0c92288c9d 100644 --- a/src/lib/eolian/eo_parser.c +++ b/src/lib/eolian/eo_parser.c @@ -108,9 +108,9 @@ compare_class_file(const char *fn1, const char *fn2) static Eolian_Object * _eolian_decl_get(Eo_Lexer *ls, const char *name) { - Eolian_Object *obj = eina_hash_find(ls->state->unit.objects, name); + Eolian_Object *obj = eina_hash_find(ls->state->main.unit.objects, name); if (!obj) - obj = eina_hash_find(ls->state->staging.objects, name); + obj = eina_hash_find(ls->state->staging.unit.objects, name); if (obj && ((obj->type == EOLIAN_OBJECT_CLASS) || (obj->type ==
[EGIT] [apps/rage] master 01/01: AUTHORS: use netstar's full name.
netstar pushed a commit to branch master. http://git.enlightenment.org/apps/rage.git/commit/?id=33127a90d548a00566b4fc7e44ef96b093734b27 commit 33127a90d548a00566b4fc7e44ef96b093734b27 Author: Al PooleDate: Thu Mar 22 15:40:53 2018 + AUTHORS: use netstar's full name. --- AUTHORS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 5a1e403..88e09f2 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,3 +1,3 @@ Carsten Haitzler Eduardo Lima (Etrunko) -Al Poole (netstar) +Alastair Poole (netstar) --
[EGIT] [core/efl] master 01/01: AUTHORS: use netstar's full name.
netstar pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=b94649b0ac9ea06f8761ba4130933ba6a71a9df2 commit b94649b0ac9ea06f8761ba4130933ba6a71a9df2 Author: Al PooleDate: Thu Mar 22 15:39:37 2018 + AUTHORS: use netstar's full name. --- AUTHORS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 894fd3a798..dcc9a2a918 100644 --- a/AUTHORS +++ b/AUTHORS @@ -676,7 +676,7 @@ Vitaliy Venzak perepelits.m rustyBSD Haifeng Deng -Al Poole +Alastair Poole Marcel Hollerbach Hermet Park Jeeyong Um --
[EGIT] [core/enlightenment] master 01/01: AUTHORS: use netstar's real name.
netstar pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=6de4f5aa5974a7eae43823cf20f7432e2f929963 commit 6de4f5aa5974a7eae43823cf20f7432e2f929963 Author: Al PooleDate: Thu Mar 22 15:38:43 2018 + AUTHORS: use netstar's real name. --- AUTHORS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 6e7a9fe79..479cbb59a 100644 --- a/AUTHORS +++ b/AUTHORS @@ -60,4 +60,4 @@ Luis de Bethencourt (luisbg) bu5hm4n (Marcel Hollerbach) simotek (Simon Lees) Derek Foreman -netstar (Al Poole) +netstar (Alastair Poole) --
[EGIT] [core/efl] master 01/01: eolian: validate staging unit when parsing all
q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=3ae67b24b3dfbc8af16ddbf1ff31054f4dc3b56e commit 3ae67b24b3dfbc8af16ddbf1ff31054f4dc3b56e Author: Daniel KolesaDate: Thu Mar 22 16:27:35 2018 +0100 eolian: validate staging unit when parsing all --- src/lib/eolian/eolian_database.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/eolian/eolian_database.c b/src/lib/eolian/eolian_database.c index 4e337f6ed4..afa524f5af 100644 --- a/src/lib/eolian/eolian_database.c +++ b/src/lib/eolian/eolian_database.c @@ -929,7 +929,7 @@ eolian_state_all_eot_files_parse(Eolian_State *state) _state_clean(state); eina_hash_foreach(state->filenames_eot, _tfile_parse, ); - if (pd.ret && !database_validate(>unit)) + if (pd.ret && !database_validate(>staging)) return EINA_FALSE; _merge_unit(>unit, >staging); @@ -961,7 +961,7 @@ eolian_state_all_eo_files_parse(Eolian_State *state) _state_clean(state); eina_hash_foreach(state->filenames_eo, _file_parse, ); - if (pd.ret && !database_validate(>unit)) + if (pd.ret && !database_validate(>staging)) return EINA_FALSE; _merge_unit(>unit, >staging); --
[EGIT] [core/efl] master 02/03: eolian: add state staging area
q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=d9a8fe0fca74dcd67190de381fa3ddc339e4cea2 commit d9a8fe0fca74dcd67190de381fa3ddc339e4cea2 Author: Daniel KolesaDate: Thu Mar 22 15:13:59 2018 +0100 eolian: add state staging area This will be used for clean rollbacks on errors. --- src/lib/eolian/eolian_database.c | 23 --- src/lib/eolian/eolian_database.h | 1 + 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/lib/eolian/eolian_database.c b/src/lib/eolian/eolian_database.c index 52049fc405..d928e3f456 100644 --- a/src/lib/eolian/eolian_database.c +++ b/src/lib/eolian/eolian_database.c @@ -605,6 +605,7 @@ eolian_state_new(void) state->error = _default_error_cb; database_unit_init(state, >unit, NULL); + database_unit_init(state, >staging, NULL); state->filenames_eo = eina_hash_string_small_new(free); state->filenames_eot = eina_hash_string_small_new(free); @@ -630,6 +631,7 @@ eolian_state_free(Eolian_State *state) return; _unit_contents_del(>unit); + _unit_contents_del(>staging); eina_hash_free(state->filenames_eo); eina_hash_free(state->filenames_eot); @@ -772,6 +774,21 @@ _eolian_file_parse_nodep(Eolian_Unit *parent, const char *filepath) return eo_parser_database_fill(parent, eopath, !is_eo); } +static void +_state_clean(Eolian_State *state) +{ +eina_hash_free_buckets(state->defer); + +Eolian_Unit *st = >staging; +eina_hash_free_buckets(st->classes); +eina_hash_free_buckets(st->globals); +eina_hash_free_buckets(st->constants); +eina_hash_free_buckets(st->aliases); +eina_hash_free_buckets(st->structs); +eina_hash_free_buckets(st->enums); +eina_hash_free_buckets(st->objects); +} + static Eina_Bool _parse_deferred(Eolian_Unit *parent) { @@ -859,7 +876,7 @@ eolian_state_file_parse(Eolian_State *state, const char *filepath) if (!state) return NULL; - eina_hash_free_buckets(state->defer); + _state_clean(state); Eolian_Unit *ret = _eolian_file_parse_nodep((Eolian_Unit *)state, filepath); if (!ret) return NULL; @@ -897,7 +914,7 @@ eolian_state_all_eot_files_parse(Eolian_State *state) if (!state) return EINA_FALSE; - eina_hash_free_buckets(state->defer); + _state_clean(state); eina_hash_foreach(state->filenames_eot, _tfile_parse, ); if (pd.ret && !database_validate(>unit)) @@ -926,7 +943,7 @@ eolian_state_all_eo_files_parse(Eolian_State *state) if (!state) return EINA_FALSE; - eina_hash_free_buckets(state->defer); + _state_clean(state); eina_hash_foreach(state->filenames_eo, _file_parse, ); if (pd.ret && !database_validate(>unit)) diff --git a/src/lib/eolian/eolian_database.h b/src/lib/eolian/eolian_database.h index 320862c60f..72adf48013 100644 --- a/src/lib/eolian/eolian_database.h +++ b/src/lib/eolian/eolian_database.h @@ -50,6 +50,7 @@ struct _Eolian_Unit struct _Eolian_State { Eolian_Unit unit; + Eolian_Unit staging; Eolian_Panic_Cb panic; Eina_Stringshare *panic_msg; --
[EGIT] [core/efl] master 01/03: eolian: flush defer table before parsing
q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=bc182e69d7f74861307cf494eb0e166af8e7847e commit bc182e69d7f74861307cf494eb0e166af8e7847e Author: Daniel KolesaDate: Thu Mar 22 14:55:31 2018 +0100 eolian: flush defer table before parsing --- src/lib/eolian/eolian_database.c | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/lib/eolian/eolian_database.c b/src/lib/eolian/eolian_database.c index 7bb0f4b420..52049fc405 100644 --- a/src/lib/eolian/eolian_database.c +++ b/src/lib/eolian/eolian_database.c @@ -776,7 +776,7 @@ static Eina_Bool _parse_deferred(Eolian_Unit *parent) { Eina_Hash *defer = parent->state->defer; - if (!defer || !eina_hash_population(defer)) + if (!eina_hash_population(defer)) return EINA_TRUE; /* clean room for more deps for later parsing */ parent->state->defer = eina_hash_string_small_new(NULL); @@ -859,6 +859,7 @@ eolian_state_file_parse(Eolian_State *state, const char *filepath) if (!state) return NULL; + eina_hash_free_buckets(state->defer); Eolian_Unit *ret = _eolian_file_parse_nodep((Eolian_Unit *)state, filepath); if (!ret) return NULL; @@ -896,6 +897,7 @@ eolian_state_all_eot_files_parse(Eolian_State *state) if (!state) return EINA_FALSE; + eina_hash_free_buckets(state->defer); eina_hash_foreach(state->filenames_eot, _tfile_parse, ); if (pd.ret && !database_validate(>unit)) @@ -924,6 +926,7 @@ eolian_state_all_eo_files_parse(Eolian_State *state) if (!state) return EINA_FALSE; + eina_hash_free_buckets(state->defer); eina_hash_foreach(state->filenames_eo, _file_parse, ); if (pd.ret && !database_validate(>unit)) --
[EGIT] [core/efl] master 03/03: eolian: clean rollback support
q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=93a64c5eab5d4404b878bead5ea07f13ee2d175f commit 93a64c5eab5d4404b878bead5ea07f13ee2d175f Author: Daniel KolesaDate: Thu Mar 22 15:34:32 2018 +0100 eolian: clean rollback support Previously, when an error happened in Eolian, the state was left in a presumably unusable and inconsistent condition. This work aims to change that, as all changes are committed into a staging area before being validated and merged back into main state. This is not yet complete, as units and by-file lookups are not currently involved in the rollback. This will change in the subsequent commits. @feature --- src/lib/eolian/eo_parser.c | 2 ++ src/lib/eolian/eolian_database.c | 22 -- src/lib/eolian/eolian_database.h | 2 +- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c index 5cd4726157..6f87fcda54 100644 --- a/src/lib/eolian/eo_parser.c +++ b/src/lib/eolian/eo_parser.c @@ -109,6 +109,8 @@ static Eolian_Object * _eolian_decl_get(Eo_Lexer *ls, const char *name) { Eolian_Object *obj = eina_hash_find(ls->state->unit.objects, name); + if (!obj) + obj = eina_hash_find(ls->state->staging.objects, name); if (obj && ((obj->type == EOLIAN_OBJECT_CLASS) || (obj->type == EOLIAN_OBJECT_TYPEDECL) || (obj->type == EOLIAN_OBJECT_VARIABLE))) diff --git a/src/lib/eolian/eolian_database.c b/src/lib/eolian/eolian_database.c index d928e3f456..4e337f6ed4 100644 --- a/src/lib/eolian/eolian_database.c +++ b/src/lib/eolian/eolian_database.c @@ -13,7 +13,7 @@ database_object_add(Eolian_Unit *unit, const Eolian_Object *obj) { /* object storage */ eina_hash_add(unit->objects, obj->name, obj); - eina_hash_add(unit->state->unit.objects, obj->name, obj); + eina_hash_add(unit->state->staging.objects, obj->name, obj); eina_hash_set(unit->state->objects_f, obj->file, eina_list_append ((Eina_List *)eina_hash_find(unit->state->objects_f, obj->file), obj)); } @@ -828,6 +828,16 @@ _merge_unit_cb(const Eina_Hash *hash EINA_UNUSED, return EINA_TRUE; } +static Eina_Bool +_merge_unit_cb_noref(const Eina_Hash *hash EINA_UNUSED, + const void *key, void *data, void *fdata) +{ + Eina_Hash *dest = fdata; + if (!eina_hash_find(dest, key)) + eina_hash_add(dest, key, data); + return EINA_TRUE; +} + static void _merge_unit(Eolian_Unit *dest, Eolian_Unit *src) { @@ -837,7 +847,7 @@ _merge_unit(Eolian_Unit *dest, Eolian_Unit *src) eina_hash_foreach(src->aliases, _merge_unit_cb, dest->aliases); eina_hash_foreach(src->structs, _merge_unit_cb, dest->structs); eina_hash_foreach(src->enums, _merge_unit_cb, dest->enums); - eina_hash_foreach(src->objects, _merge_unit_cb, dest->objects); + eina_hash_foreach(src->objects, _merge_unit_cb_noref, dest->objects); } typedef struct _Merge_Data @@ -885,6 +895,8 @@ eolian_state_file_parse(Eolian_State *state, const char *filepath) _merge_units(ret); if (!database_validate(ret)) return NULL; + _merge_unit(>unit, >staging); + _state_clean(state); return >unit; } @@ -920,6 +932,9 @@ eolian_state_all_eot_files_parse(Eolian_State *state) if (pd.ret && !database_validate(>unit)) return EINA_FALSE; + _merge_unit(>unit, >staging); + _state_clean(state); + return pd.ret; } @@ -949,6 +964,9 @@ eolian_state_all_eo_files_parse(Eolian_State *state) if (pd.ret && !database_validate(>unit)) return EINA_FALSE; + _merge_unit(>unit, >staging); + _state_clean(state); + return pd.ret; } diff --git a/src/lib/eolian/eolian_database.h b/src/lib/eolian/eolian_database.h index 72adf48013..a359cdd44a 100644 --- a/src/lib/eolian/eolian_database.h +++ b/src/lib/eolian/eolian_database.h @@ -107,7 +107,7 @@ eolian_object_add(Eolian_Object *obj, Eina_Stringshare *name, Eina_Hash *hash) #define EOLIAN_OBJECT_ADD(tunit, name, obj, memb) \ { \ - eolian_object_add(>base, name, tunit->state->unit.memb); \ + eolian_object_add(>base, name, tunit->state->staging.memb); \ eolian_object_add(>base, name, tunit->memb); \ } --
[EGIT] [tools/enventor] master 01/01: fix compile errors.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=983d0186422a5fe443487a20a262b8d62d39df27 commit 983d0186422a5fe443487a20a262b8d62d39df27 Author: Hermet ParkDate: Thu Mar 22 17:15:04 2018 +0900 fix compile errors. It haven't been managed long time. Make it buildable, first of all, Revenant Enventor. Still it has some abi issues. Need to fix them all. --- configure.ac | 1 + src/bin/file_mgr.c | 2 +- src/bin/main.c | 6 +++--- src/bin/menu.c | 2 +- src/bin/statusbar.c| 3 ++- src/lib/enventor_object.eo | 25 + src/lib/enventor_smart.c | 7 --- 7 files changed, 21 insertions(+), 25 deletions(-) diff --git a/configure.ac b/configure.ac index 85fd62a..0582fc9 100644 --- a/configure.ac +++ b/configure.ac @@ -73,6 +73,7 @@ EFL_ENABLE_EO_API_SUPPORT EFL_ENABLE_BETA_API_SUPPORT AC_DEFINE_UNQUOTED(ENVENTOR_WIN32_BUILD_SUPPORT, 1, "Support Win32 dllexport") AC_DEFINE_UNQUOTED(ENVENTOR_BETA_API_SUPPORT, 1, "Enable access to unstable ENVENTOR API that are still in beta") +AC_DEFINE_UNQUOTED(EFL_UI_FOCUS_OBJECT_PROTECTED, 1, "Enable Focus Protected API") efl_version="1.18.0" requirement_enventor=" \ diff --git a/src/bin/file_mgr.c b/src/bin/file_mgr.c index 39d1506..aee826b 100644 --- a/src/bin/file_mgr.c +++ b/src/bin/file_mgr.c @@ -28,7 +28,7 @@ warning_dismiss_done(void *data, Evas_Object *obj EINA_UNUSED, { file_mgr_data *fmd = data; evas_object_del(fmd->warning_layout); - enventor_object_focus_set(base_enventor_get(), EINA_TRUE); + efl_ui_focus_object_focus_set(base_enventor_get(), EINA_TRUE); fmd->warning_layout = NULL; } diff --git a/src/bin/main.c b/src/bin/main.c index d3b52a6..221ec53 100644 --- a/src/bin/main.c +++ b/src/bin/main.c @@ -557,7 +557,7 @@ enventor_ctxpopup_dismissed_cb(void *data EINA_UNUSED, Enventor_Object *obj, void *event_info EINA_UNUSED) { if (menu_activated_get() > 0) - enventor_object_focus_set(obj, EINA_FALSE); + efl_ui_focus_object_focus_set(obj, EINA_FALSE); } static void @@ -747,7 +747,7 @@ keygrabber_key_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, if (live_edit_cancel(EINA_TRUE)) { - enventor_object_focus_set(base_enventor_get(), EINA_TRUE); + efl_ui_focus_object_focus_set(base_enventor_get(), EINA_TRUE); return; } if (file_mgr_warning_is_opened()) @@ -1123,7 +1123,7 @@ init(app_data *ad, int argc, char **argv) base_gui_show(); //Guarantee Enventor editor has focus. - enventor_object_focus_set(enventor, EINA_TRUE); + efl_ui_focus_object_focus_set(enventor, EINA_TRUE); menu_init(); diff --git a/src/bin/menu.c b/src/bin/menu.c index 660d8c1..aaf81b6 100644 --- a/src/bin/menu.c +++ b/src/bin/menu.c @@ -766,7 +766,7 @@ menu_deactivate_request(void) if (md->active_request == 0) { -enventor_object_focus_set(base_enventor_get(), EINA_TRUE); +efl_ui_focus_object_focus_set(base_enventor_get(), EINA_TRUE); } if (!md->menu_layout) return; elm_object_disabled_set(md->menu_layout, EINA_FALSE); diff --git a/src/bin/statusbar.c b/src/bin/statusbar.c index 913b6e9..c867f4d 100644 --- a/src/bin/statusbar.c +++ b/src/bin/statusbar.c @@ -1,3 +1,4 @@ +#define EFL_UI_FOCUS_OBJECT_PROTECTED 1 #include "common.h" #define VIEW_RESIZE_TYPE_W "W" @@ -52,7 +53,7 @@ ctxpopup_dismissed_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { stats_data *sd = data; - enventor_object_focus_set(base_enventor_get(), EINA_TRUE); + efl_ui_focus_object_focus_set(base_enventor_get(), EINA_TRUE); evas_object_del(obj); sd->ctxpopup = NULL; } diff --git a/src/lib/enventor_object.eo b/src/lib/enventor_object.eo index 63e684e..fe7eac3 100644 --- a/src/lib/enventor_object.eo +++ b/src/lib/enventor_object.eo @@ -3,7 +3,8 @@ type Enventor_Syntax_Color_Type: __undefined_type; type Enventor_Template_Insert_Type: __undefined_type; type Edje_Part_Type: __undefined_type; -class Enventor.Object (Efl.Ui.Widget, Efl.File) { +class Enventor.Object (Efl.Ui.Widget, Efl.File, Efl.Ui.Focus.Object) +{ legacy_prefix: enventor_object; eo_prefix: enventor_obj; methods { @@ -79,15 +80,6 @@ class Enventor.Object (Efl.Ui.Widget, Efl.File) { ctxpopup: bool; } } - @property focus { - set { - } - get { - } - values { -focus: bool; - } - } @property font_scale { set { } @@ -119,7 +111,7 @@ class Enventor.Object (Efl.Ui.Widget, Efl.File) { return: bool; params { @in type: Enventor_Path_Type; -@in pathes: const (list< stringshare @owned >) @owned ; +@in pathes: list< stringshare