[EGIT] [tools/eflete] master 01/01: Tooltips: set show time to 0.3 second.

2016-12-06 Thread Mykyta Biliavskyi
rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=8d3e1a533fd48f146b23ad09c39698a0db33ba4c

commit 8d3e1a533fd48f146b23ad09c39698a0db33ba4c
Author: Mykyta Biliavskyi 
Date:   Mon Dec 5 13:19:25 2016 +0200

Tooltips: set show time to 0.3 second.

This patch related to Tizen version.
---
 src/bin/ui/main_window.c | 6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/bin/ui/main_window.c b/src/bin/ui/main_window.c
index 12ff901..64fa1bc 100644
--- a/src/bin/ui/main_window.c
+++ b/src/bin/ui/main_window.c
@@ -234,7 +234,11 @@ ui_main_window_add(void)
#endif /* HAVE_ENVENTOR */
 
elm_config_window_auto_focus_enable_set(false);
-   return true;
+
+#if HAVE_TIZEN
+   elm_config_tooltip_delay_set(0.2);
+#endif
+return true;
 }
 
 #if !HAVE_TIZEN

-- 




[EGIT] [tools/eflete] master 02/02: project manager: fix --export-edj option for Windows

2016-12-06 Thread Vyacheslav Reutskiy
rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=546cd18921e008a7c44b25fda812400732b58153

commit 546cd18921e008a7c44b25fda812400732b58153
Author: Vyacheslav Reutskiy 
Date:   Mon Dec 5 13:32:48 2016 +0200

project manager: fix --export-edj option for Windows

Always close file  handler on Windows.

Fixes T4948

Change-Id: I3c765f1bea0a344ee17ee1366b799bc27c1af1f1
---
 src/bin/project_manager/project_manager2.c | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/bin/project_manager/project_manager2.c 
