[EGIT] [website/www-content] master 01/01: Wiki page download-latest changed with summary [] by Simon

2018-03-22 Thread 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: Simon 
Date:   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

2018-03-22 Thread 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: Simon 
Date:   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

2018-03-22 Thread Daniel Kolesa
q66 pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=806c30ec34bff7d83635f40427741fc75e7ede01

commit 806c30ec34bff7d83635f40427741fc75e7ede01
Author: Daniel Kolesa 
Date:   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

2018-03-22 Thread Daniel Kolesa
q66 pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=db04d3f670b7ad3477cc97667e610ab4f922c4f7

commit db04d3f670b7ad3477cc97667e610ab4f922c4f7
Author: Daniel Kolesa 
Date:   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.

2018-03-22 Thread Al Poole
netstar pushed a commit to branch master.

http://git.enlightenment.org/apps/rage.git/commit/?id=33127a90d548a00566b4fc7e44ef96b093734b27

commit 33127a90d548a00566b4fc7e44ef96b093734b27
Author: Al Poole 
Date:   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.

2018-03-22 Thread Al Poole
netstar pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=b94649b0ac9ea06f8761ba4130933ba6a71a9df2

commit b94649b0ac9ea06f8761ba4130933ba6a71a9df2
Author: Al Poole 
Date:   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.

2018-03-22 Thread Al Poole
netstar pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=6de4f5aa5974a7eae43823cf20f7432e2f929963

commit 6de4f5aa5974a7eae43823cf20f7432e2f929963
Author: Al Poole 
Date:   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

2018-03-22 Thread Daniel Kolesa
q66 pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=3ae67b24b3dfbc8af16ddbf1ff31054f4dc3b56e

commit 3ae67b24b3dfbc8af16ddbf1ff31054f4dc3b56e
Author: Daniel Kolesa 
Date:   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

2018-03-22 Thread Daniel Kolesa
q66 pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=d9a8fe0fca74dcd67190de381fa3ddc339e4cea2

commit d9a8fe0fca74dcd67190de381fa3ddc339e4cea2
Author: Daniel Kolesa 
Date:   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

2018-03-22 Thread Daniel Kolesa
q66 pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=bc182e69d7f74861307cf494eb0e166af8e7847e

commit bc182e69d7f74861307cf494eb0e166af8e7847e
Author: Daniel Kolesa 
Date:   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

2018-03-22 Thread Daniel Kolesa
q66 pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=93a64c5eab5d4404b878bead5ea07f13ee2d175f

commit 93a64c5eab5d4404b878bead5ea07f13ee2d175f
Author: Daniel Kolesa 
Date:   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.

2018-03-22 Thread Hermet Park
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=983d0186422a5fe443487a20a262b8d62d39df27

commit 983d0186422a5fe443487a20a262b8d62d39df27
Author: Hermet Park 
Date:   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