Cedric Bail [Wed, 14 Sep 2016 23:50:05 +0000 (16:50 -0700)]
eina: allow graceful failure when calling eina_thread_cancel with NULL.
Stefan Schmidt [Wed, 14 Sep 2016 16:01:25 +0000 (18:01 +0200)]
bindings: cxx: add more new files to buildsystem to make sure they land in dist
Another set of new files which have not been referenced and thus never put into
dist.
Gustavo Sverzut Barbieri [Wed, 14 Sep 2016 04:38:58 +0000 (01:38 -0300)]
eina/ecore: allow threads to be canceled, use in ecore_con.
As discussed in the mailing list, many people will use worker threads
to execute blocking syscalls and mandating ecore_thread_check() for
voluntary preemption reduces the ecore_thread usefulness a lot.
A clear example is ecore_con usage of connect() and getaddrinfo() in
threads. If the connect timeout expires, the thread will be cancelled,
but it was blocked on syscalls and they will hang around for long
time. If the application exits, ecore will print an error saying it
can SEGV.
Then enable access to pthread_setcancelstate(PTHREAD_CANCEL_ENABLE)
via eina_thread_cancellable_set(EINA_TRUE), to pthread_cancel() via
eina_thread_cancel(), to pthread_cleanup_push()/pthread_cleanup_pop()
via EINA_THREAD_CLEANUP_PUSH()/EINA_THREAD_CLEANUP_POP() and so on.
Ecore threads will enforce non-cancellable threads on its own code,
but the user may decide to enable that and allow cancellation, that's
not an issue since ecore_thread now plays well and use cleanup
functions.
Ecore con connect/resolve make use of that and enable cancellable
state, efl_net_dialer_tcp benefits a lot from that.
A good comparison of the benefit is to run:
./src/examples/ecore/efl_io_copier_example tcp://google.com:1234 :stdout:
before and after. It will timeout after 30s and with this patch the
thread is gone, no ecore error is printed about possible SEGV.
Felipe Magno de Almeida [Wed, 14 Sep 2016 03:55:51 +0000 (00:55 -0300)]
eo-cxx: Replace for ENOMEM to avoid warnings
Felipe Magno de Almeida [Wed, 14 Sep 2016 03:33:02 +0000 (00:33 -0300)]
eo-cxx: Fix race promises
Felipe Magno de Almeida [Wed, 17 Aug 2016 23:48:24 +0000 (20:48 -0300)]
eo-cxx: Add promise type
Felipe Magno de Almeida [Wed, 17 Aug 2016 02:26:52 +0000 (23:26 -0300)]
eo-cxx: Add race promises through eina::variant
Felipe Magno de Almeida [Mon, 15 Aug 2016 17:47:16 +0000 (14:47 -0300)]
eo-cxx: race for promises
Felipe Magno de Almeida [Mon, 15 Aug 2016 17:47:00 +0000 (14:47 -0300)]
eina-cxx: Moved variant to eina C++
Cedric BAIL [Tue, 13 Sep 2016 23:12:04 +0000 (16:12 -0700)]
evas: link output with evas canvas at finalize time.
Cedric BAIL [Tue, 13 Sep 2016 23:11:48 +0000 (16:11 -0700)]
evas: remove useless symbol.
Cedric BAIL [Tue, 13 Sep 2016 23:10:26 +0000 (16:10 -0700)]
evas: efl_canvas_output should be able to provide pixels if requested.
Gustavo Sverzut Barbieri [Tue, 13 Sep 2016 19:08:25 +0000 (16:08 -0300)]
efl_net_dialer_* use timeout promise instead of timer object.
i wasn't aware of efl_loop_timeout for one-shot timeout promises, then
use it instead of a full object.
Chris Michael [Tue, 13 Sep 2016 13:36:15 +0000 (09:36 -0400)]
evas: Add missing return values for _efl_canvas_output_lock/unlock
functions
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Chris Michael [Tue, 13 Sep 2016 13:32:48 +0000 (09:32 -0400)]
evas: Mark unused parameters as being EINA_UNUSED
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Stefan Schmidt [Thu, 16 Jun 2016 13:37:46 +0000 (15:37 +0200)]
tests: eio: use eina file infrastructure for temporary file creation
The tmp dir is not always /tmp.
Vivek Ellur [Mon, 6 Jun 2016 14:47:49 +0000 (16:47 +0200)]
eio_eet: Added test suite for eio eet module.
Summary:
Added new test suite for eio eet module
Signed-off-by: Vivek Ellur <vivek.ellur@samsung.com>
Reviewers: cedric
Subscribers: stefan_schmidt, jpeg, cedric
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D3316
Jaehyun Cho [Tue, 13 Sep 2016 08:49:36 +0000 (17:49 +0900)]
edje: Fix memory overflow on svg loader.
Initialize temporary index not to cause memory overflow on svg loader.
Daniel Hirt [Tue, 13 Sep 2016 07:38:02 +0000 (10:38 +0300)]
Remove leftover evas_out usage from legacy
Build failed after
b5456893ee8a1a86a9b7e0342f644f3785711e06 due to
a missing header.
Oleksandr Shcherbina [Tue, 13 Sep 2016 06:17:53 +0000 (15:17 +0900)]
evas: Fix possible crash in evas_model_save_eet.c
Summary: @fix
Reviewers: cedric, raster, Hermet
Reviewed By: Hermet
Subscribers: artem.popov, jpeg
Differential Revision: https://phab.enlightenment.org/D4293
Woochan Lee [Tue, 13 Sep 2016 06:13:45 +0000 (15:13 +0900)]
elm_calendar: Fix header text bug.
Summary:
There is a bug. when calendar showing very first time.
the some of the headers(weekday name) is blank.
Because of elm_layout_text_set() called with NULL value.
Need to insert all of the weekday names before set text.
@fix
Test Plan:
Execute elementary_test
Open calendar sample.
See the all of the header names there.
Reviewers: cedric, jpeg, Hermet
Reviewed By: Hermet
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4290
Simon Lees (SUSE) [Tue, 13 Sep 2016 05:42:58 +0000 (15:12 +0930)]
Sync mailmap
Cedric BAIL [Mon, 12 Sep 2016 23:18:08 +0000 (16:18 -0700)]
evas: start working on efl_canvas_output.
This should when done enable the possibility for multi screen in wayland
along with remote display, wireless display and screencasting.
Cedric BAIL [Mon, 12 Sep 2016 18:19:10 +0000 (11:19 -0700)]
eio: properly track destruction of all Eet eio request.
@fix T4550
Gustavo Sverzut Barbieri [Mon, 12 Sep 2016 17:48:03 +0000 (14:48 -0300)]
efl_net_dialer_tcp: add connect timeout.
Gustavo Sverzut Barbieri [Mon, 12 Sep 2016 16:44:35 +0000 (13:44 -0300)]
efl_net_dialer_websocket: close and emit EOS on error.
On errors we should close the websocket and if it's in streaming mode
emit an EOS.
Gustavo Sverzut Barbieri [Mon, 12 Sep 2016 16:21:20 +0000 (13:21 -0300)]
efl_net_dialer_tcp: emit EOS on errors.
I/O copier and others may depend on end-of-stream to stop processing,
then emit the EOS on failures.
Gustavo Sverzut Barbieri [Mon, 12 Sep 2016 15:46:05 +0000 (12:46 -0300)]
efl_net_dialer_http: emit eos only at the end.
http copiers were never finishing since eos was being reset to FALSE
before the I/O copier job executed.
Gustavo Sverzut Barbieri [Mon, 12 Sep 2016 16:17:50 +0000 (13:17 -0300)]
efl_net_socket_fd: fail early on double close.
Gustavo Sverzut Barbieri [Mon, 12 Sep 2016 15:23:29 +0000 (12:23 -0300)]
efl_io_closer: add close_on_exec and close_on_destructor properties.
the purpose of these properties are to make it more uniform the
handling of these auto-close behavior.
Jaehyun Cho [Mon, 12 Sep 2016 11:30:50 +0000 (20:30 +0900)]
config: Add Escape key binding to naviframe.
Naviframe item is popped when Escape key is pressed.
Mykyta Biliavskyi [Mon, 12 Sep 2016 11:31:08 +0000 (14:31 +0300)]
Edje_Edit: check returned value edje_edit_edje_file_save function.
In edje_edit_group_copy() for case when save routine is failed
still returned EINA_TRUE. Now will be returned result of save routine.
@fix
CID: 1362727
Stefan Schmidt [Mon, 12 Sep 2016 11:01:48 +0000 (13:01 +0200)]
tests: eo_cxx: make sure new header files is included in dist tarball
This new file is available in the src tree but as we do not reference it in the
Makefile it is never put into the dist tarball making distcheck fail.
Stefan Schmidt [Mon, 12 Sep 2016 08:05:12 +0000 (10:05 +0200)]
examples: elementary: fix build for cxx examples needing ecore_cxx includes
The elementary cxx examples now need Ecore_Manual.hh from the cxx bindings.
Make sure we setup the include paths accordingly.
Hermet Park [Mon, 12 Sep 2016 07:50:00 +0000 (16:50 +0900)]
evas map: fix the rendering problem.
I got an issue report about map rendering.
After investigated, I found that was introduced by data overflow.
For fast computation, evas map uses integer data type rather than float,
that gives up some range of data size.
So, if vertex range is a little large but still reasonable,
polygon won'be properly displayed due to the integer overflow.
We can fix this by changing FPc data type to 64 bits (ie, long long)
But I didn't do yet though I can simply fix this costlessly.
By the way, my test case map points are below.
0: -1715, -5499
1: -83, -1011
2: 1957, 5721
3: 325, 1233
and gl result is perfect but sw is totally broken.
@fix
Hermet Park [Mon, 12 Sep 2016 04:09:17 +0000 (13:09 +0900)]
elementary test_glview: guide ELM_ACCEL rather than ELM_ENGINE
Specifying explicit engine name is not honored now
because backened engine name depends on the system.
We prefer to guide accelerator rather than engine.
Felipe Magno de Almeida [Sun, 7 Aug 2016 19:52:48 +0000 (16:52 -0300)]
eolian-cxx: Implement future template class for C++
WooHyun Jung [Mon, 12 Sep 2016 01:09:32 +0000 (10:09 +0900)]
embryo_cc: fix memory overflow in str
After for-loop i can have value 11. So the str should be longer than 11.
@fix
Andy Williams [Sun, 11 Sep 2016 18:10:04 +0000 (19:10 +0100)]
elm: don't show our elm_code popup if ctrl pressed
Andy Williams [Sun, 11 Sep 2016 17:47:05 +0000 (18:47 +0100)]
elm: Add popup edit menu in elm_code
Mykyta Biliavskyi [Sun, 11 Sep 2016 17:15:50 +0000 (20:15 +0300)]
Ecore_con_ssl: fix return value of ecore_con_ssl_client_upgrade.
In case when _ecore_con_ssl_client_init_(gnutls/openssl) finished
successful a enum ECORE_CON_SSL_ERROR_NONE value (0) returned. Function
ecore_con_ssl_client_upgrade return Eina_Bool and in case of success
EINA_FALSE was returned.
@fix
Cedric BAIL [Fri, 9 Sep 2016 23:22:20 +0000 (16:22 -0700)]
eio: finish port to new efl_io_manager API.
Cedric BAIL [Fri, 9 Sep 2016 23:21:47 +0000 (16:21 -0700)]
ecore: shutup unused arguments warning.
Cedric BAIL [Fri, 9 Sep 2016 23:20:52 +0000 (16:20 -0700)]
ecore: fix reference counting of promise value for efl_future_race and efl_future_all.
Gustavo Sverzut Barbieri [Fri, 9 Sep 2016 23:09:51 +0000 (20:09 -0300)]
efl_net_dialer_tcp: make asynchronous resolve and connect.
both resolve (getaddrinfo()) and connect() are now done in
Ecore_Thread, avoid to block the main loop.
My plan is to always use the threaded connect() using a blocking
socket, only set it to non-blocking after the socket is returned to
the main thread and before it's accessible to the user. It will make
the connect behavior more uniform.
Some errors were moved from HTTP to Dialer as they are more generic.
Chris Michael [Fri, 9 Sep 2016 19:08:40 +0000 (15:08 -0400)]
ecore-drm2: Rename output_fb_release to just fb_release
As this function releases FBOs on a given output, lets just shorten
the API function name so it can stay grouped into the ecore_drm2_fb.c
file ... leaving it as ecore_drm2_output_fb_release reads like it
should have gone into the ecore_drm2_output.c file...
NB: No real function changes here, just an API rename.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Chris Michael [Fri, 9 Sep 2016 19:05:00 +0000 (15:05 -0400)]
ecore-drm2: Add missing EINA_SAFETY checks for public facing API
functions
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Derek Foreman [Fri, 9 Sep 2016 18:35:22 +0000 (13:35 -0500)]
gl_drm_ee: Remove repulsive hack and do proper gbm buffer accounting
We no longer need this hack as we now have a way to properly handle the
buffer locking in the engine, and don't currently deal with multi-head.
Derek Foreman [Fri, 9 Sep 2016 18:33:15 +0000 (13:33 -0500)]
ecore_drm2: Add ecore_drm2_output_fb_release way to force buffer release
Adds an api to attempt to release an fb from an output. This will try
to first free any queued but not display buffers, which may harmlessly
give us a render target.
However, if that fails it will try to get buffers that have been sent to
scanout, which can lead to tearing.
Derek Foreman [Fri, 9 Sep 2016 18:31:20 +0000 (13:31 -0500)]
ecore_drm2: Add release handlers for buffers
Allow the engine to register a callback for buffer release. This lets us
do appropriate buffer bookkeeping (for example, gbm locking) in the
engine.
Derek Foreman [Fri, 9 Sep 2016 18:18:41 +0000 (13:18 -0500)]
ecore_drm2: Store gbm_bo for Fbs and add a getter function for it
This will aid with proper locking in gl_drm later
Gustavo Sverzut Barbieri [Fri, 9 Sep 2016 17:53:11 +0000 (14:53 -0300)]
remove TODO/hacks for eo, it's fixed now.
Tasn fixed https://phab.enlightenment.org/T4418 so these are not needed anymore.
Daniel Kolesa [Fri, 9 Sep 2016 12:48:33 +0000 (14:48 +0200)]
docs: fix editable section writer erasing wrong fields
Daniel Kolesa [Fri, 9 Sep 2016 12:43:02 +0000 (14:43 +0200)]
docs: add editable sections where possible
Daniel Kolesa [Fri, 9 Sep 2016 11:04:04 +0000 (13:04 +0200)]
eolian: properly add < in struct/enum field docs
Fixes T4443.
Tom Hacohen [Fri, 9 Sep 2016 10:38:07 +0000 (11:38 +0100)]
Eo: Remove the EO_DEBUG env check. We have DBG for that.
Tom Hacohen [Fri, 9 Sep 2016 10:24:37 +0000 (11:24 +0100)]
Update the EFL according to new Eo API changes.
I didn't expect it (my bad), but why the hell is this done manually
instead of using Eolian?! People, use Eolian.
Carsten Haitzler (Rasterman) [Fri, 9 Sep 2016 10:11:06 +0000 (19:11 +0900)]
evas drm engine - fix build if gl not enabled for drm engine build
this fixes the build after a derek b0rk :)
Tom Hacohen [Fri, 9 Sep 2016 10:14:45 +0000 (11:14 +0100)]
Eo: Merge in changes in how functions are registered to classes.
More information in the relevant commit itself:
7ebf9d879d41169beda06b0195e4a3b3c60818e1
Breaks ABI and API
Tom Hacohen [Fri, 9 Sep 2016 09:53:58 +0000 (10:53 +0100)]
Eo: Change the way functions are registered to classes
This change lets us remove a field from the structure that leads to
around 20KiB more of saving in private dirty pages in elementary.
This also looks a bit better and feels a bit cleaner.
Breaks API and ABI.
Daniel Kolesa [Thu, 8 Sep 2016 14:38:52 +0000 (16:38 +0200)]
eolian: separate ops struct for normal and class funcs (to match new API)
Tom Hacohen [Fri, 9 Sep 2016 09:53:45 +0000 (10:53 +0100)]
Eo: don't allow object override to introduce previously undefined functions.
Carsten Haitzler (Rasterman) [Fri, 9 Sep 2016 09:44:21 +0000 (18:44 +0900)]
eo - move eoid lookup to ptr indir file and clean up some code
this improves the readability of some of the new domain related and
ptr indir code..
Carsten Haitzler (Rasterman) [Fri, 9 Sep 2016 09:42:21 +0000 (18:42 +0900)]
eo test suite - finish off the tests so we're testing all the features
testing all the core features of eo domains now. yes it could be a lot
more extensive but it tests the important day to day cases. this is
the case across most of our tests too - they dont really stress things
out a lot.
Carsten Haitzler (Rasterman) [Fri, 9 Sep 2016 03:50:56 +0000 (12:50 +0900)]
eo - we actually steal the 3rd highest bit for classes - fix
we now just lost another bit from generation count. down to 6 in 32bit
and 26 in 64 bit. this sucks but is necessary. now we are using the
bits just below ref and super bits the code was just maskign off the
next bit as a class marker. this was so so so so wrong. it was the ide
table space. we just never used numbers high enough to start using it.
since i added domain there now those bits can be used easily with
thread domain or other domain. argh! existing eo bug found and fixed.
annoying! :) i added another #define there just to be clear we use
that bit for classes.
Carsten Haitzler (Rasterman) [Fri, 9 Sep 2016 02:19:01 +0000 (11:19 +0900)]
eo class add - dont always call getenv as this is epxensive. get once
so class creation is possibly a little slower thanks to always calling
getenv. get once then store rsult from there on out.
Stefan Schmidt [Fri, 9 Sep 2016 09:09:48 +0000 (11:09 +0200)]
m4: fix the name for ecore-sdl in the pkconfig files.
Like some other libs we need to have a special handling here to get ecore-sdl
into the pc file instead ecore_sdl.
Fixes T4397
Jean Guyomarc'h [Fri, 9 Sep 2016 06:39:02 +0000 (08:39 +0200)]
eo: avoid redefinition of type Efl_Promise
clang complained about type redefinition being a C11 feature, throwing a
warning for each compiling unit including Eo.h.
Cedric BAIL [Thu, 8 Sep 2016 21:51:13 +0000 (14:51 -0700)]
efl: add documentation and last cleanup of the API.
Cedric BAIL [Wed, 7 Sep 2016 23:20:52 +0000 (16:20 -0700)]
eio: implement efl_io_manager_xattr_ls
Cedric BAIL [Wed, 7 Sep 2016 23:20:23 +0000 (16:20 -0700)]
eio: add an internal function for getting xattr in bulk.
Cedric BAIL [Wed, 7 Sep 2016 22:57:25 +0000 (15:57 -0700)]
eio: make xattr list packed for better performance.
Cedric BAIL [Tue, 30 Aug 2016 23:31:41 +0000 (16:31 -0700)]
eio: fix allocation in eio_dir to reuse common safer infra.
Cedric BAIL [Tue, 30 Aug 2016 23:21:30 +0000 (16:21 -0700)]
ecore: fix parenting to be done right on promise and future.
Cedric BAIL [Tue, 30 Aug 2016 23:20:36 +0000 (16:20 -0700)]
ecore: fix optional future promise to not complain of there destruction.
Cedric BAIL [Fri, 26 Aug 2016 23:52:11 +0000 (16:52 -0700)]
eio: fix manager tests.
Cedric Bail [Mon, 1 Aug 2016 04:41:05 +0000 (21:41 -0700)]
eio: rework efl_io_manager to use efl_future.
Cedric Bail [Tue, 2 Aug 2016 21:04:24 +0000 (14:04 -0700)]
eo: add Eina.Binbuf native type.
Cedric Bail [Mon, 1 Aug 2016 04:39:39 +0000 (21:39 -0700)]
eio: add internal function able to build array instead of triggering a callback per files.
Cedric Bail [Mon, 1 Aug 2016 04:37:25 +0000 (21:37 -0700)]
eio: track length of resulting operation to be reported by futures.
Cedric Bail [Thu, 28 Jul 2016 00:17:20 +0000 (17:17 -0700)]
ecore: test efl_future_link.
Cedric BAIL [Tue, 30 Aug 2016 23:30:52 +0000 (16:30 -0700)]
ecore: add efl_future_iterator_race.
Cedric Bail [Wed, 27 Jul 2016 21:28:19 +0000 (14:28 -0700)]
ecore: add test for efl_future_race.
Cedric Bail [Wed, 27 Jul 2016 16:56:07 +0000 (09:56 -0700)]
ecore: add efl_future_race.
Cedric BAIL [Tue, 30 Aug 2016 23:29:49 +0000 (16:29 -0700)]
ecore: add efl_future_iterator_all.
Cedric Bail [Tue, 26 Jul 2016 19:08:48 +0000 (12:08 -0700)]
ecore: add tests for efl_future_all.
Cedric Bail [Tue, 26 Jul 2016 19:08:30 +0000 (12:08 -0700)]
ecore: add efl_future_all.
Cedric BAIL [Thu, 14 Jul 2016 00:07:47 +0000 (17:07 -0700)]
efl: add a possibility to link death of Eo object with a future.
Cedric Bail [Fri, 8 Jul 2016 01:01:38 +0000 (18:01 -0700)]
ecore: add tests for Efl.Promise.
Cedric Bail [Fri, 8 Jul 2016 21:00:43 +0000 (14:00 -0700)]
ecore: add support for optional futures.
Cedric BAIL [Thu, 30 Jun 2016 23:51:06 +0000 (16:51 -0700)]
ecore: add Efl.Promise.
Cedric BAIL [Wed, 29 Jun 2016 23:05:52 +0000 (16:05 -0700)]
efl: remove unecessary legacy_prefix set to null.
Cedric BAIL [Wed, 29 Jun 2016 22:25:22 +0000 (15:25 -0700)]
eolian: add a builtin to handle a free callback.
Cedric BAIL [Wed, 29 Jun 2016 22:00:17 +0000 (15:00 -0700)]
eolian: add support for future.
Future is the read only side of a Promise. For now, I am not removing
Eina_Promise until everything is in place, but eventually the promise
type of eolian will be gone.
Cedric BAIL [Wed, 29 Jun 2016 21:09:40 +0000 (14:09 -0700)]
eo: add abstract efl.future.
Stefan Schmidt [Thu, 8 Sep 2016 09:52:54 +0000 (11:52 +0200)]
examples: elementary: ignore generated codegen example files
Gustavo Sverzut Barbieri [Thu, 8 Sep 2016 19:12:18 +0000 (16:12 -0300)]
efl_net_socket_fd: make it more win32 friendly.
it seems that on windows read() and write() won't work with sockets,
so use recv() and send().
Note that this code is still untested on windows, at least the errors
must be fetched using WSAGetLastError() instead of errno directly, but
I don't have a Windows machine I can test.
Derek Foreman [Thu, 8 Sep 2016 18:21:32 +0000 (13:21 -0500)]
ee_gl_drm: Stop calling fb_dirty
So yeah, fb_dirty is for marking dirty regions when rendering
directly into the front buffer attached for scanout on a manually
updated display. Absolutely none of those things apply here, so
let's stop doing it.
Derek Foreman [Thu, 8 Sep 2016 16:41:03 +0000 (11:41 -0500)]
ecore_drm2: Remove get/set for next fb
We no longer needs these at all.
Derek Foreman [Thu, 8 Sep 2016 16:40:11 +0000 (11:40 -0500)]
ecore_drm2: simplify API to get latest FB
What we've always wanted when getting the "current" FB is to get
the most recently submit one - this may be current, next, or pending.
Replace ecore_drm2_output_current_fb_get() with a function that gets the
most recent one - ecore_drm2_output_latest_fb_get(). Now callers don't
have to check the next buffer themselves first, and we don't have to
add an API for pending.