b/src/bin/project_manager/project_manager2.c
index 947214a..d13d8b2 100644
--- a/src/bin/project_manager/project_manager2.c
+++ b/src/bin/project_manager/project_manager2.c
@@ -1343,7 +1343,10 @@ pm_project_develop_export(Project *project,
   eina_strbuf_append_printf(cmd, "edje_pick -o %s", path);
 else
   {
- eina_file_mkstemp("eflete_export_XX", >tmp_dirname);
+ int fd = eina_file_mkstemp("eflete_export_XX", 
>tmp_dirname);
+ /* special for Windows. Window does not like the opened handlers
+we need close it for write file in future. */
+ close(fd);
  eina_strbuf_append_printf(cmd, "edje_pick -o %s", 
ppd->tmp_dirname);
  eina_strbuf_append_printf(cmd, " -a %s", path);
   }

-- 




[EGIT] [tools/eflete] master 01/02: project manager: use unlink instead recursive_rm for delete file

2016-12-06 Thread Vyacheslav Reutskiy
rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=dbfaa0857498d316cc9c022febc2cdabeadcca62

commit dbfaa0857498d316cc9c022febc2cdabeadcca62
Author: Vyacheslav Reutskiy 
Date:   Mon Dec 5 13:28:36 2016 +0200

project manager: use unlink instead recursive_rm for delete file

Change-Id: I5504eb85e73f9538650b7c2d0b6beb878e5f71bd
---
 src/bin/project_manager/project_manager2.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/project_manager/project_manager2.c 
b/src/bin/project_manager/project_manager2.c
index a1214a1..947214a 100644
--- a/src/bin/project_manager/project_manager2.c
+++ b/src/bin/project_manager/project_manager2.c
@@ -1297,7 +1297,7 @@ _develop_export_finish_handler(void *data,
 
if (ppd->tmp_dirname)
  {
-ecore_file_recursive_rm(ppd->path);
+ecore_file_unlink(ppd->path);
 ecore_file_mv(ppd->tmp_dirname, ppd->path);
 eina_tmpstr_del(ppd->tmp_dirname);
 ppd->tmp_dirname = NULL;

-- 




[EGIT] [tools/eflete] master 01/01: project manager: add more debug info

2016-12-06 Thread Vyacheslav Reutskiy
rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=2b419c3d1817604a3d8e2f21578e89a70c071858

commit 2b419c3d1817604a3d8e2f21578e89a70c071858
Author: Vyacheslav Reutskiy 
Date:   Mon Dec 5 13:27:52 2016 +0200

project manager: add more debug info

Change-Id: Id3dfd38e5a47f03c141eb98acc15afac100a0a2c
---
 src/bin/project_manager/project_manager2.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/bin/project_manager/project_manager2.c 
b/src/bin/project_manager/project_manager2.c
index db00eed..a1214a1 100644
--- a/src/bin/project_manager/project_manager2.c
+++ b/src/bin/project_manager/project_manager2.c
@@ -1006,6 +1006,7 @@ _project_import_edc(void *data)
ppd->edj = eina_stringshare_printf("%s/out.edj", ppd->tmp_dirname);
snprintf(buf, sizeof(buf),
 "edje_cc -v %s %s %s", ppd->edc, ppd->edj, ppd->build_options);
+   DBG("Run command for compile: %s\n", buf);
ecore_exe_pipe_run(buf, FLAGS, NULL);
 
ppd->data_handler = ecore_event_handler_add(ECORE_EXE_EVENT_DATA, 
_exe_output_handler, ppd);

-- 




Re: [E-devel] [EGIT] [core/efl] master 01/08: evas: switch to use Ecore_Thread instead of half done Evas thread infrastructure.

2016-12-06 Thread Daniel Zaoui
Hey borker,

You should run Genlist 3. It is stuck on a lock when loading an image. git 
bisect shows this patch as causing the issue.

Enjoy
Daniel

On Tue, 06 Dec 2016 16:34:54 -0800
Cedric BAIL  wrote:

> cedric pushed a commit to branch master.
> 
> http://git.enlightenment.org/core/efl.git/commit/?id=34758ad4f5eb1f036990faa7bfe8b258d1d4f497
> 
> commit 34758ad4f5eb1f036990faa7bfe8b258d1d4f497
> Author: Cedric BAIL 
> Date:   Mon Dec 5 16:57:46 2016 -0800
> 
> evas: switch to use Ecore_Thread instead of half done Evas thread
> infrastructure. ---
>  src/lib/evas/cache/evas_preload.c | 199
> ++ 1 file changed, 51
> insertions(+), 148 deletions(-)
> 
> diff --git a/src/lib/evas/cache/evas_preload.c
> b/src/lib/evas/cache/evas_preload.c index ecd3464..cd299e6 100644
> --- a/src/lib/evas/cache/evas_preload.c
> +++ b/src/lib/evas/cache/evas_preload.c
> @@ -11,135 +11,87 @@
>  #include "evas_private.h"
>  #include "Evas.h"
>  
> -static int _threads_max = 0;
> -
> -typedef struct _Evas_Preload_Pthread_Worker
> Evas_Preload_Pthread_Worker; -typedef struct
> _Evas_Preload_Pthread_Data Evas_Preload_Pthread_Data; +#include
> "Ecore.h" 
> +typedef struct _Evas_Preload_Pthread Evas_Preload_Pthread;
>  typedef void (*_evas_preload_pthread_func)(void *data);
>  
> -struct _Evas_Preload_Pthread_Worker
> +struct _Evas_Preload_Pthread
>  {
> EINA_INLIST;
>  
> +   Ecore_Thread *thread;
> +
> _evas_preload_pthread_func func_heavy;
> _evas_preload_pthread_func func_end;
> _evas_preload_pthread_func func_cancel;
> void *data;
> -   Eina_Bool cancel : 1;
> -};
> -
> -struct _Evas_Preload_Pthread_Data
> -{
> -   Eina_Thread thread;
>  };
>  
> -static int _threads_count = 0;
> -static Evas_Preload_Pthread_Worker *_workers = NULL;
> -
> -static LK(_mutex);
> +static Eina_Inlist *works = NULL;
>  
>  static void
> -_evas_preload_thread_end(void *data)
> +_evas_preload_thread_work_free(Evas_Preload_Pthread *work)
>  {
> -   Evas_Preload_Pthread_Data *pth = data;
> -   Evas_Preload_Pthread_Data *p = NULL;
> +   works = eina_inlist_remove(works, EINA_INLIST_GET(work));
>  
> -   if ((p = eina_thread_join(pth->thread))) free(p);
> -   else return;
> -   eina_threads_shutdown();
> +   free(work);
>  }
>  
>  static void
> -_evas_preload_thread_done(void *target EINA_UNUSED,
> Evas_Callback_Type type EINA_UNUSED, void *event_info)
> +_evas_preload_thread_success(void *data, Ecore_Thread *thread
> EINA_UNUSED) {
> -   Evas_Preload_Pthread_Worker *work = event_info;
> -   if (work->cancel)
> - {
> -if (work->func_cancel) work->func_cancel(work->data);
> - }
> -   else
> -  work->func_end(work->data);
> +   Evas_Preload_Pthread *work = data;
>  
> -   free(work);
> +   work->func_end(work->data);
> +
> +_evas_preload_thread_work_free(work);
>  }
>  
> -static void *
> -_evas_preload_thread_worker(void *data, Eina_Thread thread
> EINA_UNUSED) +static void
> +_evas_preload_thread_fail(void *data, Ecore_Thread *thread
> EINA_UNUSED) {
> -   Evas_Preload_Pthread_Data *pth = data;
> -   Evas_Preload_Pthread_Worker *work;
> -
> -   eina_thread_name_set(eina_thread_self(), "Eevas-preload");
> -on_error:
> -   for (;;)
> - {
> -LKL(_mutex);
> -if (!_workers)
> -  {
> - LKU(_mutex);
> - break;
> -  }
> +   Evas_Preload_Pthread *work = data;
>  
> -work = _workers;
> -_workers =
> EINA_INLIST_CONTAINER_GET(eina_inlist_remove(EINA_INLIST_GET(_workers),
> EINA_INLIST_GET(_workers)), Evas_Preload_Pthread_Worker);
> -LKU(_mutex);
> +   if (work->func_cancel) work->func_cancel(work->data);
>  
> -if (work->func_heavy) work->func_heavy(work->data);
> -evas_async_events_put(pth, 0, work,
> _evas_preload_thread_done);
> - }
> -
> -   LKL(_mutex);
> -   if (_workers)
> - {
> -LKU(_mutex);
> -goto on_error;
> - }
> -   _threads_count--;
> -   LKU(_mutex);
> +   _evas_preload_thread_work_free(work);
> +}
>  
> -   // dummy worker to wake things up
> -   work = malloc(sizeof(Evas_Preload_Pthread_Worker));
> -   if (!work) return NULL;
> +static void
> +_evas_preload_thread_worker(void *data, Ecore_Thread *thread)
> +{
> +   Evas_Preload_Pthread *work = data;
>  
> -   work->data = pth;
> -   work->func_heavy = NULL;
> -   work->func_end = (_evas_preload_pthread_func)
> _evas_preload_thread_end;
> -   work->func_cancel = NULL;
> -   work->cancel = EINA_FALSE;
> +   work->thread = thread;
>  
> -   evas_async_events_put(pth, 0, work, _evas_preload_thread_done);
> -   return pth;
> +   work->func_heavy(work->data);
>  }
>  
>  void
>  _evas_preload_thread_init(void)
>  {
> -   _threads_max = eina_cpu_count();
> -   if (_threads_max < 1) _threads_max = 1;
> -
> -   LKI(_mutex);
> +   ecore_init();
>  }
>  
>  void
>  _evas_preload_thread_shutdown(void)
>  {
> -   /* FIXME: If function are still running in 

Re: [E-devel] What do you think of Vala?

2016-12-06 Thread Jean-Philippe André
Hey Conr2d,

On 6 December 2016 at 13:33, Conrad Um  wrote:

> Dear friends,
>
> I'm a big fan of vala (if you don't know what vala is, please see this link
> ), and writing a vala binding
> generator for EFL.
>
> Vala has a syntax similar to C# and has managed feature based on reference
> counting, but basically it just converts .vala files to .c files to compile
> them with gcc and gobject library.
>
> My experimental generator can create VAPI files for having vala recognize C
> APIs, but only support compact class type which is not a full-featured vala
> class type.
> (Because complete vala class is based on gobject system. You can see the
> difference of compact and complete class here
>  eType.5D_and_.5BCompact.5D_in_bindings_mean.3F>
> .)
> If I want to use all features supported in vala, I should make a wrapper
> class like in eolian_cxx.
>
> By the way, it comes to my mind that makes vala generate c code based on eo
> instead of gobject. It can be used by application developers, but I think
> even EFL developers can write libraries with modern language.
>
> Currently, we should write 2 files (.c and .eo) per class at least.
> However, vala with eo backend only requires 1 vala file.
>
> For example,
>
> public class Elm.Button : Elm.Layout, Efl.Ui.Clickable,
> Elm.Interface.Atspi_Widget_Action
> {
>/* elm_widget_button.h, contents of private header */
>private double ar_initial_timeout;
>private double ar_gap_timeout;
>private Ecore.Timer? timer; // question mark means nullable
>private bool repeating;
>
>/* events */
>public signal void clicked();
>public signal void repeated();
>
>/* elm_button.c, property setter/getter body */
>public bool autorepeat {
>   set {
>  timer = null; // To assign null to 'timer' will unref timer.
>  autorepeat = value;
>  repeating = false;
>   }
>   get {
>  return autorepeat & admits_autorepeat;
>}
>}
>
>/* elm_button.c, private function body */
>private void activate() {
>   timer = null;
>   repeating = false;
>   /* if property getter is set, the next condition will be (!disabled
> && !freeze_events) */
>   if (!disabled_get() && !freeze_events_get())
>  clicked(); // invokes callbacks for "clicked" events
>}
>
>/* elm_button.c, override Efl.Canvas.Group.group_add() */
>public override group_add() {
>   base.group_add(); // efl_super
>   sub_object_parent_add();
>
>   /* lambda expression */
>   resize_obj.signal_callback_add("elm,action,click", "*", (emission,
> source) =>
>   {
>  activate();
>   });
>
>   access_object_register(resize_obj);
>   can_focus_set(true);
>
>   theme_set("button", "base", style_get());
>}
>...
> }
>
> With vala file like above, valac (vala compiler) with eo backend will be
> able to generate several files we need. (public header, private header, c
> file including .c and .eo.c contents)
> Moreover, header and c files generated by valac are simple c source files,
> so they can be compiled with existing code or c file written in c from the
> beginning (not generated).
> I know all EFL developers are C expert, and you may never feel need of
> redundant tools except for C. However I think if you want EFL to advance
> further and continuously, we should investigate how we can adapt modern
> concepts, knowledge and ideas on our works.
>
> It's just a suggestion, but if there is any one interested in this idea, we
> can start new project for the future. :D
>

I was wondering when you would go public with your idea :)
Will you publish your current code somewhere? You have a private repo on
git.e.org.

I think this is really cool as it seems to generate a (almost?)
zero-overhead binding in a friendly language.
I know nothing about C# or Vala, although I know they only look similar,
they are not the same language.

I doubt we would use this inside the EFL codebase itself but I can
definitely see the value in a new language binding.

If only the EFL interfaces could be completed already...

Best regards

-- 
Jean-Philippe André
--
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today.http://sdm.link/xeonphi
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] efl_net_local_fallback (win32 and possibly others)

2016-12-06 Thread Vincent Torri
and fyi, ecore_con_local_win32 used to work before the migration to
eo. I tested it with a client/server, efreetd also was working

Vincent

On Wed, Dec 7, 2016 at 6:50 AM, Vincent Torri  wrote:
> On Wed, Dec 7, 2016 at 12:50 AM, Gustavo Sverzut Barbieri
>  wrote:
>> Hi all,
>>
>> It seems ECORE_CON_LOCAL_* is broken on Windows given reports on
>> efreetd not working there, the code is very different from other
>> protocols, see ecore_con_local_win32.c
>>
>> Since I will replace Ecore_Con_Server with a wrapper on top of
>> Efl_Net, I'm wondering what to do... I don't have a windows machine or
>> windows development environment to write a new Efl_Net set of class
>> for it (if you do, please talk to me so I can get an SSH access).
>>
>> More than that, looking at local_win32.c I wonder how that would work,
>> since unlike UNIX path, it doesn't encode the service name/port in the
>> path, but the process id (I guess it's like the PID), thus one process
>> won't find the other...
>>
>> That's to say that legacy compatibility is not an issue in that case.
>>
>> Then what I propose to write an Efl_Net_Local_Fallback that uses a
>> local path to encode a localhost (127.0.0.1) TCP port. Then the logic
>> would be:
>>
>>   - server: bind(127.0.0.1:0), getsockname() to check the port,
>> fprintf(fp, "%hu\n", ntohs(addr.sin_port))... \n is used to avoid
>> partial writes (unlikely) to file.
>>
>>  - dialer (client): fopen() + fread() + verify trailing \n, then
>> connect to 127.0.0.1:$port
>>
>>  - path is encoded like in UNIX, just "/" is replaced with "\" for
>> windows. "~" is also handled like in Windows, such as User\username...
>>
>> Then it would provide some usable solution where a native local
>> communication is not available... Of course this is fully testable on
>> UNIX as well, then we don't rely on Windows to test it.
>>
>> Agreed?
>
> no.
>
> named pipes are used. The name of a named pipe must have the following
> scheme : \\.\pipe\mypipename on  local computer (or
> \\servername\pipe\mypipename on a remote computer)
>
> you keep thinking that unix and windows are the same...

--
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today.http://sdm.link/xeonphi
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] efl_net_local_fallback (win32 and possibly others)

2016-12-06 Thread Vincent Torri
On Wed, Dec 7, 2016 at 12:50 AM, Gustavo Sverzut Barbieri
 wrote:
> Hi all,
>
> It seems ECORE_CON_LOCAL_* is broken on Windows given reports on
> efreetd not working there, the code is very different from other
> protocols, see ecore_con_local_win32.c
>
> Since I will replace Ecore_Con_Server with a wrapper on top of
> Efl_Net, I'm wondering what to do... I don't have a windows machine or
> windows development environment to write a new Efl_Net set of class
> for it (if you do, please talk to me so I can get an SSH access).
>
> More than that, looking at local_win32.c I wonder how that would work,
> since unlike UNIX path, it doesn't encode the service name/port in the
> path, but the process id (I guess it's like the PID), thus one process
> won't find the other...
>
> That's to say that legacy compatibility is not an issue in that case.
>
> Then what I propose to write an Efl_Net_Local_Fallback that uses a
> local path to encode a localhost (127.0.0.1) TCP port. Then the logic
> would be:
>
>   - server: bind(127.0.0.1:0), getsockname() to check the port,
> fprintf(fp, "%hu\n", ntohs(addr.sin_port))... \n is used to avoid
> partial writes (unlikely) to file.
>
>  - dialer (client): fopen() + fread() + verify trailing \n, then
> connect to 127.0.0.1:$port
>
>  - path is encoded like in UNIX, just "/" is replaced with "\" for
> windows. "~" is also handled like in Windows, such as User\username...
>
> Then it would provide some usable solution where a native local
> communication is not available... Of course this is fully testable on
> UNIX as well, then we don't rely on Windows to test it.
>
> Agreed?

no.

named pipes are used. The name of a named pipe must have the following
scheme : \\.\pipe\mypipename on  local computer (or
\\servername\pipe\mypipename on a remote computer)

you keep thinking that unix and windows are the same...

--
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today.http://sdm.link/xeonphi
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 01/01: Evas: include efl_vg_container.eo.legacy.h to avoid implicit declaration for evas_vg_container_child* @fix

2016-12-06 Thread Artem Popov
hermet pushed a commit to branch master.

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

commit 4707c86a830e929c10827584bc529aa549cd75a8
Author: Artem Popov 
Date:   Wed Dec 7 14:21:12 2016 +0900

Evas: include efl_vg_container.eo.legacy.h to avoid implicit declaration 
for evas_vg_container_child* @fix

Summary: Due to implicit declaration, evas_vg_container_child_get casts to 
int and on 64-bit can return wrong pointer

Reviewers: cedric, NikaWhite, myoungwoon, jpeg, an.kroitor, Hermet

Reviewed By: Hermet

Subscribers: t.naumenko

Differential Revision: https://phab.enlightenment.org/D4464
---
 src/lib/evas/Evas_Legacy.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/evas/Evas_Legacy.h b/src/lib/evas/Evas_Legacy.h
index 78653e7..cfdf7e7 100644
--- a/src/lib/evas/Evas_Legacy.h
+++ b/src/lib/evas/Evas_Legacy.h
@@ -2633,7 +2633,7 @@ EAPI Evas_Object *evas_object_rectangle_add(Evas *e) 
EINA_WARN_UNUSED_RESULT EIN
 EAPI Evas_Object *evas_object_vg_add(Evas *e) EINA_WARN_UNUSED_RESULT 
EINA_ARG_NONNULL(1) EINA_MALLOC;
 
 #include "canvas/evas_vg.eo.legacy.h"
-
+#include "canvas/efl_vg_container.eo.legacy.h"
 /**
  * Creates a new vector shape object \.
  *

-- 




[EGIT] [core/efl] master 01/01: elementary genlist: code refactoring.

2016-12-06 Thread ChunEon Park
hermet pushed a commit to branch master.

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

commit 436e07277e1b24f5d5de5aece3e4d32d47c7d028
Author: Hermet Park 
Date:   Wed Dec 7 14:17:33 2016 +0900

elementary genlist: code refactoring.

removed duplicated logic and add a descriptive comment.
---
 src/lib/elementary/elm_genlist.c | 25 +
 1 file changed, 9 insertions(+), 16 deletions(-)

diff --git a/src/lib/elementary/elm_genlist.c b/src/lib/elementary/elm_genlist.c
index 7e7a30c..1d52f62 100644
--- a/src/lib/elementary/elm_genlist.c
+++ b/src/lib/elementary/elm_genlist.c
@@ -6973,25 +6973,17 @@ _elm_genlist_item_coordinates_calc(Elm_Gen_Item *it,
Evas_Coord gith = 0;
ELM_GENLIST_DATA_GET_FROM_ITEM(it, sd);
 
-   if ((sd->queue) ||
-   (!((sd->homogeneous) &&
-  (sd->mode == ELM_LIST_COMPRESS
+   Eina_Bool deferred_show = EINA_FALSE;
+
+   //Can't goto the item right now. Reserve it instead.
+   if (sd->queue || !(sd->homogeneous && (sd->mode == ELM_LIST_COMPRESS)))
  {
 if ((it->item->queued) || (!it->item->mincalcd) || (sd->queue))
-  {
- sd->check_scroll = EINA_TRUE;
- sd->show_item = it;
- sd->bring_in = bring_in;
- sd->scroll_to_type = type;
- it->item->show_me = EINA_TRUE;
-
- ecore_job_del(sd->calc_job);
- sd->calc_job = ecore_job_add(_calc_job, sd->obj);
-
- return EINA_FALSE;
-  }
+  deferred_show = EINA_TRUE;
  }
-   if (it->item->block->w < 1)
+   else if (it->item->block->w < 1) deferred_show = EINA_TRUE;
+
+   if (deferred_show)
  {
 sd->check_scroll = EINA_TRUE;
 sd->show_item = it;
@@ -7004,6 +6996,7 @@ _elm_genlist_item_coordinates_calc(Elm_Gen_Item *it,
 
 return EINA_FALSE;
  }
+
if (sd->show_item)
  {
 sd->show_item->item->show_me = EINA_FALSE;

-- 




[EGIT] [core/efl] master 01/01: genlist : fix cannot scroll to item after call elm_genlist_item_update

2016-12-06 Thread jinwoo.shin
hermet pushed a commit to branch master.

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

commit 825af0c89c25d0c0975f5b916a083f9e19b57f20
Author: jinwoo.shin 
Date:   Wed Dec 7 13:57:56 2016 +0900

genlist : fix cannot scroll to item after call elm_genlist_item_update

Summary: Fix cannot scroll to item after call elm_genlist_item_update

Test Plan: https://phab.enlightenment.org/T4974

Reviewers: Hermet

Reviewed By: Hermet

Subscribers: SanghyeonLee, minkyu, cedric, jpeg

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D4460
---
 src/lib/elementary/elm_genlist.c | 5 +
 1 file changed, 5 insertions(+)

diff --git a/src/lib/elementary/elm_genlist.c b/src/lib/elementary/elm_genlist.c
index ba727ed..7e7a30c 100644
--- a/src/lib/elementary/elm_genlist.c
+++ b/src/lib/elementary/elm_genlist.c
@@ -6979,10 +6979,15 @@ _elm_genlist_item_coordinates_calc(Elm_Gen_Item *it,
  {
 if ((it->item->queued) || (!it->item->mincalcd) || (sd->queue))
   {
+ sd->check_scroll = EINA_TRUE;
  sd->show_item = it;
  sd->bring_in = bring_in;
  sd->scroll_to_type = type;
  it->item->show_me = EINA_TRUE;
+
+ ecore_job_del(sd->calc_job);
+ sd->calc_job = ecore_job_add(_calc_job, sd->obj);
+
  return EINA_FALSE;
   }
  }

-- 




[EGIT] [core/efl] master 01/01: emile_image: fix possible segmentation fault in AGRY88

2016-12-06 Thread Sungtaek Hong
hermet pushed a commit to branch master.

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

commit 44716502fce64a73d17eb443c51dadbd2c6dcfae
Author: Sungtaek Hong 
Date:   Wed Dec 7 13:42:46 2016 +0900

emile_image: fix possible segmentation fault in AGRY88

Summary:
 - ptrag is set NULL and is allocated only when prop is rotated.
   but *ptrag = 0xFF00 | ptr[0]; without checking rotation.

Reviewers: jpeg, cedric, Hermet

Reviewed By: Hermet

Subscribers: conr2d

Differential Revision: https://phab.enlightenment.org/D4463
---
 src/lib/emile/emile_image.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/lib/emile/emile_image.c b/src/lib/emile/emile_image.c
index 59af9b4..e04df4c 100644
--- a/src/lib/emile/emile_image.c
+++ b/src/lib/emile/emile_image.c
@@ -1860,10 +1860,11 @@ _emile_jpeg_data(Emile_Image *image,
else
  {
 ptr2 = pixels;
+ptrag = pixels;
 ptrg = pixels;
  }
 
-   if (!ptr2 && !ptrg)
+   if (!ptr2 && !ptrag && !ptrg)
  {
 *error = EMILE_IMAGE_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED;
 goto on_error;

-- 




Re: [E-devel] [EGIT] [core/efl] master 05/08: efl: extend possible error while decoding an image to be cancelled.

2016-12-06 Thread Cedric BAIL
On Dec 6, 2016 17:25, "Gustavo Sverzut Barbieri"  wrote:

On Tue, Dec 6, 2016 at 10:34 PM, Cedric BAIL  wrote:
> cedric pushed a commit to branch master.
>
> http://git.enlightenment.org/core/efl.git/commit/?id=
889944fefef45ee9d715656427d6f1c523ec9867
>
> commit 889944fefef45ee9d715656427d6f1c523ec9867
> Author: Cedric BAIL 
> Date:   Tue Dec 6 16:22:11 2016 -0800
>
> efl: extend possible error while decoding an image to be cancelled.

why not use Eina_Error for that, then you register your new types...
things like permission denied and resource allocation failed are
already defined in errno.h


Mostly history as they are exposed already in some of our legacy API. The
alternate is to convert them in the legacy API, but I didn't like that idea.

Cedric



--
Gustavo Sverzut Barbieri
--
Mobile: +55 (16) 99354-9890


--
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today.http://sdm.link/xeonphi
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
--
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today.http://sdm.link/xeonphi
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] eo_isa() buggy

2016-12-06 Thread Gustavo Sverzut Barbieri
eo_isa(o, iface) is buggy as shown with:

  EINA_LOG_LEVELS=eo:4 EFL_RUN_IN_TREE=1 libtool --mode=execute sh
./src/scripts/eo/eo_debug
./src/examples/ecore/efl_net_dialer_simple_example ssl localhost:1234

It will report Efl_Net_Dialer_Ssl fails efl_isa() with both
Efl_Io_Reader and Efl_Io_Writer, not in the message but also seems to
fail Efl_Io_Closer (not a critical error for that usage).

These are declared as:

class Efl.Net.Dialer.Ssl (Efl.Net.Socket.Ssl, Efl.Net.Dialer);
class Efl.Net.Socket.Ssl (Efl.Loop_User, Efl.Net.Socket);
interface Efl.Net.Dialer (Efl.Net.Socket);
interface Efl.Net.Socket (Efl.Io.Reader, Efl.Io.Writer, Efl.Io.Closer);

then both Efl.Net.Socket.Ssl AND Efl.Net.Dialer would lead to these 3
interfaces.

Log (removed function names to be shorter) also says they are added to
the methods vtable:

DBG<20851>:eo lib/eo/eo.c:1334 Started building extensions list for
class 'Efl_Net_Socket'
DBG<20851>:eo lib/eo/eo.c:1366 Finished building extensions list for
class 'Efl_Net_Socket'
DBG<20851>:eo lib/eo/eo.c:1371 Started building MRO list for class
'Efl_Net_Socket'
DBG<20851>:eo lib/eo/eo.c:1382 Finished building MRO list for class
'Efl_Net_Socket'
DBG<20851>:eo lib/eo/eo.c:1390 Started building Mixins list for class
'Efl_Net_Socket'
DBG<20851>:eo lib/eo/eo.c:1404 Finished building Mixins list for class
'Efl_Net_Socket'
DBG<20851>:eo lib/eo/eo.c:1444 Added 'Efl_Io_Writer' extension
DBG<20851>:eo lib/eo/eo.c:1444 Added 'Efl_Io_Closer' extension
DBG<20851>:eo lib/eo/eo.c:1457 Added 'Efl_Net_Socket' to MRO
DBG<20851>:eo lib/eo/eo.c:1457 Added 'Efl_Io_Closer' to MRO
DBG<20851>:eo lib/eo/eo.c:1457 Added 'Efl_Io_Reader' to MRO
DBG<20851>:eo lib/eo/eo.c:699 Set functions for class
'Efl_Net_Socket':0x556186c12ff0
DBG<20851>:eo lib/eo/eo.c:747 0x7fdc53989c40->(nil)
'efl_net_socket_address_local_get'
DBG<20851>:eo lib/eo/eo.c:747 0x7fdc53989e00->(nil)
'efl_net_socket_address_local_set'
DBG<20851>:eo lib/eo/eo.c:747 0x7fdc53989fa0->(nil)
'efl_net_socket_address_remote_get'
DBG<20851>:eo lib/eo/eo.c:747 0x7fdc5398a160->(nil)
'efl_net_socket_address_remote_set'
DBG<20851>:eo lib/eo/eo.c:699 Set functions for class
'Efl_Net_Socket':0x556186c12ff0
DBG<20851>:eo lib/eo/eo.c:1535 Finished building class 'Efl_Net_Socket'
DBG<20851>:eo lib/eo/eo.c:1334 Started building extensions list for
class 'Efl_Net_Socket_Ssl'
DBG<20851>:eo lib/eo/eo.c:1366 Finished building extensions list for
class 'Efl_Net_Socket_Ssl'
DBG<20851>:eo lib/eo/eo.c:1371 Started building MRO list for class
'Efl_Net_Socket_Ssl'
DBG<20851>:eo lib/eo/eo.c:1382 Finished building MRO list for class
'Efl_Net_Socket_Ssl'
DBG<20851>:eo lib/eo/eo.c:1390 Started building Mixins list for class
'Efl_Net_Socket_Ssl'
DBG<20851>:eo lib/eo/eo.c:1404 Finished building Mixins list for class
'Efl_Net_Socket_Ssl'
DBG<20851>:eo lib/eo/eo.c:1444 Added 'Efl_Net_Socket' extension
DBG<20851>:eo lib/eo/eo.c:1457 Added 'Efl_Net_Socket_Ssl' to MRO
DBG<20851>:eo lib/eo/eo.c:1457 Added 'Efl_Loop_User' to MRO
DBG<20851>:eo lib/eo/eo.c:1457 Added 'Efl_Object' to MRO
DBG<20851>:eo lib/eo/eo.c:699 Set functions for class
'Efl_Net_Socket_Ssl':0x556186c134c0
DBG<20851>:eo lib/eo/eo.c:747 0x7fdc53c0ed80->0x7fdc539b5220 'efl_constructor'
DBG<20851>:eo lib/eo/eo.c:747 0x7fdc53c0ef40->0x7fdc539b5270 'efl_destructor'
DBG<20851>:eo lib/eo/eo.c:747 0x7fdc53c0f0e0->0x7fdc539b53f0 'efl_finalize'
DBG<20851>:eo lib/eo/eo.c:747 0x7fdc5133f7e0->0x7fdc539b5560
'efl_io_closer_close'
DBG<20851>:eo lib/eo/eo.c:747 0x7fdc5133edb0->0x7fdc539b5620
'efl_io_closer_closed_get'
DBG<20851>:eo lib/eo/eo.c:747 0x7fdc5133f2d0->0x7fdc539b5670
'efl_io_closer_close_on_exec_set'
DBG<20851>:eo lib/eo/eo.c:747 0x7fdc5133f120->0x7fdc539b56c0
'efl_io_closer_close_on_exec_get'
DBG<20851>:eo lib/eo/eo.c:747 0x7fdc5133f640->0x7fdc539b5710
'efl_io_closer_close_on_destructor_set'
DBG<20851>:eo lib/eo/eo.c:747 0x7fdc5133f490->0x7fdc539b5750
'efl_io_closer_close_on_destructor_get'
DBG<20851>:eo lib/eo/eo.c:747 0x7fdc51340aa0->0x7fdc539b57a0
'efl_io_reader_read'
DBG<20851>:eo lib/eo/eo.c:747 0x7fdc513405b0->0x7fdc539b5890
'efl_io_reader_can_read_set'
DBG<20851>:eo lib/eo/eo.c:747 0x7fdc51340400->0x7fdc539b5930
'efl_io_reader_can_read_get'
DBG<20851>:eo lib/eo/eo.c:747 0x7fdc51340900->0x7fdc539b5950
'efl_io_reader_eos_set'
DBG<20851>:eo lib/eo/eo.c:747 0x7fdc51340750->0x7fdc539b5a00
'efl_io_reader_eos_get'
DBG<20851>:eo lib/eo/eo.c:747 0x7fdc513419b0->0x7fdc539b5a20
'efl_io_writer_write'
DBG<20851>:eo lib/eo/eo.c:747 0x7fdc51341810->0x7fdc539b5b70
'efl_io_writer_can_write_set'
DBG<20851>:eo lib/eo/eo.c:747 0x7fdc51341660->0x7fdc539b5c10
'efl_io_writer_can_write_get'
DBG<20851>:eo lib/eo/eo.c:747 0x7fdc53989fa0->0x7fdc539b5c30
'efl_net_socket_address_remote_get'
DBG<20851>:eo lib/eo/eo.c:747 0x7fdc53989c40->0x7fdc539b5c80
'efl_net_socket_address_local_get'
DBG<20851>:eo lib/eo/eo.c:747 0x7fdc539b4410->0x7fdc539b5cd0
'efl_net_socket_ssl_verify_mode_set'
DBG<20851>:eo lib/eo/eo.c:747 0x7fdc539b45b0->0x7fdc539b5d30

Re: [E-devel] [EGIT] [core/efl] master 05/08: efl: extend possible error while decoding an image to be cancelled.

2016-12-06 Thread Gustavo Sverzut Barbieri
On Tue, Dec 6, 2016 at 10:34 PM, Cedric BAIL  wrote:
> cedric pushed a commit to branch master.
>
> http://git.enlightenment.org/core/efl.git/commit/?id=889944fefef45ee9d715656427d6f1c523ec9867
>
> commit 889944fefef45ee9d715656427d6f1c523ec9867
> Author: Cedric BAIL 
> Date:   Tue Dec 6 16:22:11 2016 -0800
>
> efl: extend possible error while decoding an image to be cancelled.

why not use Eina_Error for that, then you register your new types...
things like permission denied and resource allocation failed are
already defined in errno.h


-- 
Gustavo Sverzut Barbieri
--
Mobile: +55 (16) 99354-9890

--
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today.http://sdm.link/xeonphi
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 06/08: emile: add infrastructure for callback to request what to do with image.

2016-12-06 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit c8fef4a5567526eb2af9326c24f3a330645e59a0
Author: Cedric BAIL 
Date:   Tue Dec 6 16:22:56 2016 -0800

emile: add infrastructure for callback to request what to do with image.

First use of this infrastructure is to make JPEG decoding interruptible.
---
 src/lib/emile/emile_image.c | 48 +
 src/lib/emile/emile_image.h | 32 +-
 2 files changed, 79 insertions(+), 1 deletion(-)

diff --git a/src/lib/emile/emile_image.c b/src/lib/emile/emile_image.c
index c7baff8..59af9b4 100644
--- a/src/lib/emile/emile_image.c
+++ b/src/lib/emile/emile_image.c
@@ -125,6 +125,9 @@ struct _Emile_Image
Eina_Bool (*data)(Emile_Image *image, Emile_Image_Property 
*prop, unsigned int property_size, void *pixels, Emile_Image_Load_Error *error);
void  (*close)(Emile_Image *image);
 
+   Emile_Action_Cb   cancelled;
+   const void   *cancelled_data;
+
Emile_Colorspace  cspace;
 
Eina_Bool bin_source : 1;
@@ -136,6 +139,27 @@ struct _Emile_Image
Eina_Bool load_opts : 1;
 };
 
+static inline Eina_Bool
+_emile_image_cancelled_is(Emile_Image *image)
+{
+   if (!image->cancelled) return EINA_FALSE;
+   return image->cancelled((void*) image->cancelled_data, image, 
EMILE_ACTION_CANCELLED);
+}
+
+#define EMILE_IMAGE_TASK_CHECK(Image, Count, Mask, Error, Error_Handler) \
+  do {  \
+ Count++;   \
+ if ((Count & Mask) == Mask)\
+   {\
+  Count = 0;\
+  if (_emile_image_cancelled_is(Image)) \
+{   \
+   *Error = EMILE_IMAGE_LOAD_ERROR_CANCELLED;   \
+   goto Error_Handler;  \
+}   \
+   }\
+  } while (0);
+
 static const unsigned char *
 _emile_image_file_source_map(Emile_Image *image, unsigned int *length)
 {
@@ -1629,6 +1653,7 @@ _emile_jpeg_data(Emile_Image *image,
Eina_Bool ptrag_free = EINA_FALSE;
Eina_Bool r = EINA_FALSE;
unsigned int length;
+   unsigned short count = 0;
 
if (sizeof(Emile_Image_Property) != property_size)
  return EINA_FALSE;
@@ -1852,6 +1877,9 @@ _emile_jpeg_data(Emile_Image *image,
   line[i] = data + (i * w * 4);
 for (l = 0; l < h; l += cinfo.rec_outbuf_height)
   {
+ // Check for continuing every 16 scanlines fetch
+ EMILE_IMAGE_TASK_CHECK(image, count, 0xF, error, on_error);
+
  jpeg_read_scanlines(, line, cinfo.rec_outbuf_height);
  scans = cinfo.rec_outbuf_height;
  if ((h - l) < scans)
@@ -1998,6 +2026,9 @@ _emile_jpeg_data(Emile_Image *image,
   line[i] = data + (i * w * 3);
 for (l = 0; l < h; l += cinfo.rec_outbuf_height)
   {
+ // Check for continuing every 16 scanlines fetch
+ EMILE_IMAGE_TASK_CHECK(image, count, 0xF, error, on_error);
+
  jpeg_read_scanlines(, line, cinfo.rec_outbuf_height);
  scans = cinfo.rec_outbuf_height;
  if ((h - l) < scans)
@@ -2060,6 +2091,9 @@ _emile_jpeg_data(Emile_Image *image,
   line[i] = data + (i * w);
 for (l = 0; l < h; l += cinfo.rec_outbuf_height)
   {
+ // Check for continuing every 16 scanlines fetch
+ EMILE_IMAGE_TASK_CHECK(image, count, 0xF, error, on_error);
+
  jpeg_read_scanlines(, line, cinfo.rec_outbuf_height);
  scans = cinfo.rec_outbuf_height;
  if ((h - l) < scans)
@@ -2411,6 +2445,17 @@ emile_image_jpeg_file_open(Eina_File *source,
 }
 
 EAPI void
+emile_image_register(Emile_Image *image, Emile_Action_Cb callback, 
Emile_Action action, const void *data)
+{
+   if (!image) return ;
+   // We only handle one type of callback for now
+   if (action != EMILE_ACTION_CANCELLED) return ;
+
+   image->cancelled_data = data;
+   image->cancelled = callback;
+}
+
+EAPI void
 emile_image_close(Emile_Image *image)
 {
if (!image)
@@ -2476,6 +2521,9 @@ emile_load_error_str(Emile_Image *source EINA_UNUSED,
 
   case EMILE_IMAGE_LOAD_ERROR_UNKNOWN_FORMAT:
 return "Unexpected file format.";
+
+  case EMILE_IMAGE_LOAD_ERROR_CANCELLED:
+return "Loading was stopped by an external request.";
  }
return NULL;
 }
diff --git 

[EGIT] [core/efl] master 04/08: evas: add possibility for image loader to know if what they are working is still useful.

2016-12-06 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit 3aa63faa1087aafa7fe1f7d4a778536dbd4de53f
Author: Cedric BAIL 
Date:   Tue Dec 6 11:44:05 2016 -0800

evas: add possibility for image loader to know if what they are working is 
still useful.
---
 src/lib/evas/cache/evas_cache_image.c | 11 +++
 src/lib/evas/cache/evas_preload.c |  1 +
 2 files changed, 12 insertions(+)

diff --git a/src/lib/evas/cache/evas_cache_image.c 
b/src/lib/evas/cache/evas_cache_image.c
index 7dba180..152cea6 100644
--- a/src/lib/evas/cache/evas_cache_image.c
+++ b/src/lib/evas/cache/evas_cache_image.c
@@ -324,6 +324,14 @@ _evas_cache_image_entry_surface_alloc(Evas_Cache_Image 
*cache,
SLKU(engine_lock);
 }
 
+static Eina_Bool
+evas_cache_image_cancelled(void *data)
+{
+   Image_Entry *current = data;
+
+   return evas_preload_thread_cancelled_is(current->preload);
+}
+
 static void
 _evas_cache_image_async_heavy(void *data)
 {
@@ -343,7 +351,10 @@ _evas_cache_image_async_heavy(void *data)
if ((!current->flags.loaded) &&
current->info.loader->threadable)
  {
+evas_module_task_register(evas_cache_image_cancelled, current);
 error = cache->func.load(current);
+evas_module_task_unregister();
+
 if (cache->func.debug) cache->func.debug("load", current);
 current->load_error = error;
 if (error != EVAS_LOAD_ERROR_NONE)
diff --git a/src/lib/evas/cache/evas_preload.c 
b/src/lib/evas/cache/evas_preload.c
index f18d5b6..9ad2f35 100644
--- a/src/lib/evas/cache/evas_preload.c
+++ b/src/lib/evas/cache/evas_preload.c
@@ -135,5 +135,6 @@ evas_preload_thread_cancel(Evas_Preload_Pthread *work)
 Eina_Bool
 evas_preload_thread_cancelled_is(Evas_Preload_Pthread *work)
 {
+   if (!work) return EINA_FALSE;
return ecore_thread_check(work->thread);
 }

-- 




[EGIT] [core/efl] master 01/08: evas: switch to use Ecore_Thread instead of half done Evas thread infrastructure.

2016-12-06 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit 34758ad4f5eb1f036990faa7bfe8b258d1d4f497
Author: Cedric BAIL 
Date:   Mon Dec 5 16:57:46 2016 -0800

evas: switch to use Ecore_Thread instead of half done Evas thread 
infrastructure.
---
 src/lib/evas/cache/evas_preload.c | 199 ++
 1 file changed, 51 insertions(+), 148 deletions(-)

diff --git a/src/lib/evas/cache/evas_preload.c 
b/src/lib/evas/cache/evas_preload.c
index ecd3464..cd299e6 100644
--- a/src/lib/evas/cache/evas_preload.c
+++ b/src/lib/evas/cache/evas_preload.c
@@ -11,135 +11,87 @@
 #include "evas_private.h"
 #include "Evas.h"
 
-static int _threads_max = 0;
-
-typedef struct _Evas_Preload_Pthread_Worker Evas_Preload_Pthread_Worker;
-typedef struct _Evas_Preload_Pthread_Data Evas_Preload_Pthread_Data;
+#include "Ecore.h"
 
+typedef struct _Evas_Preload_Pthread Evas_Preload_Pthread;
 typedef void (*_evas_preload_pthread_func)(void *data);
 
-struct _Evas_Preload_Pthread_Worker
+struct _Evas_Preload_Pthread
 {
EINA_INLIST;
 
+   Ecore_Thread *thread;
+
_evas_preload_pthread_func func_heavy;
_evas_preload_pthread_func func_end;
_evas_preload_pthread_func func_cancel;
void *data;
-   Eina_Bool cancel : 1;
-};
-
-struct _Evas_Preload_Pthread_Data
-{
-   Eina_Thread thread;
 };
 
-static int _threads_count = 0;
-static Evas_Preload_Pthread_Worker *_workers = NULL;
-
-static LK(_mutex);
+static Eina_Inlist *works = NULL;
 
 static void
-_evas_preload_thread_end(void *data)
+_evas_preload_thread_work_free(Evas_Preload_Pthread *work)
 {
-   Evas_Preload_Pthread_Data *pth = data;
-   Evas_Preload_Pthread_Data *p = NULL;
+   works = eina_inlist_remove(works, EINA_INLIST_GET(work));
 
-   if ((p = eina_thread_join(pth->thread))) free(p);
-   else return;
-   eina_threads_shutdown();
+   free(work);
 }
 
 static void
-_evas_preload_thread_done(void *target EINA_UNUSED, Evas_Callback_Type type 
EINA_UNUSED, void *event_info)
+_evas_preload_thread_success(void *data, Ecore_Thread *thread EINA_UNUSED)
 {
-   Evas_Preload_Pthread_Worker *work = event_info;
-   if (work->cancel)
- {
-if (work->func_cancel) work->func_cancel(work->data);
- }
-   else
-  work->func_end(work->data);
+   Evas_Preload_Pthread *work = data;
 
-   free(work);
+   work->func_end(work->data);
+
+_evas_preload_thread_work_free(work);
 }
 
-static void *
-_evas_preload_thread_worker(void *data, Eina_Thread thread EINA_UNUSED)
+static void
+_evas_preload_thread_fail(void *data, Ecore_Thread *thread EINA_UNUSED)
 {
-   Evas_Preload_Pthread_Data *pth = data;
-   Evas_Preload_Pthread_Worker *work;
-
-   eina_thread_name_set(eina_thread_self(), "Eevas-preload");
-on_error:
-   for (;;)
- {
-LKL(_mutex);
-if (!_workers)
-  {
- LKU(_mutex);
- break;
-  }
+   Evas_Preload_Pthread *work = data;
 
-work = _workers;
-_workers = 
EINA_INLIST_CONTAINER_GET(eina_inlist_remove(EINA_INLIST_GET(_workers), 
EINA_INLIST_GET(_workers)), Evas_Preload_Pthread_Worker);
-LKU(_mutex);
+   if (work->func_cancel) work->func_cancel(work->data);
 
-if (work->func_heavy) work->func_heavy(work->data);
-evas_async_events_put(pth, 0, work, _evas_preload_thread_done);
- }
-
-   LKL(_mutex);
-   if (_workers)
- {
-LKU(_mutex);
-goto on_error;
- }
-   _threads_count--;
-   LKU(_mutex);
+   _evas_preload_thread_work_free(work);
+}
 
-   // dummy worker to wake things up
-   work = malloc(sizeof(Evas_Preload_Pthread_Worker));
-   if (!work) return NULL;
+static void
+_evas_preload_thread_worker(void *data, Ecore_Thread *thread)
+{
+   Evas_Preload_Pthread *work = data;
 
-   work->data = pth;
-   work->func_heavy = NULL;
-   work->func_end = (_evas_preload_pthread_func) _evas_preload_thread_end;
-   work->func_cancel = NULL;
-   work->cancel = EINA_FALSE;
+   work->thread = thread;
 
-   evas_async_events_put(pth, 0, work, _evas_preload_thread_done);
-   return pth;
+   work->func_heavy(work->data);
 }
 
 void
 _evas_preload_thread_init(void)
 {
-   _threads_max = eina_cpu_count();
-   if (_threads_max < 1) _threads_max = 1;
-
-   LKI(_mutex);
+   ecore_init();
 }
 
 void
 _evas_preload_thread_shutdown(void)
 {
-   /* FIXME: If function are still running in the background, should we kill 
them ? */
-   Evas_Preload_Pthread_Worker *work;
+   Evas_Preload_Pthread *work;
+
+   EINA_INLIST_FOREACH(works, work)
+ ecore_thread_cancel(work->thread);
 
-   /* Force processing of async events. */
-   evas_async_events_process();
-   LKL(_mutex);
-   while (_workers)
+   while (works)
  {
-work = _workers;
-_workers = 
EINA_INLIST_CONTAINER_GET(eina_inlist_remove(EINA_INLIST_GET(_workers), 
EINA_INLIST_GET(_workers)), Evas_Preload_Pthread_Worker);
-if (work->func_cancel) 

[EGIT] [core/efl] master 02/08: evas: add capability to know if a thread has been cancelled.

2016-12-06 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit 3fab2729067b34111d3208c7ca0b273b90241114
Author: Cedric BAIL 
Date:   Mon Dec 5 17:08:50 2016 -0800

evas: add capability to know if a thread has been cancelled.
---
 src/lib/evas/cache/evas_preload.c   | 6 ++
 src/lib/evas/include/evas_private.h | 1 +
 2 files changed, 7 insertions(+)

diff --git a/src/lib/evas/cache/evas_preload.c 
b/src/lib/evas/cache/evas_preload.c
index cd299e6..f18d5b6 100644
--- a/src/lib/evas/cache/evas_preload.c
+++ b/src/lib/evas/cache/evas_preload.c
@@ -131,3 +131,9 @@ evas_preload_thread_cancel(Evas_Preload_Pthread *work)
 {
return ecore_thread_cancel(work->thread);
 }
+
+Eina_Bool
+evas_preload_thread_cancelled_is(Evas_Preload_Pthread *work)
+{
+   return ecore_thread_check(work->thread);
+}
diff --git a/src/lib/evas/include/evas_private.h 
b/src/lib/evas/include/evas_private.h
index a334ed1..1ac7e13 100644
--- a/src/lib/evas/include/evas_private.h
+++ b/src/lib/evas/include/evas_private.h
@@ -1951,6 +1951,7 @@ Evas_Preload_Pthread *evas_preload_thread_run(void 
(*func_heavy)(void *data),
   void (*func_cancel)(void *data),
   const void *data);
 Eina_Bool evas_preload_thread_cancel(Evas_Preload_Pthread *thread);
+Eina_Bool evas_preload_thread_cancelled_is(Evas_Preload_Pthread *thread);
 
 void _evas_walk(Evas_Public_Data *e_pd);
 void _evas_unwalk(Evas_Public_Data *e_pd);

-- 




[EGIT] [core/efl] master 05/08: efl: extend possible error while decoding an image to be cancelled.

2016-12-06 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit 889944fefef45ee9d715656427d6f1c523ec9867
Author: Cedric BAIL 
Date:   Tue Dec 6 16:22:11 2016 -0800

efl: extend possible error while decoding an image to be cancelled.
---
 src/lib/efl/interfaces/efl_gfx_types.eot | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/lib/efl/interfaces/efl_gfx_types.eot 
b/src/lib/efl/interfaces/efl_gfx_types.eot
index 05f3db3..8f72bb6 100644
--- a/src/lib/efl/interfaces/efl_gfx_types.eot
+++ b/src/lib/efl/interfaces/efl_gfx_types.eot
@@ -190,7 +190,8 @@ enum Efl.Image.Load.Error
permission_denied = 3,  [[Permission denied to an existing file (or 
path)]]
resource_allocation_failed = 4, [[Allocation of resources failure prevented 
load]]
corrupt_file = 5,   [[File corrupt (but was detected as a known 
format)]]
-   unknown_format = 6  [[File is not a known format]]
+   unknown_format = 6, [[File is not a known format]]
+   cancelled = 7   [[Reading operation has been cancelled 
during decoding]]
 }
 
 enum Efl.Gfx.Size.Hint.Mode {

-- 




[EGIT] [core/efl] master 07/08: evas: use emile and evas new infrastructure to interrupt decoding of JPEG early.

2016-12-06 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit 365f79b7eea393bdecf3c20f60ccb5945919da74
Author: Cedric BAIL 
Date:   Tue Dec 6 16:23:59 2016 -0800

evas: use emile and evas new infrastructure to interrupt decoding of JPEG 
early.
---
 src/modules/evas/image_loaders/jpeg/evas_image_load_jpeg.c | 12 +++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/src/modules/evas/image_loaders/jpeg/evas_image_load_jpeg.c 
b/src/modules/evas/image_loaders/jpeg/evas_image_load_jpeg.c
index 6813358..b749638 100644
--- a/src/modules/evas/image_loaders/jpeg/evas_image_load_jpeg.c
+++ b/src/modules/evas/image_loaders/jpeg/evas_image_load_jpeg.c
@@ -84,6 +84,14 @@ evas_image_load_file_head_jpeg(void *loader_data,
return ret;
 }
 
+static Eina_Bool
+_evas_image_load_jpeg_cancelled(void *data EINA_UNUSED,
+Emile_Image *image EINA_UNUSED,
+Emile_Action action EINA_UNUSED)
+{
+   return evas_module_task_cancelled();
+}
+
 Eina_Bool
 evas_image_load_file_data_jpeg(void *loader_data,
   Evas_Image_Property *prop,
@@ -94,6 +102,9 @@ evas_image_load_file_data_jpeg(void *loader_data,
Emile_Image_Load_Error image_error;
Eina_Bool ret;
 
+   emile_image_register(loader->image,
+_evas_image_load_jpeg_cancelled,
+EMILE_ACTION_CANCELLED, NULL);
ret = emile_image_data(loader->image,
   prop, sizeof (*prop),
   pixels,
@@ -142,4 +153,3 @@ EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_IMAGE_LOADER, 
image_loader, jpeg);
 #ifndef EVAS_STATIC_BUILD_JPEG
 EVAS_EINA_MODULE_DEFINE(image_loader, jpeg);
 #endif
-

-- 




[EGIT] [core/efl] master 03/08: evas: add infrastructure for Evas_Loader to know if what they are working on is still useful.

2016-12-06 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit 27a47da15bcb97458406ec176e1e92fa92ede99f
Author: Cedric BAIL 
Date:   Tue Dec 6 11:34:56 2016 -0800

evas: add infrastructure for Evas_Loader to know if what they are working 
on is still useful.
---
 src/lib/evas/Evas_Loader.h  | 17 +
 src/lib/evas/file/evas_module.c | 49 +
 src/lib/evas/include/evas_private.h |  3 +++
 3 files changed, 69 insertions(+)

diff --git a/src/lib/evas/Evas_Loader.h b/src/lib/evas/Evas_Loader.h
index a5d138b..19535d5 100644
--- a/src/lib/evas/Evas_Loader.h
+++ b/src/lib/evas/Evas_Loader.h
@@ -134,6 +134,7 @@ typedef Efl_Image_Load_Error Evas_Load_Error;
 #define EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED 
EFL_IMAGE_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED
 #define EVAS_LOAD_ERROR_CORRUPT_FILE EFL_IMAGE_LOAD_ERROR_CORRUPT_FILE
 #define EVAS_LOAD_ERROR_UNKNOWN_FORMAT EFL_IMAGE_LOAD_ERROR_UNKNOWN_FORMAT
+#define EVAS_LOAD_ERROR_CANCELLED EFL_IMAGE_LOAD_ERROR_CANCELLED
 
 typedef Emile_Image_Animated_Loop_Hint Evas_Image_Animated_Loop_Hint;
 
@@ -199,6 +200,22 @@ struct _Evas_Image_Load_Func
 EAPI Eina_Boolevas_module_register   (const Evas_Module_Api *module, 
Evas_Module_Type type);
 EAPI Eina_Boolevas_module_unregister (const Evas_Module_Api *module, 
Evas_Module_Type type);
 
+EAPI Eina_Boolevas_module_task_cancelled (void);
+
+#define EVAS_MODULE_TASK_CHECK(Count, Mask, Error, Error_Handler)   \
+  do {  \
+ Count++;   \
+ if ((Count & Mask) == Mask)\
+   {\
+  Count = 0;\
+  if (evas_module_task_cancelled()) \
+{   \
+   *Error = EFL_IMAGE_LOAD_ERROR_CANCELLED; \
+   goto Error_Handler;  \
+}   \
+   }\
+  } while (0)
+
 #define EVAS_MODULE_DEFINE(Type, Tn, Name) \
   Eina_Bool evas_##Tn##_##Name##_init(void)\
   {\
diff --git a/src/lib/evas/file/evas_module.c b/src/lib/evas/file/evas_module.c
index a7d46c2..5c1f5d6 100644
--- a/src/lib/evas/file/evas_module.c
+++ b/src/lib/evas/file/evas_module.c
@@ -28,6 +28,51 @@
 #define EVAS_MODULE_NO_VG_SAVERS 0
 #endif
 
+typedef struct _Evas_Module_Task Evas_Module_Task;
+struct _Evas_Module_Task
+{
+   Eina_Bool (*cancelled)(void *data);
+   void *data;
+};
+
+static Eina_TLS task = 0;
+
+EAPI Eina_Bool
+evas_module_task_cancelled(void)
+{
+   Evas_Module_Task *t;
+
+   t = eina_tls_get(task);
+   if (!t) return EINA_FALSE;
+
+   return t->cancelled(t->data);
+}
+
+EAPI void
+evas_module_task_register(Eina_Bool (*cancelled)(void *data), void *data)
+{
+   Evas_Module_Task *t;
+
+   t = malloc(sizeof (Evas_Module_Task));
+   if (!t) return ;
+
+   t->cancelled = cancelled;
+   t->data = data;
+
+   eina_tls_set(task, t);
+}
+
+EAPI void
+evas_module_task_unregister(void)
+{
+Evas_Module_Task *t;
+
+t = eina_tls_get(task);
+if (!t) return ;
+
+eina_tls_set(task, NULL);
+free(t);
+}
 
 static Eina_Hash *evas_modules[6] = {
   NULL,
@@ -318,6 +363,8 @@ evas_module_init(void)
 
evas_engines = eina_array_new(4);
 
+   eina_tls_cb_new(, (Eina_TLS_Delete_Cb) evas_module_task_unregister);
+
for (i = 0; evas_static_module[i].init; ++i)
  evas_static_module[i].init();
 }
@@ -694,6 +741,8 @@ evas_module_shutdown(void)
eina_hash_free(evas_modules[EVAS_MODULE_TYPE_VG_SAVER]);
evas_modules[EVAS_MODULE_TYPE_VG_SAVER] = NULL;
 
+   eina_tls_free(task);
+
EINA_LIST_FREE(evas_module_paths, path)
  free(path);
 
diff --git a/src/lib/evas/include/evas_private.h 
b/src/lib/evas/include/evas_private.h
index 1ac7e13..8e15337 100644
--- a/src/lib/evas/include/evas_private.h
+++ b/src/lib/evas/include/evas_private.h
@@ -1956,6 +1956,9 @@ Eina_Bool 
evas_preload_thread_cancelled_is(Evas_Preload_Pthread *thread);
 void _evas_walk(Evas_Public_Data *e_pd);
 void _evas_unwalk(Evas_Public_Data *e_pd);
 
+EAPI void evas_module_task_register(Eina_Bool (*cancelled)(void *data), void 
*data);
+EAPI void evas_module_task_unregister(void);
+
 // expose for use in engines
 EAPI int _evas_module_engine_inherit(Evas_Func *funcs, char *name);
 EAPI const char *_evas_module_libdir_get(void);

-- 




[E-devel] efl_net_local_fallback (win32 and possibly others)

2016-12-06 Thread Gustavo Sverzut Barbieri
Hi all,

It seems ECORE_CON_LOCAL_* is broken on Windows given reports on
efreetd not working there, the code is very different from other
protocols, see ecore_con_local_win32.c

Since I will replace Ecore_Con_Server with a wrapper on top of
Efl_Net, I'm wondering what to do... I don't have a windows machine or
windows development environment to write a new Efl_Net set of class
for it (if you do, please talk to me so I can get an SSH access).

More than that, looking at local_win32.c I wonder how that would work,
since unlike UNIX path, it doesn't encode the service name/port in the
path, but the process id (I guess it's like the PID), thus one process
won't find the other...

That's to say that legacy compatibility is not an issue in that case.

Then what I propose to write an Efl_Net_Local_Fallback that uses a
local path to encode a localhost (127.0.0.1) TCP port. Then the logic
would be:

  - server: bind(127.0.0.1:0), getsockname() to check the port,
fprintf(fp, "%hu\n", ntohs(addr.sin_port))... \n is used to avoid
partial writes (unlikely) to file.

 - dialer (client): fopen() + fread() + verify trailing \n, then
connect to 127.0.0.1:$port

 - path is encoded like in UNIX, just "/" is replaced with "\" for
windows. "~" is also handled like in Windows, such as User\username...

Then it would provide some usable solution where a native local
communication is not available... Of course this is fully testable on
UNIX as well, then we don't rely on Windows to test it.

Agreed?

-- 
Gustavo Sverzut Barbieri
--
Mobile: +55 (16) 99354-9890

--
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today.http://sdm.link/xeonphi
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [apps/terminology] master 02/02: termio: small cleanup

2016-12-06 Thread Boris Faure
billiob pushed a commit to branch master.

http://git.enlightenment.org/apps/terminology.git/commit/?id=45539d433c5f723c11dd51f4d0d740fe24665dc3

commit 45539d433c5f723c11dd51f4d0d740fe24665dc3
Author: Boris Faure 
Date:   Tue Dec 6 23:49:03 2016 +0100

termio: small cleanup
---
 src/bin/termio.c | 12 ++--
 1 file changed, 2 insertions(+), 10 deletions(-)

diff --git a/src/bin/termio.c b/src/bin/termio.c
index e17f263..17f0b75 100644
--- a/src/bin/termio.c
+++ b/src/bin/termio.c
@@ -5098,16 +5098,8 @@ _smart_size(Evas_Object *obj, int w, int h, Eina_Bool 
force)
Termio *sd = evas_object_smart_data_get(obj);
EINA_SAFETY_ON_NULL_RETURN(sd);
 
-   if (w <= 1) 
- {
-h = 24;
-w = 80;
- }
-   else if (h <= 1)
- {
-h = 24;
-w = 80;
- }
+   if (w <= 1) w = 80;
+   if (h <= 1) h = 24;
 
if (!force)
  {

-- 




[EGIT] [apps/terminology] master 01/02: Fix bogus hack and restore cursor position to its right place. On OpenBSD and DragonFly the cursor is being incorrectly placed. Seems there was a Linux workarou

2016-12-06 Thread Al Poole
billiob pushed a commit to branch master.

http://git.enlightenment.org/apps/terminology.git/commit/?id=8dd7aefcb442c37aa9f28c89ef8ab1b13db4583c

commit 8dd7aefcb442c37aa9f28c89ef8ab1b13db4583c
Author: Al Poole 
Date:   Tue Dec 6 23:42:10 2016 +0100

Fix bogus hack and restore cursor position to its right place. On OpenBSD 
and DragonFly the cursor is being incorrectly placed. Seems there was a Linux 
workaround too. My guess is this will fix that also.

Summary: Should help anyway.

Reviewers: billiob, raster

Differential Revision: https://phab.enlightenment.org/D4465
---
 src/bin/termio.c  | 13 +++--
 src/bin/termpty.c |  3 ---
 2 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/src/bin/termio.c b/src/bin/termio.c
index 404f305..e17f263 100644
--- a/src/bin/termio.c
+++ b/src/bin/termio.c
@@ -5098,8 +5098,17 @@ _smart_size(Evas_Object *obj, int w, int h, Eina_Bool 
force)
Termio *sd = evas_object_smart_data_get(obj);
EINA_SAFETY_ON_NULL_RETURN(sd);
 
-   if (w < 1) w = 1;
-   if (h < 1) h = 1;
+   if (w <= 1) 
+ {
+h = 24;
+w = 80;
+ }
+   else if (h <= 1)
+ {
+h = 24;
+w = 80;
+ }
+
if (!force)
  {
 if ((w == sd->grid.w) && (h == sd->grid.h)) return;
diff --git a/src/bin/termpty.c b/src/bin/termpty.c
index 0d5f77d..4c9330d 100644
--- a/src/bin/termpty.c
+++ b/src/bin/termpty.c
@@ -1148,10 +1148,7 @@ termpty_resize(Termpty *ty, int new_w, int new_h)
effective_old_h;
int altbuf = 0;
struct screen_info new_si = {.screen = NULL};
-
if ((ty->w == new_w) && (ty->h == new_h)) return;
-   if ((new_w == new_h) && (new_w == 1)) return; // FIXME: something weird is
- // going on at term init
 
termpty_backlog_lock();
 

-- 




[EGIT] [core/enlightenment] master 01/01: test dmabuf pixmaps properly

2016-12-06 Thread Derek Foreman
derekf pushed a commit to branch master.

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

commit ae9d2904c705c6e94d5acd0fe5f8f16b1c177e54
Author: Derek Foreman 
Date:   Tue Dec 6 16:37:35 2016 -0600

test dmabuf pixmaps properly

If we can't handle a dmabuf format we now properly tell the client instead
of accepting it anyway and falling apart later.
---
 src/bin/e_pixmap.c | 15 ++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_pixmap.c b/src/bin/e_pixmap.c
index ab24c16..f46a994 100644
--- a/src/bin/e_pixmap.c
+++ b/src/bin/e_pixmap.c
@@ -1051,10 +1051,23 @@ e_pixmap_alias(E_Pixmap *cp, E_Pixmap_Type type, ...)
 E_API Eina_Bool
 e_pixmap_dmabuf_test(struct linux_dmabuf_buffer *dmabuf)
 {
+   Evas_Native_Surface ns;
+   Evas_Object *test;
int size;
void *data;
 
-   if (e_comp->gl) return EINA_TRUE;
+   if (e_comp->gl)
+ {
+ns.type = EVAS_NATIVE_SURFACE_WL_DMABUF;
+ns.version = EVAS_NATIVE_SURFACE_VERSION;
+ns.data.wl_dmabuf.attr = >attributes;
+ns.data.wl_dmabuf.resource = NULL;
+test = evas_object_image_add(e_comp->evas);
+evas_object_image_native_surface_set(test, );
+evas_object_del(test);
+if (!ns.data.wl_dmabuf.attr) return EINA_FALSE;
+return EINA_TRUE;
+ }
 
/* TODO: Software rendering for multi-plane formats */
if (dmabuf->attributes.n_planes != 1) return EINA_FALSE;

-- 




[EGIT] [core/efl] master 05/05: wayland_shm: track mappings more effectively

2016-12-06 Thread Derek Foreman
derekf pushed a commit to branch master.

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

commit df4f377ad2a3a1ebfa0ff1b57b4604d245e33870
Author: Derek Foreman 
Date:   Tue Dec 6 16:20:46 2016 -0600

wayland_shm: track mappings more effectively

Unmap any active mappings from buffer_destroy.  This also means we need
to clear the mapping after unmapping in fallback.
---
 src/modules/evas/engines/wayland_shm/evas_dmabuf.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/modules/evas/engines/wayland_shm/evas_dmabuf.c 
b/src/modules/evas/engines/wayland_shm/evas_dmabuf.c
index 41073e0..eab8df5 100644
--- a/src/modules/evas/engines/wayland_shm/evas_dmabuf.c
+++ b/src/modules/evas/engines/wayland_shm/evas_dmabuf.c
@@ -449,6 +449,7 @@ _fallback(Dmabuf_Surface *s, int w, int h)
  memcpy(new_data + y * w * 4, old_data + y * b->stride, w * 4);
surf->funcs.post(surf, NULL, 0, EINA_FALSE);
_buffer_manager_unmap(b);
+   b->mapping = NULL;
 
 out:
_internal_evas_dmabuf_surface_destroy(s);
@@ -542,6 +543,7 @@ _evas_dmabuf_buffer_destroy(Dmabuf_Buffer *b)
 return;
  }
if (b->fd != -1) close(b->fd);
+   if (b->mapping) _buffer_manager_unmap(b);
_buffer_manager_discard(b);
if (b->wl_buffer) wl_buffer_destroy(b->wl_buffer);
b->wl_buffer = NULL;

-- 




[EGIT] [core/efl] master 02/05: wayland_shm: Clear busy status when replacing an unassigned buffer

2016-12-06 Thread Derek Foreman
derekf pushed a commit to branch master.

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

commit b897d869438ba0779347543eb4e3f09c1e446d2c
Author: Derek Foreman 
Date:   Tue Dec 6 16:17:57 2016 -0600

wayland_shm: Clear busy status when replacing an unassigned buffer

If we render fast enough we can use more than one buffer before the
compositor assigns us buffer ids.  We need to be careful to clear the
busy bit on all but the most recent one.
---
 src/modules/evas/engines/wayland_shm/evas_dmabuf.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/modules/evas/engines/wayland_shm/evas_dmabuf.c 
b/src/modules/evas/engines/wayland_shm/evas_dmabuf.c
index df04b5e..c75d47d 100644
--- a/src/modules/evas/engines/wayland_shm/evas_dmabuf.c
+++ b/src/modules/evas/engines/wayland_shm/evas_dmabuf.c
@@ -620,6 +620,7 @@ _evas_dmabuf_surface_post(Surface *s, Eina_Rectangle 
*rects, unsigned int count,
 * most recently filled unassigned buffer and make sure it gets
 * displayed.
 */
+   if (surface->pre) surface->pre->busy = EINA_FALSE;
if (!b->wl_buffer)
  {
 surface->pre = b;

-- 




[EGIT] [core/efl] master 04/05: wayland_shm: Refcount the dmabuf buffer manager

2016-12-06 Thread Derek Foreman
derekf pushed a commit to branch master.

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

commit 7fa02c89946a3583249b0574ae1db43acfcad147
Author: Derek Foreman 
Date:   Tue Dec 6 16:16:10 2016 -0600

wayland_shm: Refcount the dmabuf buffer manager

Because we async render into buffers before the compositor has told us
we can use them, we can end up kicking over to fallback while still
rendering into a buffer.

Refcount the manager to let us clean up properly without crashing when
this happens.
---
 src/modules/evas/engines/wayland_shm/evas_dmabuf.c | 75 ++
 1 file changed, 63 insertions(+), 12 deletions(-)

diff --git a/src/modules/evas/engines/wayland_shm/evas_dmabuf.c 
b/src/modules/evas/engines/wayland_shm/evas_dmabuf.c
index acd434d..41073e0 100644
--- a/src/modules/evas/engines/wayland_shm/evas_dmabuf.c
+++ b/src/modules/evas/engines/wayland_shm/evas_dmabuf.c
@@ -42,6 +42,8 @@ struct _Buffer_Manager
void (*manager_destroy)(void);
void *priv;
void *dl_handle;
+   int refcount;
+   Eina_Bool destroyed;
 };
 
 Buffer_Manager *buffer_manager = NULL;
@@ -316,6 +318,7 @@ _buffer_manager_get(void)
if (!success) goto err_bm;
 
drm_fd = fd;
+   buffer_manager->refcount = 1;
return buffer_manager;
 
 err_bm:
@@ -328,9 +331,16 @@ err_alloc:
 }
 
 static void
-_buffer_manager_destroy(void)
+_buffer_manager_ref(void)
+{
+   buffer_manager->refcount++;
+}
+
+static void
+_buffer_manager_deref(void)
 {
-   if (!buffer_manager) return;
+   buffer_manager->refcount--;
+   if (buffer_manager->refcount || !buffer_manager->destroyed) return;
 
if (buffer_manager->manager_destroy) buffer_manager->manager_destroy();
free(buffer_manager);
@@ -339,6 +349,50 @@ _buffer_manager_destroy(void)
 }
 
 static void
+_buffer_manager_destroy(void)
+{
+   if (buffer_manager->destroyed) return;
+   buffer_manager->destroyed = EINA_TRUE;
+   _buffer_manager_deref();
+}
+
+
+static Buffer_Handle *
+_buffer_manager_alloc(const char *name, int w, int h, unsigned long *stride, 
int32_t *fd)
+{
+   Buffer_Handle *out;
+
+   _buffer_manager_ref();
+   out = buffer_manager->alloc(buffer_manager, name, w, h, stride, fd);
+   if (!out) _buffer_manager_deref();
+   return out;
+}
+
+static void *
+_buffer_manager_map(Dmabuf_Buffer *buf)
+{
+   void *out;
+
+   _buffer_manager_ref();
+   out = buffer_manager->map(buf);
+   if (!out) _buffer_manager_deref();
+   return out;
+}
+
+static void
+_buffer_manager_unmap(Dmabuf_Buffer *buf)
+{
+   buffer_manager->unmap(buf);
+   _buffer_manager_deref();
+}
+static void
+_buffer_manager_discard(Dmabuf_Buffer *buf)
+{
+   buffer_manager->discard(buf);
+   _buffer_manager_deref();
+}
+
+static void
 buffer_release(void *data, struct wl_buffer *buffer EINA_UNUSED)
 {
Dmabuf_Buffer *b = data;
@@ -379,7 +433,7 @@ _fallback(Dmabuf_Surface *s, int w, int h)
if (!b) b = s->current;
if (!b) goto out;
 
-   if (!b->mapping) b->mapping = buffer_manager->map(b);
+   if (!b->mapping) b->mapping = _buffer_manager_map(b);
 
b->busy = EINA_FALSE;
 
@@ -394,7 +448,7 @@ _fallback(Dmabuf_Surface *s, int w, int h)
for (y = 0; y < h; y++)
  memcpy(new_data + y * w * 4, old_data + y * b->stride, w * 4);
surf->funcs.post(surf, NULL, 0, EINA_FALSE);
-   buffer_manager->unmap(b);
+   _buffer_manager_unmap(b);
 
 out:
_internal_evas_dmabuf_surface_destroy(s);
@@ -471,7 +525,7 @@ static const struct zwp_linux_buffer_params_v1_listener 
params_listener =
 static void
 _evas_dmabuf_buffer_unlock(Dmabuf_Buffer *b)
 {
-   buffer_manager->unmap(b);
+   _buffer_manager_unmap(b);
b->mapping = NULL;
b->locked = EINA_FALSE;
 }
@@ -488,9 +542,7 @@ _evas_dmabuf_buffer_destroy(Dmabuf_Buffer *b)
 return;
  }
if (b->fd != -1) close(b->fd);
-   /* The buffer manager may have been destroyed already if we're
-* doing fallback */
-   if (buffer_manager) buffer_manager->discard(b);
+   _buffer_manager_discard(b);
if (b->wl_buffer) wl_buffer_destroy(b->wl_buffer);
b->wl_buffer = NULL;
free(b);
@@ -545,7 +597,7 @@ _evas_dmabuf_surface_data_get(Surface *s, int *w, int *h)
if (h) *h = b->h;
if (b->locked) return b->mapping;
 
-   ptr = buffer_manager->map(b);
+   ptr = _buffer_manager_map(b);
if (!ptr)
  return NULL;
 
@@ -648,17 +700,16 @@ _evas_dmabuf_buffer_init(Dmabuf_Surface *s, int w, int h)
 {
Dmabuf_Buffer *out;
struct zwp_linux_buffer_params_v1 *dp;
-   Buffer_Manager *bm = _buffer_manager_get();
uint32_t flags = 0;
 
-   if (!bm) return NULL;
+   if (!_buffer_manager_get()) return NULL;
 
out = calloc(1, sizeof(Dmabuf_Buffer));
if (!out) return NULL;
 
out->fd = -1;
out->surface = s;
-   out->bh = bm->alloc(bm, "name", w, h, >stride, >fd);
+   out->bh = _buffer_manager_alloc("name", w, h, >stride, >fd);
if (!out->bh)
  {
 free(out);

-- 




[EGIT] [core/efl] master 03/05: wayland_shm: clear busy bit for buffers during dmabuf fallback

2016-12-06 Thread Derek Foreman
derekf pushed a commit to branch master.

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

commit 9b048df6ffbf9c5c24bf2cd7bc645adfe7ac1408
Author: Derek Foreman 
Date:   Tue Dec 6 16:21:49 2016 -0600

wayland_shm: clear busy bit for buffers during dmabuf fallback

If we pre-rendered then we have a busy buffer - we need to clear that
busy bit after reading from the buffer or buffer_destroy won't clean it
up.
---
 src/modules/evas/engines/wayland_shm/evas_dmabuf.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/modules/evas/engines/wayland_shm/evas_dmabuf.c 
b/src/modules/evas/engines/wayland_shm/evas_dmabuf.c
index c75d47d..acd434d 100644
--- a/src/modules/evas/engines/wayland_shm/evas_dmabuf.c
+++ b/src/modules/evas/engines/wayland_shm/evas_dmabuf.c
@@ -380,6 +380,9 @@ _fallback(Dmabuf_Surface *s, int w, int h)
if (!b) goto out;
 
if (!b->mapping) b->mapping = buffer_manager->map(b);
+
+   b->busy = EINA_FALSE;
+
if (!b->mapping) goto out;
 
epd = efl_data_scope_get(surf->info->evas, EVAS_CANVAS_CLASS);

-- 




[EGIT] [core/efl] master 01/05: gl_drm: Allow testing of dmabuf objects

2016-12-06 Thread Derek Foreman
derekf pushed a commit to branch master.

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

commit 4258fa4f70b88a014efd42a503a8b825693428ea
Author: Derek Foreman 
Date:   Tue Dec 6 10:43:18 2016 -0600

gl_drm: Allow testing of dmabuf objects

Enlightenment needs to know if a specific dmabuf format is supported
before it lets clients use it.  This lets E test commit a wayland
dmabuf object without assigning it a buffer.
---
 src/modules/evas/engines/gl_drm/evas_engine.c | 17 +
 1 file changed, 17 insertions(+)

diff --git a/src/modules/evas/engines/gl_drm/evas_engine.c 
b/src/modules/evas/engines/gl_drm/evas_engine.c
index 12889a3..0b37659 100644
--- a/src/modules/evas/engines/gl_drm/evas_engine.c
+++ b/src/modules/evas/engines/gl_drm/evas_engine.c
@@ -1177,6 +1177,23 @@ eng_image_native_set(void *data, void *image, void 
*native)
 NULL, 1,
 
EVAS_COLORSPACE_ARGB);
   }
+else if ((ns) && (ns->type == EVAS_NATIVE_SURFACE_WL_DMABUF))
+  {
+ if (!ns->data.wl_dmabuf.resource)
+   {
+  struct dmabuf_attributes *attr;
+  void *v;
+
+  attr = ns->data.wl_dmabuf.attr;
+  v = import_simple_dmabuf(ob->egl.disp, attr);
+  if (!v) {
+   ns->data.wl_dmabuf.attr = NULL;
+   return NULL;
+}
+  glsym_eglDestroyImage(ob->egl.disp, v);
+  return NULL;
+   }
+  }
 else
   return NULL;
  }

-- 




Re: [E-devel] EDD 2017 location discussion - Vote opened

2016-12-06 Thread Stefan Schmidt
Hello.

On 25/11/16 11:55, Stefan Schmidt wrote:
> Hello.
>
> On 14/11/16 10:11, Stefan Schmidt wrote:
>> Hello.
>>
>> On 04/11/16 11:48, Stefan Schmidt wrote:
>>> Hello.
>>>
>>> After gettign more feedback and proposals here I put out a vote:
>>>
>>> https://phab.enlightenment.org/V27
>>>
>>> Let us know what makes sense to you!
>>
>> We got feedback and preferences form 15 people so far which is great and
>> already gives a direction. (e.g. Paris, Toulouse and Edinburgh are
>> leading with Malta directly behind)
>>
>> This community is bigger than 15 people though. :) If you have not voted
>> yet please do so to help us understand where we should focus on.
>
> We got to 22 votes now. I still miss some of the usual suspects though. :)
>
> Malta and Toulouse are leading with 14 votes so far, followed by Paris
> with 13, Edinburgh with 12 and USA with 11.

25 votes now and the top 3-4 seems to stay the same.

If you have not voted yet, but still want to, you have until the end of 
the year before I close the vote (31.12). Afterwards we will look at the 
top votes and try to find the location which will work best for us.
You can expect another vote for dates in January or February.

regards
Stefan Schmidt

--
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today.http://sdm.link/xeonphi
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [apps/terminology] master 01/01: termpty: handle BSD special case when the other side of the tty pair has quit

2016-12-06 Thread Boris Faure
billiob pushed a commit to branch master.

http://git.enlightenment.org/apps/terminology.git/commit/?id=273a85af0050bb0f604c88dcf0942a60eb848db2

commit 273a85af0050bb0f604c88dcf0942a60eb848db2
Author: Boris Faure 
Date:   Tue Dec 6 21:49:15 2016 +0100

termpty: handle BSD special case when the other side of the tty pair has 
quit
---
 src/bin/termpty.c | 7 +++
 1 file changed, 7 insertions(+)

diff --git a/src/bin/termpty.c b/src/bin/termpty.c
index dcdfdfc..0d5f77d 100644
--- a/src/bin/termpty.c
+++ b/src/bin/termpty.c
@@ -172,6 +172,13 @@ _cb_fd_read(void *data, Ecore_Fd_Handler *fd_handler)
if (ty->fd == -1)
  return ECORE_CALLBACK_CANCEL;
 
+/* it seems the BSDs can not read from this side of the pair if the other side
+ * is closed */
+#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__OpenBSD__) || 
defined(__NetBSD__)
+   if (ty->pid == -1)
+   return ECORE_CALLBACK_CANCEL;
+#endif
+
// read up to 64 * 4096 bytes
for (reads = 0; reads < 64; reads++)
  {

-- 




[EGIT] [core/efl] master 01/01: evas-wayland-shm: Keep tile buffers in sync with size changes

2016-12-06 Thread Christopher Michael
devilhorns pushed a commit to branch master.

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

commit 673b7359178552efcb25a7429942a2d099eaa8a0
Author: Chris Michael 
Date:   Tue Dec 6 14:13:00 2016 -0500

evas-wayland-shm: Keep tile buffers in sync with size changes

Previous patch to not destroy Outbuf on resize should not have removed
this line else software generic tilebuffers will not be in sync with
the updated size.

ref 5ebba4463

Signed-off-by: Chris Michael 
---
 src/modules/evas/engines/wayland_shm/evas_engine.c | 8 +++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/modules/evas/engines/wayland_shm/evas_engine.c 
b/src/modules/evas/engines/wayland_shm/evas_engine.c
index 385c713..410c3b9 100644
--- a/src/modules/evas/engines/wayland_shm/evas_engine.c
+++ b/src/modules/evas/engines/wayland_shm/evas_engine.c
@@ -164,7 +164,13 @@ eng_setup(Evas *eo_evas, void *info)
   goto err;
  }
else if ((einfo->info.wl_surface) && (!einfo->info.hidden))
- eng_output_resize(re, epd->output.w, epd->output.h);
+ {
+eng_output_resize(re, epd->output.w, epd->output.h);
+evas_render_engine_software_generic_update(>generic,
+   re->generic.ob,
+   epd->output.w,
+   epd->output.h);
+ }
 
epd->engine.data.output = re;
if (!epd->engine.data.output)

-- 




[EGIT] [core/efl] master 01/01: examples/evas: use new API for key modifiers per seat

2016-12-06 Thread Bruno Dilly
bdilly pushed a commit to branch master.

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

commit 9941fbc044e1594d64d45e5a88bd4b1bd56d72cc
Author: Bruno Dilly 
Date:   Tue Dec 6 17:06:05 2016 -0200

examples/evas: use new API for key modifiers per seat
---
 src/examples/evas/evas-multiseat-events.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/examples/evas/evas-multiseat-events.c 
b/src/examples/evas/evas-multiseat-events.c
index 986194b..69125b2 100644
--- a/src/examples/evas/evas-multiseat-events.c
+++ b/src/examples/evas/evas-multiseat-events.c
@@ -179,8 +179,9 @@ _key_down_cb(void *data EINA_UNUSED, const Efl_Event *event)
evas_object_name_get(event->object),
efl_input_device_name_get(seat));
 
-   // FIXME use evas_seat_key_modifier_is_set() after PR is merged
-   (void) mods;
+   if (evas_seat_key_modifier_is_set(mods, "Control", seat))
+ fprintf(stdout, "Ctrl is pressed by seat %s\n",
+ efl_input_device_name_get(seat));
 }
 
 static void

-- 




[EGIT] [core/efl] master 01/01: evas-drm: Keep tile buffers in sync with size changes

2016-12-06 Thread Christopher Michael
devilhorns pushed a commit to branch master.

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

commit 29325b790316495455c97a4386261c80ab3af3ec
Author: Chris Michael 
Date:   Tue Dec 6 14:05:19 2016 -0500

evas-drm: Keep tile buffers in sync with size changes

This line should not have been removed from the previous patch. Thanks
to Cedric for catching this.

Signed-off-by: Chris Michael 
---
 src/modules/evas/engines/drm/evas_engine.c | 5 +
 1 file changed, 5 insertions(+)

diff --git a/src/modules/evas/engines/drm/evas_engine.c 
b/src/modules/evas/engines/drm/evas_engine.c
index 7fe688c..4c6ff0f 100644
--- a/src/modules/evas/engines/drm/evas_engine.c
+++ b/src/modules/evas/engines/drm/evas_engine.c
@@ -96,6 +96,11 @@ eng_setup(Evas *evas, void *einfo)
  {
 _outbuf_reconfigure(re->generic.ob, epd->output.w, epd->output.h,
 info->info.rotation, info->info.depth);
+
+evas_render_engine_software_generic_update(>generic,
+   re->generic.ob,
+   epd->output.w,
+   epd->output.h);
  }
 
epd->engine.data.output = re;

-- 




[EGIT] [core/efl] master 01/01: evas-drm: Don't destroy Outbuf on resize

2016-12-06 Thread Christopher Michael
devilhorns pushed a commit to branch master.

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

commit 08bb6b1eec01a2ee05be8004a476a639fe2cd34d
Author: Chris Michael 
Date:   Tue Dec 6 13:17:16 2016 -0500

evas-drm: Don't destroy Outbuf on resize

On an engine resize, we previously would destroy the Outbuf structure.
This patch modifies the code so that on a resize we no longer have to
destroy the old Outbuf and reallocate a new one. Instead, we will just
reconfigure the existing one and update it's properties.

Signed-off-by: Chris Michael 
---
 src/modules/evas/engines/drm/evas_engine.c | 9 ++---
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/src/modules/evas/engines/drm/evas_engine.c 
b/src/modules/evas/engines/drm/evas_engine.c
index 3c198fb..7fe688c 100644
--- a/src/modules/evas/engines/drm/evas_engine.c
+++ b/src/modules/evas/engines/drm/evas_engine.c
@@ -94,13 +94,8 @@ eng_setup(Evas *evas, void *einfo)
  }
else
  {
-Outbuf *ob;
-
-ob = _outbuf_setup(info, epd->output.w, epd->output.h);
-if (!ob) return 0;
-
-evas_render_engine_software_generic_update(>generic, ob,
-   ob->w, ob->h);
+_outbuf_reconfigure(re->generic.ob, epd->output.w, epd->output.h,
+info->info.rotation, info->info.depth);
  }
 
epd->engine.data.output = re;

-- 




[EGIT] [core/efl] master 01/01: eolian: add a reference resolver

2016-12-06 Thread Daniel Kolesa
q66 pushed a commit to branch master.

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

commit 2ffc93ddf9c8fd18ccbb051d3fdc408ac3e9b4ed
Author: Daniel Kolesa 
Date:   Tue Dec 6 19:08:42 2016 +0100

eolian: add a reference resolver

New API function eolian_doc_token_ref_get will resolve the kind of
reference in the given token and extract the necessary data you
might need for further use, for example class and function for
methods, or struct and field for struct field. It also supports
event references that will be added into Eolian later.

EFL will be switched to the new resolver (by changing the validator
code) during the next step.
---
 src/lib/eolian/Eolian.h   |  34 -
 src/lib/eolian/eolian_database.c  | 145 +-
 src/tests/eolian/eolian_parsing.c |  12 ++--
 3 files changed, 183 insertions(+), 8 deletions(-)

diff --git a/src/lib/eolian/Eolian.h b/src/lib/eolian/Eolian.h
index 57c5669..3613482 100644
--- a/src/lib/eolian/Eolian.h
+++ b/src/lib/eolian/Eolian.h
@@ -341,7 +341,6 @@ typedef enum
EOLIAN_DOC_TOKEN_UNKNOWN = -1,
EOLIAN_DOC_TOKEN_TEXT,
EOLIAN_DOC_TOKEN_REF,
-   EOLIAN_DOC_TOKEN_REF_EVENT,
EOLIAN_DOC_TOKEN_MARK_NOTE,
EOLIAN_DOC_TOKEN_MARK_WARNING,
EOLIAN_DOC_TOKEN_MARK_REMARK,
@@ -349,6 +348,20 @@ typedef enum
EOLIAN_DOC_TOKEN_MARKUP_MONOSPACE
 } Eolian_Doc_Token_Type;
 
+typedef enum
+{
+   EOLIAN_DOC_REF_INVALID = 0,
+   EOLIAN_DOC_REF_CLASS,
+   EOLIAN_DOC_REF_FUNC,
+   EOLIAN_DOC_REF_EVENT,
+   EOLIAN_DOC_REF_ALIAS,
+   EOLIAN_DOC_REF_STRUCT,
+   EOLIAN_DOC_REF_STRUCT_FIELD,
+   EOLIAN_DOC_REF_ENUM,
+   EOLIAN_DOC_REF_ENUM_FIELD,
+   EOLIAN_DOC_REF_VAR
+} Eolian_Doc_Ref_Type;
+
 typedef struct _Eolian_Doc_Token
 {
Eolian_Doc_Token_Type type;
@@ -2378,6 +2391,25 @@ EAPI Eolian_Doc_Token_Type 
eolian_doc_token_type_get(const Eolian_Doc_Token *tok
  */
 EAPI char *eolian_doc_token_text_get(const Eolian_Doc_Token *tok);
 
+/*
+ * @brief Get the thing that a reference token references.
+ *
+ * Returns EOLIAN_DOC_REF_INVALID on failure (when not ref token or
+ * invalid ref, but invalid refs don't happen when database is validated).
+ *
+ * When the reference is a class, alias, struct, enum or var, the first data 
arg
+ * is filled. When it's a func, the first data is class and second data is
+ * the respective Eolian_Implement, when it's an event the first data is class
+ * and the second data is the event, when it's a struct field or enum field
+ * the first data is is the struct/enum and the second data is the field.
+ *
+ * @param[in] tok the token
+ * @param[out] data the primary data
+ * @param[out] data2 the secondary data
+ * @return the kind of reference this is
+ */
+EAPI Eolian_Doc_Ref_Type eolian_doc_token_ref_get(const Eolian_Doc_Token *tok, 
const void **data, const void **data2);
+
 #endif
 
 /**
diff --git a/src/lib/eolian/eolian_database.c b/src/lib/eolian/eolian_database.c
index 86fb6bc..5ce1777 100644
--- a/src/lib/eolian/eolian_database.c
+++ b/src/lib/eolian/eolian_database.c
@@ -302,7 +302,7 @@ _get_ref_token(const char *doc, const char **doc_end)
  *doc_end = doc;
 
/* got a reference */
-   return is_event ? EOLIAN_DOC_TOKEN_REF_EVENT : EOLIAN_DOC_TOKEN_REF;
+   return EOLIAN_DOC_TOKEN_REF;
 }
 
 EAPI const char *
@@ -417,7 +417,8 @@ mloop:
return ret->text_end;
 }
 
-EAPI void eolian_doc_token_init(Eolian_Doc_Token *tok)
+EAPI void
+eolian_doc_token_init(Eolian_Doc_Token *tok)
 {
if (!tok)
  return;
@@ -448,6 +449,146 @@ eolian_doc_token_text_get(const Eolian_Doc_Token *tok)
return eina_strbuf_string_steal(buf);
 }
 
+static Eolian_Doc_Ref_Type
+_resolve_event(char *name, const void **data, const void **data2)
+{
+   /* never trust the user */
+   if (name[0] == ',')
+ return EOLIAN_DOC_REF_INVALID;
+
+   char *evname = strrchr(name, '.');
+   if (!evname)
+ return EOLIAN_DOC_REF_INVALID;
+
+   *evname++ = '\0';
+   const Eolian_Class *cl = eolian_class_get_by_name(name);
+   if (!cl)
+ return EOLIAN_DOC_REF_INVALID;
+
+   const Eolian_Event *ev = eolian_class_event_get_by_name(cl, evname);
+   if (!ev)
+ return EOLIAN_DOC_REF_INVALID;
+
+   if (data) *data = cl;
+   if (data2) *data2 = ev;
+   return EOLIAN_DOC_REF_EVENT;
+}
+
+EAPI Eolian_Doc_Ref_Type
+eolian_doc_token_ref_get(const Eolian_Doc_Token *tok, const void **data,
+ const void **data2)
+{
+   if (tok->type != EOLIAN_DOC_TOKEN_REF)
+ return EOLIAN_DOC_REF_INVALID;
+
+   size_t nlen = tok->text_end - tok->text;
+
+   /* events are handled separately */
+   if (tok->text[0] == '[')
+ {
+/* strip brackets */
+size_t elen = nlen - 2;
+char *ename = alloca(elen + 1);
+memcpy(ename, tok->text + 1, elen);
+ename[elen] = '\0';
+return _resolve_event(ename, data, data2);
+ }
+
+   char *name = alloca(nlen 

[EGIT] [core/efl] master 01/01: evas-wayland-shm: Don't destroy Outbuf on resize

2016-12-06 Thread Christopher Michael
devilhorns pushed a commit to branch master.

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

commit 5ebba4463570626f836cfb0b07b647c36aad7825
Author: Chris Michael 
Date:   Tue Dec 6 13:01:35 2016 -0500

evas-wayland-shm: Don't destroy Outbuf on resize

On an engine resize, rather than destroy & recreate the Outbuf
structure (and the associated surface) we can just call the
eng_output_resize function (which in turn will call
outbuf_reconfigure) to update Outbuf with new properties. This saves
us from having to create a whole new Outbuf every time we resize.

Signed-off-by: Chris Michael 
---
 src/modules/evas/engines/wayland_shm/evas_engine.c | 14 +-
 src/modules/evas/engines/wayland_shm/evas_engine.h |  2 +-
 src/modules/evas/engines/wayland_shm/evas_outbuf.c |  3 ++-
 3 files changed, 8 insertions(+), 11 deletions(-)

diff --git a/src/modules/evas/engines/wayland_shm/evas_engine.c 
b/src/modules/evas/engines/wayland_shm/evas_engine.c
index c8e4c19..385c713 100644
--- a/src/modules/evas/engines/wayland_shm/evas_engine.c
+++ b/src/modules/evas/engines/wayland_shm/evas_engine.c
@@ -20,6 +20,8 @@ static Evas_Func func, pfunc;
 Evas_Native_Tbm_Surface_Image_Set_Call  
glsym__evas_native_tbm_surface_image_set = NULL;
 Evas_Native_Tbm_Surface_Stride_Get_Call  
glsym__evas_native_tbm_surface_stride_get = NULL;
 
+static void eng_output_resize(void *data, int w, int h);
+
 /* engine structure data */
 typedef struct _Render_Engine Render_Engine;
 struct _Render_Engine
@@ -162,14 +164,7 @@ eng_setup(Evas *eo_evas, void *info)
   goto err;
  }
else if ((einfo->info.wl_surface) && (!einfo->info.hidden))
- {
-Outbuf *ob;
-
-ob = _evas_outbuf_setup(epd->output.w, epd->output.h, einfo);
-if (ob)  evas_render_engine_software_generic_update(>generic, ob,
-epd->output.w,
-epd->output.h);
- }
+ eng_output_resize(re, epd->output.w, epd->output.h);
 
epd->engine.data.output = re;
if (!epd->engine.data.output)
@@ -218,7 +213,8 @@ eng_output_resize(void *data, int w, int h)
 
_evas_outbuf_reconfigure(re->generic.ob, w, h,
 einfo->info.rotation, einfo->info.depth,
-einfo->info.destination_alpha, resize);
+einfo->info.destination_alpha, resize,
+einfo->info.hidden);
 
evas_common_tilebuf_free(re->generic.tb);
if ((re->generic.tb = evas_common_tilebuf_new(w, h)))
diff --git a/src/modules/evas/engines/wayland_shm/evas_engine.h 
b/src/modules/evas/engines/wayland_shm/evas_engine.h
index 5bfb6c1..2708739 100644
--- a/src/modules/evas/engines/wayland_shm/evas_engine.h
+++ b/src/modules/evas/engines/wayland_shm/evas_engine.h
@@ -147,7 +147,7 @@ void _evas_outbuf_idle_flush(Outbuf *ob);
 
 Render_Engine_Swap_Mode _evas_outbuf_swap_mode_get(Outbuf *ob);
 int _evas_outbuf_rotation_get(Outbuf *ob);
-void _evas_outbuf_reconfigure(Outbuf *ob, int w, int h, int rot, Outbuf_Depth 
depth, Eina_Bool alpha, Eina_Bool resize);
+void _evas_outbuf_reconfigure(Outbuf *ob, int w, int h, int rot, Outbuf_Depth 
depth, Eina_Bool alpha, Eina_Bool resize, Eina_Bool hidden);
 void *_evas_outbuf_update_region_new(Outbuf *ob, int x, int y, int w, int h, 
int *cx, int *cy, int *cw, int *ch);
 void _evas_outbuf_update_region_push(Outbuf *ob, RGBA_Image *update, int x, 
int y, int w, int h);
 void _evas_outbuf_update_region_free(Outbuf *ob, RGBA_Image *update);
diff --git a/src/modules/evas/engines/wayland_shm/evas_outbuf.c 
b/src/modules/evas/engines/wayland_shm/evas_outbuf.c
index fcfb8b9..e801474 100644
--- a/src/modules/evas/engines/wayland_shm/evas_outbuf.c
+++ b/src/modules/evas/engines/wayland_shm/evas_outbuf.c
@@ -344,7 +344,7 @@ _evas_outbuf_rotation_get(Outbuf *ob)
 }
 
 void 
-_evas_outbuf_reconfigure(Outbuf *ob, int w, int h, int rot, Outbuf_Depth 
depth, Eina_Bool alpha, Eina_Bool resize)
+_evas_outbuf_reconfigure(Outbuf *ob, int w, int h, int rot, Outbuf_Depth 
depth, Eina_Bool alpha, Eina_Bool resize, Eina_Bool hidden)
 {
LOGFN(__FILE__, __LINE__, __FUNCTION__);
 
@@ -362,6 +362,7 @@ _evas_outbuf_reconfigure(Outbuf *ob, int w, int h, int rot, 
Outbuf_Depth depth,
ob->rotation = rot;
ob->depth = depth;
ob->priv.destination_alpha = alpha;
+   ob->hidden = hidden;
 
if (ob->hidden) return;
 

-- 




[EGIT] [core/efl] master 01/01: eo: guard lifecycle obj log inside spinlock.

2016-12-06 Thread Gustavo Sverzut Barbieri
barbieri pushed a commit to branch master.

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

commit 261b0faa54010397f28d50830a4a1d33bbf0c25d
Author: Gustavo Sverzut Barbieri 
Date:   Tue Dec 6 14:38:34 2016 -0200

eo: guard lifecycle obj log inside spinlock.

since the array can be pushed or looked up from multiple threads we
must have a lock in place.
---
 src/lib/eo/eo.c | 13 -
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/src/lib/eo/eo.c b/src/lib/eo/eo.c
index 3e1a727..c4c6a5f 100644
--- a/src/lib/eo/eo.c
+++ b/src/lib/eo/eo.c
@@ -53,6 +53,7 @@ static Eina_Inarray _eo_log_objs_no_debug;
 static double _eo_log_time_start;
 #ifdef HAVE_BACKTRACE
 static Eina_Array _eo_log_objs;
+static Eina_Spinlock _eo_log_objs_lock;
 #endif
 #else
 static inline void _eo_log_obj_init(void) { }
@@ -2467,6 +2468,7 @@ _eo_log_obj_find(const Eo_Id id, const Eo_Log_Obj_Entry 
**added, const Eo_Log_Ob
*added = NULL;
*deleted = NULL;
 
+   eina_spinlock_take(&_eo_log_objs_lock);
EINA_ARRAY_ITER_NEXT(&_eo_log_objs, idx, entry, it)
  {
 if (EINA_UNLIKELY(id == entry->id))
@@ -2480,6 +2482,7 @@ _eo_log_obj_find(const Eo_Id id, const Eo_Log_Obj_Entry 
**added, const Eo_Log_Ob
}
   }
  }
+   eina_spinlock_release(&_eo_log_objs_lock);
 }
 
 static void
@@ -2610,6 +2613,7 @@ static Eo_Log_Obj_Entry *
 _eo_log_obj_entry_new_and_add(const _Eo_Object *obj, Eina_Bool is_free, 
uint8_t size, void *const *bt)
 {
Eo_Log_Obj_Entry *entry;
+   Eina_Bool ret;
 
entry = malloc(sizeof(Eo_Log_Obj_Entry) + size * sizeof(void *));
if (EINA_UNLIKELY(!entry)) return NULL;
@@ -2623,7 +2627,10 @@ _eo_log_obj_entry_new_and_add(const _Eo_Object *obj, 
Eina_Bool is_free, uint8_t
memcpy(entry->bt, bt, size * sizeof(void *));
 
if (EINA_UNLIKELY(!entry)) return NULL;
-   if (!eina_array_push(&_eo_log_objs, entry))
+   eina_spinlock_take(&_eo_log_objs_lock);
+   ret = eina_array_push(&_eo_log_objs, entry);
+   eina_spinlock_release(&_eo_log_objs_lock);
+   if (!ret)
  {
 free(entry);
 return NULL;
@@ -2733,6 +2740,7 @@ _eo_log_obj_init(void)
 
 #ifdef HAVE_BACKTRACE
eina_array_step_set(&_eo_log_objs, sizeof(Eina_Array), 4096);
+   eina_spinlock_new(&_eo_log_objs_lock);
 #endif
eina_inarray_step_set(&_eo_log_objs_debug, sizeof(Eina_Inarray), 
sizeof(Eina_Slice), 0);
eina_inarray_step_set(&_eo_log_objs_no_debug, sizeof(Eina_Inarray), 
sizeof(Eina_Slice), 0);
@@ -2834,9 +2842,12 @@ _eo_log_obj_shutdown(void)
Eina_Array_Iterator it;
unsigned int idx;
 
+   eina_spinlock_take(&_eo_log_objs_lock);
EINA_ARRAY_ITER_NEXT(&_eo_log_objs, idx, entry, it)
  _eo_log_obj_entry_free(entry);
eina_array_flush(&_eo_log_objs);
+   eina_spinlock_release(&_eo_log_objs_lock);
+   eina_spinlock_free(&_eo_log_objs_lock);
 #endif
 
eina_inarray_flush(&_eo_log_objs_debug);

-- 




[EGIT] [core/enlightenment] master 01/02: revert all sizing commits to ibar/ibox for the past year

2016-12-06 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit 3b1242e3140623fd01843edf39b7d3e6a7a60b89
Author: Mike Blumenkrantz 
Date:   Tue Dec 6 10:49:31 2016 -0500

revert all sizing commits to ibar/ibox for the past year

the assumption that this code was making assumptions about elm_box
internals based on a shallow reading of the code was incorrect, and
the resulting "fix" (and subsequent attempts to bandaid it) has left these
gadgets in an unusable state for the past half year.

disappoint.jpg

this reverts the following commits:

f97f8f61aca18e3be3f170e0a205ad728ba269e5
ebfa4a97cd6d9e801c9dd2dc0d169f4bd8a0bbc5
50030dc69346c209109c36bb41631b176c85b2c5
42aa6be35931e51b8dab5ed6629c3054595c82a8
504706d45ac2858be91721bd398d0c36a9bffd2d
b1f608c5e607c2101862eb4a63d53bef9cc58761
b107dc1cdc18b5edcdb44e74e0c69f0bb0e65cb7
3fc195cd9f926df1c92d906992d4e4c4ec5f3fe9
---
 src/modules/ibar/e_mod_main.c | 59 ++-
 src/modules/ibox/e_mod_main.c | 10 
 2 files changed, 30 insertions(+), 39 deletions(-)

diff --git a/src/modules/ibar/e_mod_main.c b/src/modules/ibar/e_mod_main.c
index c4f01b5..8171090 100644
--- a/src/modules/ibar/e_mod_main.c
+++ b/src/modules/ibar/e_mod_main.c
@@ -285,7 +285,7 @@ _gc_init(E_Gadcon *gc, const char *name, const char *id, 
const char *style)
 drop, 3, x, y, w, h);
evas_object_event_callback_add(b->o_outerbox, EVAS_CALLBACK_MOVE,
   _ibar_cb_obj_moveresize, inst);
-   evas_object_event_callback_add(b->o_outerbox, 
EVAS_CALLBACK_CHANGED_SIZE_HINTS,
+   evas_object_event_callback_add(b->o_outerbox, EVAS_CALLBACK_RESIZE,
   _ibar_cb_obj_moveresize, inst);
ibar_config->instances = eina_list_append(ibar_config->instances, inst);
_ibar_resize_handle(b);
@@ -526,7 +526,7 @@ _ibar_empty_handle(IBar *b)
  evas_object_color_set(b->o_empty, 0, 0, 0, 0);
  evas_object_show(b->o_empty);
  elm_box_pack_end(b->o_box, b->o_empty);
- evas_object_size_hint_min_get(b->o_box, , );
+ evas_object_geometry_get(b->o_box, NULL, NULL, , );
  if (elm_box_horizontal_get(b->o_box))
w = h;
  else
@@ -638,50 +638,41 @@ static void
 _ibar_resize_handle(IBar *b)
 {
IBar_Icon *ic;
-   Evas_Coord w, h, ww = 0, hh = 0;
+   Evas_Coord w, h;
 
if (!b->inst->gcc) return;
-
-   if (b->inst->gcc->gadcon->shelf)
- {
-/* we are in a shelf */
-ww = hh = b->inst->gcc->gadcon->shelf->cfg->size * 
elm_config_scale_get();
- }
-   else if (b->inst->gcc->max.w || b->inst->gcc->max.h)
- {
-evas_object_geometry_get(b->o_outerbox, NULL, NULL, , );
-ww = MIN(b->inst->gcc->max.w, ww);
-hh = MIN(b->inst->gcc->max.h, hh);
- }
-
-   /* Fallback to a size for the case noone gives a max size and no shelf 
config is there */
-   if (ww == 0) ww = 40;
-   if (hh == 0) hh = 40;
-
-
-   if (elm_box_horizontal_get(b->o_box)) ww = hh;
-   else hh = ww;
+   elm_box_recalculate(b->o_box);
+   elm_box_recalculate(b->o_outerbox);
+   if (!e_gadcon_site_is_desktop(b->inst->gcc->gadcon->location->site))
+ evas_object_size_hint_min_get(b->o_outerbox, , );
+   else
+ evas_object_geometry_get(b->o_outerbox, NULL, NULL, , );
+   if (b->inst->gcc->max.w)
+ w = MIN(w, b->inst->gcc->max.w);
+   if (b->inst->gcc->max.h)
+ h = MIN(h, b->inst->gcc->max.h);
+   if (elm_box_horizontal_get(b->o_box))
+ w = h;
+   else
+ h = w;
EINA_INLIST_FOREACH(b->icons, ic)
  {
-evas_object_size_hint_min_set(ic->o_holder, ww, hh);
-evas_object_size_hint_max_set(ic->o_holder, ww, hh);
+evas_object_size_hint_min_set(ic->o_holder, w, h);
+evas_object_size_hint_max_set(ic->o_holder, w, h);
  }
if (b->o_sep)
  {
-if (_is_vertical(b->inst)) hh = 16 * e_scale;
-else ww = 16 * e_scale;
+if (_is_vertical(b->inst))
+  h = 16 * e_scale;
+else
+  w = 16 * e_scale;
 evas_object_size_hint_min_set(b->o_sep, 8, 8);
-evas_object_size_hint_max_set(b->o_sep, ww, hh);
+evas_object_size_hint_max_set(b->o_sep, w, h);
  }
elm_box_recalculate(b->o_box);
elm_box_recalculate(b->o_outerbox);
-   evas_object_smart_calculate(b->o_outerbox);
-   evas_object_smart_calculate(b->o_box);
evas_object_size_hint_min_get(b->o_outerbox, , );
-   if (b->inst->gcc->max.w) w = MIN(w, b->inst->gcc->max.w);
-   if (b->inst->gcc->max.h) h = MIN(h, b->inst->gcc->max.h);
-   evas_object_resize(b->o_outerbox, w, h);
-
+   if ((!w) || (!h)) return;
e_gadcon_client_min_size_set(b->inst->gcc, w, h);
e_gadcon_client_aspect_set(b->inst->gcc, w, h);
 }
diff --git 

[EGIT] [core/enlightenment] master 02/02: maintain "empty" object's size hints when ibar/ibox resizes

2016-12-06 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit fd6b264b1d726a3109332e0ca3a649f52d177d95
Author: Mike Blumenkrantz 
Date:   Tue Dec 6 11:23:19 2016 -0500

maintain "empty" object's size hints when ibar/ibox resizes

the sizing issue in all of these tickets was caused by the "empty" object
being deleted, thus allowing the box to reset to 0x0 size hints and
returning this value as the overall size during recalc; the result is that
all icons would be sized at 0x0 instead of using the preserved orient size
as expected

fix T4509, T4647, T4830, T4733, T4524
---
 src/modules/ibar/e_mod_main.c | 44 ++-
 src/modules/ibox/e_mod_main.c | 40 ---
 2 files changed, 34 insertions(+), 50 deletions(-)

diff --git a/src/modules/ibar/e_mod_main.c b/src/modules/ibar/e_mod_main.c
index 8171090..6ecbe14 100644
--- a/src/modules/ibar/e_mod_main.c
+++ b/src/modules/ibar/e_mod_main.c
@@ -511,34 +511,19 @@ _ibar_cb_empty_mouse_down(void *data, Evas *e 
EINA_UNUSED, Evas_Object *obj EINA
 static void
 _ibar_empty_handle(IBar *b)
 {
-   if (!b->icons)
+   if (!b->o_empty)
  {
-if (!b->o_empty)
-  {
- Evas_Coord w, h;
-
- b->o_empty = 
evas_object_rectangle_add(evas_object_evas_get(b->o_box));
- E_EXPAND(b->o_empty);
- E_FILL(b->o_empty);
- evas_object_event_callback_add(b->o_empty,
-EVAS_CALLBACK_MOUSE_DOWN,
-_ibar_cb_empty_mouse_down, b);
- evas_object_color_set(b->o_empty, 0, 0, 0, 0);
- evas_object_show(b->o_empty);
- elm_box_pack_end(b->o_box, b->o_empty);
- evas_object_geometry_get(b->o_box, NULL, NULL, , );
- if (elm_box_horizontal_get(b->o_box))
-   w = h;
- else
-   h = w;
- evas_object_size_hint_min_set(b->o_empty, w, h);
-  }
- }
-   else if (b->o_empty)
- {
-evas_object_del(b->o_empty);
-b->o_empty = NULL;
+b->o_empty = evas_object_rectangle_add(evas_object_evas_get(b->o_box));
+E_EXPAND(b->o_empty);
+E_FILL(b->o_empty);
+evas_object_event_callback_add(b->o_empty,
+   EVAS_CALLBACK_MOUSE_DOWN,
+   _ibar_cb_empty_mouse_down, b);
+evas_object_color_set(b->o_empty, 0, 0, 0, 0);
  }
+   if (b->icons) return;
+   evas_object_show(b->o_empty);
+   elm_box_pack_end(b->o_box, b->o_empty);
 }
 
 static void
@@ -655,6 +640,13 @@ _ibar_resize_handle(IBar *b)
  w = h;
else
  h = w;
+   if (w || h)
+ evas_object_size_hint_min_set(b->o_empty, w, h);
+   if (b->icons && evas_object_visible_get(b->o_empty))
+ {
+elm_box_unpack(b->o_box, b->o_empty);
+evas_object_hide(b->o_empty);
+ }
EINA_INLIST_FOREACH(b->icons, ic)
  {
 evas_object_size_hint_min_set(ic->o_holder, w, h);
diff --git a/src/modules/ibox/e_mod_main.c b/src/modules/ibox/e_mod_main.c
index 254bd62..df755d7 100644
--- a/src/modules/ibox/e_mod_main.c
+++ b/src/modules/ibox/e_mod_main.c
@@ -372,32 +372,17 @@ _ibox_cb_empty_mouse_down(void *data, Evas *e 
EINA_UNUSED, Evas_Object *obj EINA
 static void
 _ibox_empty_handle(IBox *b)
 {
-   if (!b->icons)
+   if (!b->o_empty)
  {
-if (!b->o_empty)
-  {
- Evas_Coord w, h;
-
- b->o_empty = 
evas_object_rectangle_add(evas_object_evas_get(b->o_box));
- evas_object_event_callback_add(b->o_empty, 
EVAS_CALLBACK_MOUSE_DOWN, _ibox_cb_empty_mouse_down, b);
- evas_object_color_set(b->o_empty, 0, 0, 0, 0);
- evas_object_show(b->o_empty);
- elm_box_pack_end(b->o_box, b->o_empty);
- evas_object_geometry_get(b->o_box, NULL, NULL, , );
- if (elm_box_horizontal_get(b->o_box))
-   w = h;
- else
-   h = w;
- E_EXPAND(b->o_empty);
- E_FILL(b->o_empty);
- evas_object_size_hint_min_set(b->o_empty, w, h);
-  }
- }
-   else if (b->o_empty)
- {
-evas_object_del(b->o_empty);
-b->o_empty = NULL;
+b->o_empty = evas_object_rectangle_add(evas_object_evas_get(b->o_box));
+evas_object_event_callback_add(b->o_empty, EVAS_CALLBACK_MOUSE_DOWN, 
_ibox_cb_empty_mouse_down, b);
+evas_object_color_set(b->o_empty, 0, 0, 0, 0);
+E_EXPAND(b->o_empty);
+E_FILL(b->o_empty);
  }
+   if (b->icons) return;
+   evas_object_show(b->o_empty);
+   elm_box_pack_end(b->o_box, b->o_empty);
 }
 
 static void
@@ -480,6 +465,13 @@ _ibox_resize_handle(IBox *b)
  w = h;
else
  h = w;
+   if (w || h)
+ 

[EGIT] [core/efl] master 01/01: eo: guard all efl_super() checks under EO_DEBUG.

2016-12-06 Thread Gustavo Sverzut Barbieri
barbieri pushed a commit to branch master.

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

commit 79d44f212eb8f2dc774fe9528bad6af6c5418bce
Author: Gustavo Sverzut Barbieri 
Date:   Tue Dec 6 14:24:59 2016 -0200

eo: guard all efl_super() checks under EO_DEBUG.

Tom is worried about performance hit (god, checking a bit in a pointer
we'll fetch to memory anyway, since we return it masked), so guard
under EO_DEBUG.
---
 src/lib/eo/eo.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/lib/eo/eo.c b/src/lib/eo/eo.c
index 9c9a163..3e1a727 100644
--- a/src/lib/eo/eo.c
+++ b/src/lib/eo/eo.c
@@ -373,8 +373,8 @@ efl_super(const Eo *obj, const Efl_Class *cur_klass)
 {
EO_CLASS_POINTER_GOTO(cur_klass, klass, err);
 
-   if (EINA_UNLIKELY(!_eo_is_a_obj(obj) && !_eo_is_a_class(obj))) goto err_obj;
 #ifdef EO_DEBUG
+   if (EINA_UNLIKELY(!_eo_is_a_obj(obj) && !_eo_is_a_class(obj))) goto err_obj;
if (EINA_UNLIKELY(!efl_isa(obj, cur_klass))) goto err_obj_hierarchy;
 #endif
 
@@ -386,10 +386,10 @@ efl_super(const Eo *obj, const Efl_Class *cur_klass)
 err:
_EO_POINTER_ERR(cur_klass, "Class (%p) is an invalid ref.", cur_klass);
return NULL;
+#ifdef EO_DEBUG
 err_obj:
_EO_POINTER_ERR(obj, "Object (%p) is an invalid ref, class=%p (%s).", obj, 
cur_klass, efl_class_name_get(cur_klass));
return NULL;
-#ifdef EO_DEBUG
 err_obj_hierarchy:
_EO_POINTER_ERR(obj, "Object (%p) class=%p (%s) is not an instance of 
class=%p (%s).", obj, efl_class_get(obj), efl_class_name_get(obj), cur_klass, 
efl_class_name_get(cur_klass));
 #endif

-- 




[EGIT] [core/efl] master 02/02: all: use void if we really want to make sure we do not accept parameters

2016-12-06 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit e90622ec41460165192b98ec2fe1aacda61937bc
Author: Stefan Schmidt 
Date:   Tue Dec 6 14:33:24 2016 +0100

all: use void if we really want to make sure we do not accept parameters

In C we need this to make clear that we really do not accept parameters.
Found by the smatch source code matcher. I had run and fixed this before
but it seems to creep in again over time.
---
 src/lib/efl/interfaces/efl_model_common.c | 2 +-
 src/lib/eina/eina_debug_monitor.c | 2 +-
 src/lib/eo/eo_add_fallback.c  | 2 +-
 src/lib/evas/canvas/evas_canvas3d_eet.c   | 6 +++---
 src/lib/evas/canvas/evas_gl.c | 2 +-
 src/lib/evas/common3d/save_load/evas_model_load_save_common.c | 2 +-
 src/lib/evas/cserve2/evas_cs2_client.c| 4 ++--
 src/lib/evas/filters/evas_filter.c| 4 ++--
 src/lib/evas/main.c   | 2 +-
 src/modules/evas/model_loaders/obj/evas_model_load_obj.c  | 2 +-
 src/static_libs/draw/draw_main.c  | 2 +-
 src/static_libs/draw/draw_main_neon.c | 2 +-
 12 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/src/lib/efl/interfaces/efl_model_common.c 
b/src/lib/efl/interfaces/efl_model_common.c
index 3b32205..afe6a04 100644
--- a/src/lib/efl/interfaces/efl_model_common.c
+++ b/src/lib/efl/interfaces/efl_model_common.c
@@ -22,7 +22,7 @@ static const char EFL_MODEL_ERROR_PERMISSION_DENIED_STR[] = 
"Permission denied";
 static const char EFL_MODEL_ERROR_INCORRECT_VALUE_STR[]   = "Incorrect value";
 
 EAPI int
-efl_model_init()
+efl_model_init(void)
 {
EFL_MODEL_ERROR_INCORRECT_VALUE = eina_error_msg_static_register(
EFL_MODEL_ERROR_INCORRECT_VALUE_STR);
diff --git a/src/lib/eina/eina_debug_monitor.c 
b/src/lib/eina/eina_debug_monitor.c
index ed65a34..06e939b 100644
--- a/src/lib/eina/eina_debug_monitor.c
+++ b/src/lib/eina/eina_debug_monitor.c
@@ -648,7 +648,7 @@ _eina_debug_monitor_signal_init(void)
 }
 
 static const char *
-_socket_home_get()
+_socket_home_get(void)
 {
// get possible debug daemon socket directory base
const char *dir = getenv("XDG_RUNTIME_DIR");
diff --git a/src/lib/eo/eo_add_fallback.c b/src/lib/eo/eo_add_fallback.c
index e00d7e8..c38a827 100644
--- a/src/lib/eo/eo_add_fallback.c
+++ b/src/lib/eo/eo_add_fallback.c
@@ -64,7 +64,7 @@ _eo_call_stack_mem_free(void *ptr, size_t size)
 }
 
 static Efl_Object_Call_Stack *
-_eo_call_stack_create()
+_eo_call_stack_create(void)
 {
Efl_Object_Call_Stack *stack;
 
diff --git a/src/lib/evas/canvas/evas_canvas3d_eet.c 
b/src/lib/evas/canvas/evas_canvas3d_eet.c
index 0c43e06..ca24450 100644
--- a/src/lib/evas/canvas/evas_canvas3d_eet.c
+++ b/src/lib/evas/canvas/evas_canvas3d_eet.c
@@ -27,7 +27,7 @@ _evas_canvas3d_eet_file_new(void)
 }
 
 Eet_Data_Descriptor*
-_evas_canvas3d_eet_file_get()
+_evas_canvas3d_eet_file_get(void)
 {
if(_file_descriptor == NULL)
  _evas_canvas3d_eet_file_init();
@@ -35,7 +35,7 @@ _evas_canvas3d_eet_file_get()
return _file_descriptor;
 }
 void
-_evas_canvas3d_eet_file_init()
+_evas_canvas3d_eet_file_init(void)
 {
 /* initialization of bonding between structure units in eet file */
Eet_Data_Descriptor_Class eddc;
@@ -158,7 +158,7 @@ _evas_canvas3d_eet_file_init()
 }
 
 void
-_evas_canvas3d_eet_descriptor_shutdown()
+_evas_canvas3d_eet_descriptor_shutdown(void)
 {
eet_data_descriptor_free(_geometry_descriptor);
_geometry_descriptor = NULL;
diff --git a/src/lib/evas/canvas/evas_gl.c b/src/lib/evas/canvas/evas_gl.c
index 5a71f12..0f4760c 100644
--- a/src/lib/evas/canvas/evas_gl.c
+++ b/src/lib/evas/canvas/evas_gl.c
@@ -196,7 +196,7 @@ evas_gl_free(Evas_GL *evas_gl)
 }
 
 EAPI Evas_GL_Config *
-evas_gl_config_new()
+evas_gl_config_new(void)
 {
Evas_GL_Config *cfg;
 
diff --git a/src/lib/evas/common3d/save_load/evas_model_load_save_common.c 
b/src/lib/evas/common3d/save_load/evas_model_load_save_common.c
index 8c12914..925793b 100644
--- a/src/lib/evas/common3d/save_load/evas_model_load_save_common.c
+++ b/src/lib/evas/common3d/save_load/evas_model_load_save_common.c
@@ -26,7 +26,7 @@
 
 /* create new header */
 Evas_Model_Load_Save_Header
-evas_model_load_save_header_new()
+evas_model_load_save_header_new(void)
 {
Evas_Model_Load_Save_Header header;
 
diff --git a/src/lib/evas/cserve2/evas_cs2_client.c 
b/src/lib/evas/cserve2/evas_cs2_client.c
index 62f0bfe..626d79e 100644
--- a/src/lib/evas/cserve2/evas_cs2_client.c
+++ b/src/lib/evas/cserve2/evas_cs2_client.c
@@ -306,7 +306,7 @@ _shared_index_close(Shared_Index *si)
 }
 
 static void
-_shared_index_close_all()
+_shared_index_close_all(void)
 {
DBG("Closing all index 

Re: [E-devel] [EGIT] [core/efl] master 03/03: eo: allow valgrind-like tracking of object lifecycle.

2016-12-06 Thread Gustavo Sverzut Barbieri
hi all,

since now eo_debug will have -h/--help, -l/--lifecycle-debug and
-L/--lifecycle-no-debug. As --help says:

Usage:

./src/scripts/eo/eo_debug [options]  [executable parameters]

Options:
-l, --lifecycle-debug[=class1,class2]   Turn on debug for object
lifecycle, optionally provides
a whitelist of classes to
be allowed.
-L, --lifecycle-no-debug=class1,class2  Disable lifecycle for the
selected classes.
-h, --help  This message.


It will also use eina_btlog by default on its output, this makes user
life much easier as he will see real function names, files and lines.


On Mon, Dec 5, 2016 at 1:30 AM, Gustavo Sverzut Barbieri
 wrote:
> On Sun, Dec 4, 2016 at 11:19 PM, Jean-Philippe André  
> wrote:
>> Hi Gustavo,
>>
>> On 3 December 2016 at 08:17, Gustavo Sverzut Barbieri 
>> wrote:
>>
>>> barbieri pushed a commit to branch master.
>>>
>>> http://git.enlightenment.org/core/efl.git/commit/?id=227463b
>>> dde43bc9095b75f4ef19f9fef9a742f04
>>>
>>> commit 227463bdde43bc9095b75f4ef19f9fef9a742f04
>>> Author: Gustavo Sverzut Barbieri 
>>> Date:   Fri Dec 2 20:48:37 2016 -0200
>>>
>>> eo: allow valgrind-like tracking of object lifecycle.
>>>
>>> Eo pointer indirection is super nice as it avoids you to access
>>> invalid memory, but this extra checks inhibits valgrind's own tracking
>>> of memory lifecycle, usually it would report when the object was
>>> created and when the object is deleted, both as stack traces.
>>>
>>> This commits introduces logging of object creation and destruction
>>> under its own eina_log_domain and controlled by EO_LIFECYCLE_DEBUG and
>>> EO_LIFECYCLE_NO_DEBUG envvars. These will only be available if
>>> compiled with EO_DEBUG, thus shouldn't cause any performance hits on
>>> production code.
>>>
>>
>> So this should basically be used in conjunction with the existing eo_debug
>> infrastructure?
>> Why not improve eo_debug itself? (eg. add options to the script)
>
> yes, you need eo_debug (libeo_dbg.so). You mean some options to
> eo_debug and then it would export these envvars? sounds ok
>
>
> --
> Gustavo Sverzut Barbieri
> --
> Mobile: +55 (16) 99354-9890



-- 
Gustavo Sverzut Barbieri
--
Mobile: +55 (16) 99354-9890

--
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today.http://sdm.link/xeonphi
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 01/02: eina: fix same wrong indenting

2016-12-06 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit 9d37fa2b8be5abcadaad14a7c4b3fe02afafc0ac
Author: Stefan Schmidt 
Date:   Tue Dec 6 17:03:59 2016 +0100

eina: fix same wrong indenting

Brought up by running smatch. We have way to many of such things in tree 
though
to fix them all without annoying a lot of people. I will just stop here.
---
 src/lib/eina/eina_counter.c | 2 +-
 src/lib/eina/eina_crc.c | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/lib/eina/eina_counter.c b/src/lib/eina/eina_counter.c
index 533d215..08c6583 100644
--- a/src/lib/eina/eina_counter.c
+++ b/src/lib/eina/eina_counter.c
@@ -148,7 +148,7 @@ eina_counter_free(Eina_Counter *counter)
 free(clk);
  }
 
-free(counter);
+   free(counter);
 }
 
 EAPI void
diff --git a/src/lib/eina/eina_crc.c b/src/lib/eina/eina_crc.c
index e509dc8..69d0b23 100644
--- a/src/lib/eina/eina_crc.c
+++ b/src/lib/eina/eina_crc.c
@@ -312,9 +312,9 @@ _eina_crc(const char *data, int len, unsigned int seed, 
Eina_Bool start_stream)
 len -= 8;
  }
 
-  const char* currChar = (char*) curr;
-  while (len--)
+   const char* currChar = (char*) curr;
+   while (len--)
  crc = (crc >> 8) ^ table[0][(crc & 0xFF) ^ *currChar++];
 
-  return ~crc;
+   return ~crc;
 }

-- 




[EGIT] [core/efl] master 02/03: eina_btlog: allows continuous running on input, flush when possible.

2016-12-06 Thread Gustavo Sverzut Barbieri
barbieri pushed a commit to branch master.

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

commit 83425483569bb63528e0616f36006f6ec2cb14fe
Author: Gustavo Sverzut Barbieri 
Date:   Tue Dec 6 14:00:55 2016 -0200

eina_btlog: allows continuous running on input, flush when possible.

eina_btlog will make a table of the backtrace and then must compute
columns length.

However, if not running in such mode (ie: show_compact/-c), we don't
need to queue lines or compute column lengths.

Also, now that we accept non-backtrace lines, like other output
interleaved, then flush the table once such line is found, this will
restart the table columns for the next output, but at least allows
eina_btlog to run on a live output, such as:

   myapp 2>&1 | eina_btlog
---
 src/bin/eina/eina_btlog.c | 11 +++
 1 file changed, 11 insertions(+)

diff --git a/src/bin/eina/eina_btlog.c b/src/bin/eina/eina_btlog.c
index fff97d8..0be9301 100644
--- a/src/bin/eina/eina_btlog.c
+++ b/src/bin/eina/eina_btlog.c
@@ -432,10 +432,17 @@ main(int argc, char **argv)
 return 1;
  }
 
+ repeat:
while (fgets(buf, sizeof(buf) - 1, stdin))
  {
 btl = bt_append(btl, buf);
+if (show_compact) goto do_show;
+bt = eina_list_last_data_get(btl);
+if (bt && !bt->bin_dir) break; /* flush once first non-bt is found */
  }
+
+   /* compute columns for expanded display */
+   for (i = 0; i < 6; i++) cols[i] = 0;
EINA_LIST_FOREACH(btl, l, bt)
  {
 if (!bt->bin_dir) continue;
@@ -456,6 +463,8 @@ main(int argc, char **argv)
 len = strlen(bt->func_name);
 if (len > cols[5]) cols[5] = len;
  }
+
+ do_show:
EINA_LIST_FOREACH(btl, l, bt)
  {
 if (bt->comment && show_comments)
@@ -505,6 +514,8 @@ main(int argc, char **argv)
 free(bt->comment);
 free(bt);
  }
+   /* if not EOF, then we just flushed due non-bt line, try again */
+   if (!feof(stdin)) goto repeat;
 
eina_shutdown();
 

-- 




[EGIT] [core/efl] master 03/03: eo_debug: add lifecycle debug options, allow run-in-tree and use eina_btlog.

2016-12-06 Thread Gustavo Sverzut Barbieri
barbieri pushed a commit to branch master.

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

commit 678e8dfdc377e304bbe8e0617de1442a04a8c873
Author: Gustavo Sverzut Barbieri 
Date:   Tue Dec 6 14:06:54 2016 -0200

eo_debug: add lifecycle debug options, allow run-in-tree and use eina_btlog.

As usual with our code, EFL_RUN_IN_TREE=1 will lead to usage of
binaries from the current build dir instead of system.

To make user life easier, add -l/--lifecycle-debug and
-L/--lifecycle-no-debug options, as well as -h/--help. The
lifecycle-debug option will export the correct environment variables,
such as EO_LIFECYCLE_DEBUG, EO_LIFECYCLE_NO_DEBUG and
EINA_LOG_LEVELS=eo_lifecycle:4 if no such level was set for that
domain.

Last but not least, pass all command's stderr thru eina_btlog so
backtraces are automatically translated to function names, files and
lines. This one was a bit trickier to respect colors and stdout/stderr
contents, see comments in the script.
---
 src/scripts/eo/eo_debug.in | 93 +-
 1 file changed, 91 insertions(+), 2 deletions(-)

diff --git a/src/scripts/eo/eo_debug.in b/src/scripts/eo/eo_debug.in
index a289efa..587bcad 100644
--- a/src/scripts/eo/eo_debug.in
+++ b/src/scripts/eo/eo_debug.in
@@ -1,9 +1,98 @@
 #!/bin/sh
 prefix="@prefix@"
 exec_prefix="@exec_prefix@"
+
+check_args=1
+while [ $# -ge 1 -a $check_args -eq 1 ]; do
+case "$1" in
+-l*|--lifecycle-debug*)
+ARG="$1"
+shift
+CLASSES=`echo "$ARG" | cut -d= -f2`
+if [ "$CLASSES" = "$ARG" -o -z "$CLASSES" ]; then
+CLASSES=1
+fi
+export EO_LIFECYCLE_DEBUG=$CLASSES
+;;
+
+-L*|--lifecycle-no-debug*)
+ARG="$1"
+shift
+CLASSES=`echo "$ARG" | cut -d= -f2`
+if [ "$CLASSES" = "$ARG" -o -z "$CLASSES" ]; then
+echo "ERROR: missing option parameter (Classes to avoid 
lifecycle debug)" >&2
+exit 1
+fi
+export EO_LIFECYCLE_NO_DEBUG=$CLASSES
+;;
+
+-h|--help)
+echo "Usage:"
+echo
+echo "$0 [options]  [executable parameters]"
+echo
+echo "Options:"
+echo "-l, --lifecycle-debug[=class1,class2]   Turn on debug 
for object "
+echo "lifecycle, 
optionally provides "
+echo "a whitelist of 
classes to be allowed."
+echo "-L, --lifecycle-no-debug=class1,class2  Disable 
lifecycle for the"
+echo "selected 
classes."
+echo "-h, --help  This message."
+exit 0
+;;
+
+*)
+check_args=0
+break
+esac
+done
+
 if [ $# -lt 1 ]
 then
-   echo "Usage: $0  [executable parameters]"
+echo "Usage: $0 [options]  [executable parameters]" >&2
+exit 1
+fi
+
+if [ -z "${EFL_RUN_IN_TREE}" ]; then
+export LD_PRELOAD="@libdir@/libeo_dbg.so"
+btlog_bin=eina_btlog
+else
+bd=$PWD
+while [ ! -d "${bd}/src/lib/eo/.libs" ]; do
+bd=`dirname "$bd"`
+if [ $bd = / ]; then
+echo "ERROR: EFL_RUN_IN_TREE must be used from inside EFL build 
tree" >&2
+exit 1
+fi
+done
+export LD_PRELOAD="$bd/src/lib/eo/.libs/libeo_dbg.so"
+btlog_bin="$bd/src/bin/eina/eina_btlog"
+fi
+
+if [ "${EINA_LOG_COLOR_DISABLE}" = 1 ]; then
+btlog_opts="-n"
+elif [ ! -t 1 ]; then
+btlog_opts="-n"
 else
-   LD_PRELOAD="@libdir@/libeo_dbg.so" "$@"
+btlog_opts=""
+# force color otherwise it will be disabled
+# since we're using a pipe to eina_btlog
+export EINA_LOG_COLOR_DISABLE=0
+fi
+
+if [ ! -z "$EO_LIFECYCLE_DEBUG" ]; then
+if ! echo "$EINA_LOG_LEVELS" | grep "eo_lifecycle:" >/dev/null 
2>/dev/null; then
+export EINA_LOG_LEVELS="eo_lifecycle:4,$EINA_LOG_LEVELS"
+fi
 fi
+
+# 3>&1 1>&2 2>&3: swaps stdout and stderr
+#
+# we need it since eina_btlog reads from stdin and that's the result
+# of command's stdout.
+#
+# at the end we need it again, since eina_btlog outputs to stdout, and
+# that is supposed to be stderr... while stderr was actually the
+# original command's ($@) stdout!
+
+("$@" 3>&1 1>&2 2>&3 | ${btlog_bin} ${btlog_opts} -c) 3>&1 1>&2 2>&3

-- 




[EGIT] [core/efl] master 01/03: eina_btlog: cleanup backtrace list.

2016-12-06 Thread Gustavo Sverzut Barbieri
barbieri pushed a commit to branch master.

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

commit f0e13ccad9f3508ee994de8ec3018d70c7f21f15
Author: Gustavo Sverzut Barbieri 
Date:   Tue Dec 6 13:50:18 2016 -0200

eina_btlog: cleanup backtrace list.
---
 src/bin/eina/eina_btlog.c | 13 +
 1 file changed, 13 insertions(+)

diff --git a/src/bin/eina/eina_btlog.c b/src/bin/eina/eina_btlog.c
index a0a5ab1..fff97d8 100644
--- a/src/bin/eina/eina_btlog.c
+++ b/src/bin/eina/eina_btlog.c
@@ -495,5 +495,18 @@ main(int argc, char **argv)
sep_color,
reset_color);
  }
+   EINA_LIST_FREE(btl, bt)
+ {
+free(bt->bin_dir);
+free(bt->bin_name);
+free(bt->file_dir);
+free(bt->file_name);
+free(bt->func_name);
+free(bt->comment);
+free(bt);
+ }
+
+   eina_shutdown();
+
return 0;
 }

-- 




[EGIT] [core/efl] master 01/01: eo: efl_super() can receive a class as first parameter.

2016-12-06 Thread Gustavo Sverzut Barbieri
barbieri pushed a commit to branch master.

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

commit 05932169953aa558b9c4cfe6979d7b0cdeb9ff9c
Author: Gustavo Sverzut Barbieri 
Date:   Tue Dec 6 12:40:33 2016 -0200

eo: efl_super() can receive a class as first parameter.

This fixes the src/tests/eo/test_function_overrides
---
 src/lib/eo/eo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/eo/eo.c b/src/lib/eo/eo.c
index e8e6a12..9c9a163 100644
--- a/src/lib/eo/eo.c
+++ b/src/lib/eo/eo.c
@@ -373,7 +373,7 @@ efl_super(const Eo *obj, const Efl_Class *cur_klass)
 {
EO_CLASS_POINTER_GOTO(cur_klass, klass, err);
 
-   if (EINA_UNLIKELY(!_eo_is_a_obj(obj))) goto err_obj;
+   if (EINA_UNLIKELY(!_eo_is_a_obj(obj) && !_eo_is_a_class(obj))) goto err_obj;
 #ifdef EO_DEBUG
if (EINA_UNLIKELY(!efl_isa(obj, cur_klass))) goto err_obj_hierarchy;
 #endif

-- 




[EGIT] [core/efl] master 01/01: Static deps unibreak: Update to latest version.

2016-12-06 Thread Tom Hacohen
tasn pushed a commit to branch master.

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

commit abb7310506ce825404788b7674f2bf3961c9df45
Author: Tom Hacohen 
Date:   Tue Dec 6 12:45:40 2016 +

Static deps unibreak: Update to latest version.

This version supports Unicode 9.0 and includes many fixes.
Reference git hash: fe1ce2e78c19fa2b4b7a92b1864a12b432da6ec6

This version is not yet released, but now is a better time to sync it,
and there are no code changes expected, only "admin" work.

Main changes:
Unicode 9.0 support
Many fixes in the lineberaking algorithm to now pass the Unicode
reference test data.

@feature
---
 src/static_libs/libunibreak/AUTHORS |   2 +
 src/static_libs/libunibreak/ChangeLog   | 165 
 src/static_libs/libunibreak/linebreak.c | 192 +++-
 src/static_libs/libunibreak/linebreak.h |  10 +-
 src/static_libs/libunibreak/linebreakdata.c | 176 +++--
 src/static_libs/libunibreak/linebreakdef.c  |  10 +-
 src/static_libs/libunibreak/linebreakdef.h  |  25 ++--
 src/static_libs/libunibreak/wordbreak.c |  71 +-
 src/static_libs/libunibreak/wordbreakdata.c |  97 --
 src/static_libs/libunibreak/wordbreakdef.h  |   5 +
 10 files changed, 627 insertions(+), 126 deletions(-)

diff --git a/src/static_libs/libunibreak/AUTHORS 
b/src/static_libs/libunibreak/AUTHORS
index 1b4f4b4..34b5c9a 100644
--- a/src/static_libs/libunibreak/AUTHORS
+++ b/src/static_libs/libunibreak/AUTHORS
@@ -9,3 +9,5 @@ Thomas Klausner.  Autoconfiscated and libtoolized liblinebreak.
 Tom Hacohen.  Added word boundaries support.
 
 Petr Filipsky.  Added incremental processing for line-breaking.
+
+Andreas Röver. Added grapheme boundaries support.
diff --git a/src/static_libs/libunibreak/ChangeLog 
b/src/static_libs/libunibreak/ChangeLog
index f6c4a3d..cad33cf 100644
--- a/src/static_libs/libunibreak/ChangeLog
+++ b/src/static_libs/libunibreak/ChangeLog
@@ -1,3 +1,168 @@
+2016-12-04  Wu Yongwei  
+
+   Simpify implementation about RI pairing.
+   * src/linebreak.c (treat_first_char): Get rid of the special
+   processing in the first character.
+   (get_lb_result_lookup): Refactor implementation.
+
+2016-12-03  Wu Yongwei  
+
+   * tools/test.txt: Make a statement more precise.
+
+2016-12-03  Wu Yongwei  
+
+   * src/linebreak.c (get_lb_result_lookup): Simplify code and fix a
+   corner case about LB21a.
+   (treat_first_char): There is no need to treat first character of
+   Hebrew specially now.
+
+2016-12-03  Wu Yongwei  
+
+   * src/linebreakdef.h (struct LineBreakContext): Add new field
+   cLb30aRI.
+   * src/linebreak.c (lb_init_break_context): Initialize cLb30aRI.
+   (treat_first_char): Deal with leading RI.
+   (get_lb_result_lookup): Count RI characters and allow breaking
+   between each pair occurrence.
+
+2016-12-03  Wu Yongwei  
+
+   * src/linebreak.c (baTable): Fix a few missing entries.
+
+2016-12-03  Wu Yongwei  
+
+   Fix test failure regarding Object Replacement Character (U+FFFC).
+   * src/linebreakdef.h (enum LineBreakClass): Move LBP_CB so that it
+   can be included in the pair table.
+   * src/linebreak.c (baTable): Add break action about LBP_CB.
+   (treat_first_char): Remove customization about LBP_CB.
+   (get_lb_result_simple): Ditto.
+   (get_lb_result_lookup): Change assertion about the maximum valid
+   baTable index.
+
+2016-11-29  Wu Yongwei  
+
+   * src/linebreak.c (ends_with): New static function.
+   (ENDS_WITH): New macro.
+   (resolve_lb_class): Use ENDS_WITH to make the code cleaner.
+
+2016-11-28  Wu Yongwei  
+
+   * src/linebreak.c (resolve_lb_class): Resolve LBP_CJ to LBP_NS if
+   lang ends with "-strict".
+   * src/tests.c: Use "-strict" in line breaking test.
+
+2016-11-26  Wu Yongwei  
+
+   * .clang-format: `Modernize' the clang-format configuration with
+   Clang 3.8.
+
+2016-11-26  Wu Yongwei  
+
+   * src/linebreak.c (get_lb_result_lookup): Fix an issue that
+   combining marks are not correctly dealt with.
+
+2016-11-23  Tom Hacohen  
+
+   * src/wordbreak.c (set_wordbreaks): Fix to pass the test suite.
+
+2016-11-22  Andreas Röver  
+
+   Add grapheme breaking support.
+   * AUTHORS: Add `Andreas Röver'.
+   * src/Makefile.am (include_HEADERS): Add header files for grapheme
+   breaking.
+   (libunibreak_la_SOURCES): Add source files for grapheme breaking.
+   (distclean-local): Clean also `GraphemeBreakData.txt'.
+   

Re: [E-devel] fails to compile efl 0.18.3 with wayland

2016-12-06 Thread Vasiliy Tolstov
2016-12-06 11:54 GMT+03:00 Stefan Schmidt :
> It is and the fix is also already backported to our efl-1.18 branch in
> case you manually want to pick it.
> https://git.enlightenment.org/core/efl.git/commit/?h=efl-1.18=14b3f9f45fd9e962d6b982b5a77689bd5ee28c0d
>
> The final 1.18.4 with this fix included should be out on Thursday.


Thanks, i'm pick it to test build process.

-- 
Vasiliy Tolstov,
e-mail: v.tols...@selfip.ru

--
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today.http://sdm.link/xeonphi
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 01/01: static_libs triangulator: prevent null pointer(ptr) access.

2016-12-06 Thread ChunEon Park
hermet pushed a commit to branch master.

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

commit 8be045612bc4901ba5322ae589796b23867fc4a4
Author: Hermet Park 
Date:   Tue Dec 6 19:18:09 2016 +0900

static_libs triangulator: prevent null pointer(ptr) access.
---
 .../triangulator/triangulator_stroker.c| 32 +++---
 1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/src/static_libs/triangulator/triangulator_stroker.c 
b/src/static_libs/triangulator/triangulator_stroker.c
index 44f7b89..18f7ead 100644
--- a/src/static_libs/triangulator/triangulator_stroker.c
+++ b/src/static_libs/triangulator/triangulator_stroker.c
@@ -156,23 +156,23 @@ move_to(Triangulator_Stroker *stroker, const double *pts)
  ptr1 = eina_inarray_nth(stroker->arc_pts, 0);
  ptr = eina_inarray_nth(stroker->vertices, 0);
  i = pts_count;
-  }
-while (front != end)
-  {
- ptr[--i] = ptr1[2 * end - 1];
- ptr[--i] = ptr1[2 * end - 2];
- --end;
- if (front == end)
-   break;
- ptr[--i] = ptr1[2 * front + 1];
- ptr[--i] = ptr1[2 * front + 0];
- ++front;
-  }
 
-if (jump)
-  {
- ptr[i - 1] = ptr[i + 1];
- ptr[i - 2] = ptr[i + 0];
+ while (front != end)
+   {
+  ptr[--i] = ptr1[2 * end - 1];
+  ptr[--i] = ptr1[2 * end - 2];
+  --end;
+  if (front == end)
+break;
+  ptr[--i] = ptr1[2 * front + 1];
+  ptr[--i] = ptr1[2 * front + 0];
+  ++front;
+   }
+ if (jump)
+   {
+  ptr[i - 1] = ptr[i + 1];
+  ptr[i - 2] = ptr[i + 0];
+   }
   }
 break;
  }

-- 




[EGIT] [core/efl] master 01/04: evas: events: fix NULL check on returned value

2016-12-06 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit 5e06cd7daf103dbb8659a07b6cc119c66c21508a
Author: Stefan Schmidt 
Date:   Tue Dec 6 10:21:50 2016 +0100

evas: events: fix NULL check on returned value

Continuing the loop if the returned pdata is non-NULL does not make sense.
What Coverity actually found was that if we have cobj_pdata NULL here we
would happily deref it the line afterwards and crash.

Guilherme, Bruno if something else was intended here feel free to change it
again.

CID: 1366822
---
 src/lib/evas/canvas/evas_events.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/evas/canvas/evas_events.c 
b/src/lib/evas/canvas/evas_events.c
index b95e113..2db8e88 100644
--- a/src/lib/evas/canvas/evas_events.c
+++ b/src/lib/evas/canvas/evas_events.c
@@ -3649,7 +3649,7 @@ _efl_canvas_object_pointer_mode_by_device_set(Eo *eo_obj, 
Evas_Object_Protected_
   cobj_data = efl_data_scope_get(cobj, 
EFL_CANVAS_OBJECT_CLASS);
 
   cobj_pdata = _evas_object_pointer_data_get(pdata, cobj_data, 
dev);
-  if (cobj_pdata) continue;
+  if (!cobj_pdata) continue;
   if (!cobj_pdata->mouse_grabbed) continue;
   cobj_pdata->mouse_grabbed -= addgrab;
   pdata->mouse_grabbed -= addgrab;

-- 




[EGIT] [core/efl] master 02/04: evas: input_pointer: remove unreachable case statement

2016-12-06 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit ba496721fb8f71604af14e5d1719c3b1c4729e89
Author: Stefan Schmidt 
Date:   Tue Dec 6 10:31:57 2016 +0100

evas: input_pointer: remove unreachable case statement

Directly in the beginning of the function we check if key is
<= EFL_INPUT_VALUE_NONE and return if this is true. No chance key could be
EFL_INPUT_VALUE_NONE below here.

CID: 1361997
---
 src/lib/evas/canvas/efl_input_pointer.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/lib/evas/canvas/efl_input_pointer.c 
b/src/lib/evas/canvas/efl_input_pointer.c
index 397beef..00d1054 100644
--- a/src/lib/evas/canvas/efl_input_pointer.c
+++ b/src/lib/evas/canvas/efl_input_pointer.c
@@ -491,7 +491,6 @@ _efl_input_pointer_value_set(Eo *obj EINA_UNUSED, 
Efl_Input_Pointer_Data *pd, Ef
   case EFL_INPUT_VALUE_SLIDER:
 return EINA_FALSE; // TODO
 
-  case EFL_INPUT_VALUE_NONE:
   default:
 return EINA_FALSE;
  }

-- 




[EGIT] [core/efl] master 01/01: eolian: Fix to unregister eina log domain if it was registered.

2016-12-06 Thread Jaehyun Cho
jaehyun pushed a commit to branch master.

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

commit c32c5dd222f65317ec0f7c71ee0d0d6a5cff050a
Author: Jaehyun Cho 
Date:   Tue Dec 6 18:51:14 2016 +0900

eolian: Fix to unregister eina log domain if it was registered.
---
 src/bin/eolian/main.c | 7 +--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/bin/eolian/main.c b/src/bin/eolian/main.c
index 3caf994..d874084 100644
--- a/src/bin/eolian/main.c
+++ b/src/bin/eolian/main.c
@@ -510,8 +510,11 @@ main(int argc, char **argv)
 
pret = 0;
 end:
-   eina_log_timing(_eolian_gen_log_dom, EINA_LOG_STATE_START, 
EINA_LOG_STATE_SHUTDOWN);
-   eina_log_domain_unregister(_eolian_gen_log_dom);
+   if (_eolian_gen_log_dom >= 0)
+ {
+eina_log_timing(_eolian_gen_log_dom, EINA_LOG_STATE_START, 
EINA_LOG_STATE_SHUTDOWN);
+eina_log_domain_unregister(_eolian_gen_log_dom);
+ }
for (size_t i = 0; i < (sizeof(_dexts) / sizeof(char *)); ++i)
  free(outs[i]);
eolian_shutdown();

-- 




[EGIT] [core/efl] master 03/04: evas: native_tbm: make sure we check for NULL before not after we dereference

2016-12-06 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit 7d93a1d45f858d06815887295a8f1a40951b6da9
Author: Stefan Schmidt 
Date:   Tue Dec 6 10:42:42 2016 +0100

evas: native_tbm: make sure we check for NULL before not after we 
dereference

Using *im and dereferencing it before doing the actual NULL check does not 
make
much sense. I kept the checks as they have been there before so the intent 
was
probably that they could be NULL and should be checked.

CID: 1270030, 1270029, 1270028
---
 src/modules/evas/engines/software_generic/evas_native_tbm.c | 12 +++-
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/modules/evas/engines/software_generic/evas_native_tbm.c 
b/src/modules/evas/engines/software_generic/evas_native_tbm.c
index 7cb3595..696a728 100644
--- a/src/modules/evas/engines/software_generic/evas_native_tbm.c
+++ b/src/modules/evas/engines/software_generic/evas_native_tbm.c
@@ -210,11 +210,12 @@ static void
 _native_bind_cb(void *image, int x EINA_UNUSED, int y EINA_UNUSED, int w 
EINA_UNUSED, int h EINA_UNUSED)
 {
RGBA_Image *im = image;
-   Native *n = im->native.data;
tbm_surface_info_s info;
tbm_surface_h tbm_surf;
 
-   if (!im || !n) return;
+   if (!im) return;
+   Native *n = im->native.data;
+   if (!n) return;
if (n->ns.type != EVAS_NATIVE_SURFACE_TBM)
  return;
 
@@ -229,10 +230,11 @@ static void
 _native_unbind_cb(void *image)
 {
RGBA_Image *im = image;
-   Native *n = im->native.data;
tbm_surface_h tbm_surf;
 
-   if (!im || !n) return;
+   if (!im) return;
+   Native *n = im->native.data;
+   if (!n) return;
if (n->ns.type != EVAS_NATIVE_SURFACE_TBM)
  return;
 
@@ -244,9 +246,9 @@ static void
 _native_free_cb(void *image)
 {
RGBA_Image *im = image;
-   Native *n = im->native.data;
 
if (!im) return;
+   Native *n = im->native.data;
 
im->native.data= NULL;
im->native.func.bind   = NULL;

-- 




[EGIT] [core/efl] master 04/04: evas: native_dmabuf: make sure we check for NULL before not after we dereference

2016-12-06 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit 10fb982ac01874fa273d67a91aa4e852485b86f1
Author: Stefan Schmidt 
Date:   Tue Dec 6 10:49:10 2016 +0100

evas: native_dmabuf: make sure we check for NULL before not after we 
dereference

Same change as  just done in evas_native_tbm in commit
38dbe932db5c12f66ff2e045ac74107e149c14da.
---
 .../evas/engines/software_generic/evas_native_dmabuf.c   | 12 +++-
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/modules/evas/engines/software_generic/evas_native_dmabuf.c 
b/src/modules/evas/engines/software_generic/evas_native_dmabuf.c
index e19db5b..d85e352 100644
--- a/src/modules/evas/engines/software_generic/evas_native_dmabuf.c
+++ b/src/modules/evas/engines/software_generic/evas_native_dmabuf.c
@@ -19,9 +19,10 @@ _native_bind_cb(void *image, int x EINA_UNUSED, int y 
EINA_UNUSED, int w EINA_UN
struct dmabuf_attributes *a;
int size;
RGBA_Image *im = image;
-   Native *n = im->native.data;
 
-   if (!im || !n) return;
+   if (!im) return;
+   Native *n = im->native.data;
+   if (!n) return;
if (n->ns.type != EVAS_NATIVE_SURFACE_WL_DMABUF)
  return;
 
@@ -44,9 +45,10 @@ static void
 _native_unbind_cb(void *image)
 {
RGBA_Image *im = image;
-   Native *n = im->native.data;
 
-   if (!im || !n) return;
+   if (!im) return;
+   Native *n = im->native.data;
+   if (!n) return;
if (n->ns.type != EVAS_NATIVE_SURFACE_WL_DMABUF)
  return;
 }
@@ -55,9 +57,9 @@ static void
 _native_free_cb(void *image)
 {
RGBA_Image *im = image;
-   Native *n = im->native.data;
 
if (!im) return;
+   Native *n = im->native.data;
 
if (im->image.data)
  munmap(n->ns_data.wl_surface_dmabuf.ptr,

-- 




[EGIT] [core/efl] master 01/01: evas render: code refactoring.

2016-12-06 Thread ChunEon Park
hermet pushed a commit to branch master.

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

commit 8233770e362d1c9332906416b7bd4a7fff7cee99
Author: Hermet Park 
Date:   Tue Dec 6 18:56:07 2016 +0900

evas render: code refactoring.

There were some obj->map->surface validation check
but final map drawing was in the out of the surface valid scope.

Actually, this change does nothing but logically this change makes sense.
---
 src/lib/evas/canvas/evas_render.c | 38 +++---
 1 file changed, 19 insertions(+), 19 deletions(-)

diff --git a/src/lib/evas/canvas/evas_render.c 
b/src/lib/evas/canvas/evas_render.c
index 5b59205..bded79b 100644
--- a/src/lib/evas/canvas/evas_render.c
+++ b/src/lib/evas/canvas/evas_render.c
@@ -1845,12 +1845,12 @@ evas_render_mapped(Evas_Public_Data *evas, Evas_Object 
*eo_obj,
  (obj->map->surface_h != sh))
{
   RD(level, "  new surf: %ix%i\n", sw, sh);
- EINA_COW_WRITE_BEGIN(evas_object_map_cow, obj->map, 
Evas_Object_Map_Data, map_write)
-   {
-  ENFN->image_free(ENDT, map_write->surface);
- map_write->surface = NULL;
-   }
- EINA_COW_WRITE_END(evas_object_map_cow, obj->map, map_write);
+  EINA_COW_WRITE_BEGIN(evas_object_map_cow, obj->map, 
Evas_Object_Map_Data, map_write)
+{
+   ENFN->image_free(ENDT, map_write->surface);
+   map_write->surface = NULL;
+}
+  EINA_COW_WRITE_END(evas_object_map_cow, obj->map, map_write);
}
   }
 if (!obj->map->surface)
@@ -2011,22 +2011,22 @@ evas_render_mapped(Evas_Public_Data *evas, Evas_Object 
*eo_obj,
  }
 }
}
-  }
-ENFN->context_clip_clip(ENDT, ctx, ecx, ecy, ecw, ech);
 
-if (obj->cur->cache.clip.visible || !proxy_src_clip)
-  {
- ENFN->context_multiplier_unset(ENDT, ctx);
- ENFN->context_render_op_set(ENDT, ctx, obj->cur->render_op);
+ if (obj->cur->cache.clip.visible || !proxy_src_clip)
+   {
+  ENFN->context_clip_clip(ENDT, ctx, ecx, ecy, ecw, ech);
+  ENFN->context_multiplier_unset(ENDT, ctx);
+  ENFN->context_render_op_set(ENDT, ctx, obj->cur->render_op);
 #ifdef REND_DBG
- int _c, _cx, _cy, _cw, _ch;
- _c = ENFN->context_clip_get(ENDT, ctx, &_cx, &_cy, &_cw, &_ch);
- RD(level, "  draw image map(clip: [%d] %d,%d %dx%d)\n", _c, _cx, 
_cy, _cw, _ch);
+  int _c, _cx, _cy, _cw, _ch;
+  _c = ENFN->context_clip_get(ENDT, ctx, &_cx, &_cy, &_cw, 
&_ch);
+  RD(level, "  draw image map(clip: [%d] %d,%d %dx%d)\n", _c, 
_cx, _cy, _cw, _ch);
 #endif
- evas_draw_image_map_async_check
-   (obj, ENDT, ctx, surface,
-obj->map->surface, obj->map->spans,
-obj->map->cur.map->smooth, 0, do_async);
+  evas_draw_image_map_async_check
+ (obj, ENDT, ctx, surface,
+  obj->map->surface, obj->map->spans,
+  obj->map->cur.map->smooth, 0, do_async);
+   }
   }
 
 ENFN->context_free(ENDT, ctx);

-- 




[EGIT] [core/efl] master 01/01: win: Simplify sizing recalc

2016-12-06 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit 4ff330856d4cb1992b1cba2aa6a8c70e51dad276
Author: Jean-Philippe Andre 
Date:   Tue Dec 6 15:52:10 2016 +0900

win: Simplify sizing recalc

This amends the previous patch. Some moer testing showed that the
deferred resize flag was in fact harmful (on X with CSD).
---
 src/lib/elementary/efl_ui_win.c | 5 +
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c
index 4d84a63..75aa1d0 100644
--- a/src/lib/elementary/efl_ui_win.c
+++ b/src/lib/elementary/efl_ui_win.c
@@ -1445,10 +1445,7 @@ _elm_win_frame_obj_update(Efl_Ui_Win_Data *sd)
evas_object_geometry_get(sd->frame_obj, , , , );
edje_object_part_geometry_get(sd->frame_obj, "elm.spacer.content", , 
, , );
if (_elm_win_framespace_set(sd, cx, cy, ow - cw, oh - ch))
- {
-_elm_win_resize_objects_eval(sd->obj);
-sd->deferred_resize_job = EINA_TRUE;
- }
+ _elm_win_resize_objects_eval(sd->obj);
 }
 
 static void

-- 




Re: [E-devel] fails to compile efl 0.18.3 with wayland

2016-12-06 Thread Stefan Schmidt
Hello.

On 06/12/16 08:32, Jean-Philippe André wrote:
> On 6 December 2016 at 16:27, Vasiliy Tolstov  wrote:
>
>> Hi! I'm try to build efl and enlightenment for fedora 25 with wayland
>> support.
>> https://copr-be.cloud.fedoraproject.org/results/
>> vtolstov/yoctocloud/fedora-25-x86_64/00485185-efl/build.log.gz
>>
>> Does master have needed fix?
>>
>>
> Yes, master is fixed and 1.18.4 will be released soon.


Hmm, maybe I should wait until all new mails are downloaded and go 
through them before starting answering. You already did this one. :)

regards
Stefan Schmidt

--
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today.http://sdm.link/xeonphi
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] fails to compile efl 0.18.3 with wayland

2016-12-06 Thread Stefan Schmidt
Hello.

On 06/12/16 08:27, Vasiliy Tolstov wrote:
> Hi! I'm try to build efl and enlightenment for fedora 25 with wayland support.
> https://copr-be.cloud.fedoraproject.org/results/vtolstov/yoctocloud/fedora-25-x86_64/00485185-efl/build.log.gz

Yeah, sorry for this one. It slipped through when preparing 1.18.3 :-(

> Does master have needed fix?

It is and the fix is also already backported to our efl-1.18 branch in 
case you manually want to pick it.
https://git.enlightenment.org/core/efl.git/commit/?h=efl-1.18=14b3f9f45fd9e962d6b982b5a77689bd5ee28c0d

The final 1.18.4 with this fix included should be out on Thursday.

regards
Stefan Schmidt


--
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today.http://sdm.link/xeonphi
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel