platform/upstream/efl.git
7 years agoeio: add an internal function for getting xattr in bulk.
Cedric BAIL [Wed, 7 Sep 2016 23:20:23 +0000 (16:20 -0700)]
eio: add an internal function for getting xattr in bulk.

7 years agoeio: make xattr list packed for better performance.
Cedric BAIL [Wed, 7 Sep 2016 22:57:25 +0000 (15:57 -0700)]
eio: make xattr list packed for better performance.

7 years agoeio: fix allocation in eio_dir to reuse common safer infra.
Cedric BAIL [Tue, 30 Aug 2016 23:31:41 +0000 (16:31 -0700)]
eio: fix allocation in eio_dir to reuse common safer infra.

7 years agoecore: fix parenting to be done right on promise and future.
Cedric BAIL [Tue, 30 Aug 2016 23:21:30 +0000 (16:21 -0700)]
ecore: fix parenting to be done right on promise and future.

7 years agoecore: fix optional future promise to not complain of there destruction.
Cedric BAIL [Tue, 30 Aug 2016 23:20:36 +0000 (16:20 -0700)]
ecore: fix optional future promise to not complain of there destruction.

7 years agoeio: fix manager tests.
Cedric BAIL [Fri, 26 Aug 2016 23:52:11 +0000 (16:52 -0700)]
eio: fix manager tests.

7 years agoeio: rework efl_io_manager to use efl_future.
Cedric Bail [Mon, 1 Aug 2016 04:41:05 +0000 (21:41 -0700)]
eio: rework efl_io_manager to use efl_future.

7 years agoeo: add Eina.Binbuf native type.
Cedric Bail [Tue, 2 Aug 2016 21:04:24 +0000 (14:04 -0700)]
eo: add Eina.Binbuf native type.

7 years agoeio: add internal function able to build array instead of triggering a callback per...
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.

7 years agoeio: track length of resulting operation to be reported by futures.
Cedric Bail [Mon, 1 Aug 2016 04:37:25 +0000 (21:37 -0700)]
eio: track length of resulting operation to be reported by futures.

7 years agoecore: test efl_future_link.
Cedric Bail [Thu, 28 Jul 2016 00:17:20 +0000 (17:17 -0700)]
ecore: test efl_future_link.

7 years agoecore: add efl_future_iterator_race.
Cedric BAIL [Tue, 30 Aug 2016 23:30:52 +0000 (16:30 -0700)]
ecore: add efl_future_iterator_race.

7 years agoecore: add test for efl_future_race.
Cedric Bail [Wed, 27 Jul 2016 21:28:19 +0000 (14:28 -0700)]
ecore: add test for efl_future_race.

7 years agoecore: add efl_future_race.
Cedric Bail [Wed, 27 Jul 2016 16:56:07 +0000 (09:56 -0700)]
ecore: add efl_future_race.

7 years agoecore: add efl_future_iterator_all.
Cedric BAIL [Tue, 30 Aug 2016 23:29:49 +0000 (16:29 -0700)]
ecore: add efl_future_iterator_all.

7 years agoecore: add tests for efl_future_all.
Cedric Bail [Tue, 26 Jul 2016 19:08:48 +0000 (12:08 -0700)]
ecore: add tests for efl_future_all.

7 years agoecore: add efl_future_all.
Cedric Bail [Tue, 26 Jul 2016 19:08:30 +0000 (12:08 -0700)]
ecore: add efl_future_all.

7 years agoefl: add a possibility to link death of Eo object with a future.
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.

7 years agoecore: add tests for Efl.Promise.
Cedric Bail [Fri, 8 Jul 2016 01:01:38 +0000 (18:01 -0700)]
ecore: add tests for Efl.Promise.

7 years agoecore: add support for optional futures.
Cedric Bail [Fri, 8 Jul 2016 21:00:43 +0000 (14:00 -0700)]
ecore: add support for optional futures.

7 years agoecore: add Efl.Promise.
Cedric BAIL [Thu, 30 Jun 2016 23:51:06 +0000 (16:51 -0700)]
ecore: add Efl.Promise.

7 years agoefl: remove unecessary legacy_prefix set to null.
Cedric BAIL [Wed, 29 Jun 2016 23:05:52 +0000 (16:05 -0700)]
efl: remove unecessary legacy_prefix set to null.

7 years agoeolian: add a builtin to handle a free callback.
Cedric BAIL [Wed, 29 Jun 2016 22:25:22 +0000 (15:25 -0700)]
eolian: add a builtin to handle a free callback.

7 years agoeolian: add support for future.
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.

7 years agoeo: add abstract efl.future.
Cedric BAIL [Wed, 29 Jun 2016 21:09:40 +0000 (14:09 -0700)]
eo: add abstract efl.future.

7 years agoexamples: elementary: ignore generated codegen example files
Stefan Schmidt [Thu, 8 Sep 2016 09:52:54 +0000 (11:52 +0200)]
examples: elementary: ignore generated codegen example files

7 years agoefl_net_socket_fd: make it more win32 friendly.
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.

7 years agoee_gl_drm: Stop calling fb_dirty
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.

7 years agoecore_drm2: Remove get/set for next fb
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.

7 years agoecore_drm2: simplify API to get latest FB
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.

7 years agoee_drm: simplify flipping
Derek Foreman [Thu, 8 Sep 2016 03:25:43 +0000 (22:25 -0500)]
ee_drm: simplify flipping

We no longer have to track draw and display buffers - the display buffer
is completely handled by ecore_evas_drm's busy tracking.

7 years agoecore_evas_drm: Use pageflips, not vblanks, to drive animation
Derek Foreman [Fri, 2 Sep 2016 20:38:32 +0000 (15:38 -0500)]
ecore_evas_drm: Use pageflips, not vblanks, to drive animation

This should sort some timing problems.

7 years agoecore_drm2: Add a page flip completion call
Derek Foreman [Thu, 8 Sep 2016 03:24:45 +0000 (22:24 -0500)]
ecore_drm2: Add a page flip completion call

Add a function for ecore_evas_drm to call after a page flip happens so
ecore_drm2 can track busy status for fbs itself (including for the fb
that's currently being flipped to scanout)

Also, call the completion function from ecore_evas_drm

7 years agoecore_drm2: distinguish real flip failure from flip deferral
Derek Foreman [Thu, 8 Sep 2016 03:16:10 +0000 (22:16 -0500)]
ecore_drm2: distinguish real flip failure from flip deferral

If we try to flip too soon we get EBUSY and should queue up the buffer
for later presentation.  Only the other errors need to be dealt with
elsewhere.

7 years agoecore_drm2: make flip to NULL buffer mean something
Derek Foreman [Thu, 8 Sep 2016 03:13:34 +0000 (22:13 -0500)]
ecore_drm2: make flip to NULL buffer mean something

When triple buffering we'll have a buffer in ecore_drm2's "next" position.
Until now we've had to query it from the engine then try to re post it.

Also, when generating ticks we need to flip to the current buffer when no
changes have been made to get another callback.

Now a NULL fb to fb_flip will either flip to next, if available, or current
if there's nothing new to flip to.

7 years agoee_drm: Get page flips out of the render thread
Derek Foreman [Thu, 8 Sep 2016 02:31:08 +0000 (21:31 -0500)]
ee_drm: Get page flips out of the render thread

Now that we have redraws_clear exposed through software generic, we can
use that to do the final buffer swap from the main thread instead of doing
it in outbuf_flush which runs from the render thread.

This becomes more important later when other call sites in the main thread
will perform buffer flips.

7 years agoee_drm: Improve next buffer selection algorithm
Derek Foreman [Thu, 8 Sep 2016 02:25:32 +0000 (21:25 -0500)]
ee_drm: Improve next buffer selection algorithm

When triple buffering it's possible that we'll only need two buffers at
a time for long durations.  When we finally call upon a third buffer it
hasn't been used recently enough to do a partial redraw.

By picking the oldest available buffer when multiple buffers are free we
can increase the likelihood of doing partial redraws.

7 years agoevas_engines: Add a redraws_clear callback
Derek Foreman [Tue, 6 Sep 2016 22:01:37 +0000 (17:01 -0500)]
evas_engines: Add a redraws_clear callback

This gives us a callback from the main thread after outbuf_flush occurs -
this is useful to get timing right on the drm and wayland engines.

7 years agoecore_drm2: Implicitly set buffer busy status when flipping
Derek Foreman [Fri, 2 Sep 2016 20:24:24 +0000 (15:24 -0500)]
ecore_drm2: Implicitly set buffer busy status when flipping

This simplifies other code that shouldn't need to deal with this.

7 years agoee_drm: Move all ticking into ecore_evas_drm and use new tick system
Derek Foreman [Fri, 2 Sep 2016 19:47:49 +0000 (14:47 -0500)]
ee_drm: Move all ticking into ecore_evas_drm and use new tick system

Combines all the gl_drm and drm ticking code into one set in
ecore_evas_drm and uses the new evas tick register/unregister callbacks
to set it up.

7 years agoecore_drm2: Add a function to set the pageflip callback data once
Derek Foreman [Fri, 2 Sep 2016 18:59:12 +0000 (13:59 -0500)]
ecore_drm2: Add a function to set the pageflip callback data once

Instead of passing the user data for the page flip callback every time,
set it just once.

This will make it easier to push tick logic into ecore_evas_drm, as there
will be a transitional period where page flips are driven in two places
that don't have access to the same pointers.

7 years agoee_drm: use the ecore_drm2_fb busy bit
Derek Foreman [Fri, 2 Sep 2016 17:18:06 +0000 (12:18 -0500)]
ee_drm: use the ecore_drm2_fb busy bit

Use the new busy getter/setter on the fb instead of keeping state in the
outbuf

7 years agoecore_drm2: Add busy status to ecore_drm2_fb
Derek Foreman [Fri, 2 Sep 2016 17:17:01 +0000 (12:17 -0500)]
ecore_drm2: Add busy status to ecore_drm2_fb

We've been tracking this in the outbuf code, but that logic is going to
be moved into ecore_evas_drm to use the new ticking paradigm.

7 years agoecore_evas_drm: Refactor common code
Derek Foreman [Fri, 2 Sep 2016 16:07:17 +0000 (11:07 -0500)]
ecore_evas_drm: Refactor common code

ecore_evas_gl_drm_new_internal and ecore_Evas_drm_new_internal are huge
functions differing in very few lines.  Combined them.

7 years agoecore_evas_drm: check for libglapi presence first
Derek Foreman [Thu, 1 Sep 2016 19:53:47 +0000 (14:53 -0500)]
ecore_evas_drm: check for libglapi presence first

Minor refactor

7 years agoevas_engines: Add fn_evas_changed callback
Derek Foreman [Tue, 30 Aug 2016 20:47:17 +0000 (15:47 -0500)]
evas_engines: Add fn_evas_changed callback

To allow using the pageflip completion event to drive timing in the DRM
engine we need to know as soon as possible that a render has been after
a render has been considered if it will cause a page flip or not.

The fn_evas_changed callback sends this information.

7 years agoee_drm: Fix max buffer age
Derek Foreman [Thu, 8 Sep 2016 02:19:30 +0000 (21:19 -0500)]
ee_drm: Fix max buffer age

The highest possible buffer age should actually be 4, not the number of
available buffers.

7 years agoEo: Make function overrides implicit.
Tom Hacohen [Thu, 8 Sep 2016 12:08:08 +0000 (13:08 +0100)]
Eo: Make function overrides implicit.

Before this commit, function overrides were explicit. That is, you'd
have to explicitly state you were overriding a function instead of
creating a new one. This made the code a tad more complex, and was also
a bit more annoying to use. This commit removes this extra piece of
information.

This means we now store much less information per function, that will
let us further optimise out structures in the future.

7 years agoevas: Fix jpeg snafu and properly send hold events to children
Chris Michael [Thu, 8 Sep 2016 12:38:38 +0000 (08:38 -0400)]
evas: Fix jpeg snafu and properly send hold events to children

Commit 405680e836eb47d7dd8f59a4761386e7a80d9244 changed how hold
events were being sent. Previous code was sending the hold events to
child objects, however after mentioned commit, they were being sent to
main objects. This patch fixes that.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agodocs: actually close all ref files properly in order to not exceed maximum
Daniel Kolesa [Thu, 8 Sep 2016 11:34:19 +0000 (13:34 +0200)]
docs: actually close all ref files properly in order to not exceed maximum

7 years agoEo class creation: Simplify code using recursive locks.
Tom Hacohen [Thu, 8 Sep 2016 10:14:32 +0000 (11:14 +0100)]
Eo class creation: Simplify code using recursive locks.

Now that we have recursive locks, the class creation code can be much simpler.
All the code there was essentially our own implementation of recursive locks,
or rather a special case of those.

This is no longer needed.

7 years agoeo domain tests - make a start on them with some basic ones
Carsten Haitzler (Rasterman) [Thu, 8 Sep 2016 09:39:38 +0000 (18:39 +0900)]
eo domain tests - make a start on them with some basic ones

this adds tests for some of the basic domain tests. doing the
inter-thread ones is going to be much more.... fun.

7 years agoefl ui image - fix janky blocking async image preload thread handling
Carsten Haitzler (Rasterman) [Thu, 8 Sep 2016 06:00:22 +0000 (15:00 +0900)]
efl ui image - fix janky blocking async image preload thread handling

fix the elm image threaded image preload to be far simpler and
actually threadsafe without blocking the mainloop at all even on
object deletion. this also ensures ar least the first 512M of any
async precached file are loaded in so the preload doesnt stall on
headers that are outside maybe the first 4k of the file. i saw this
happening all over the place in the test i created.

@optimize

7 years agoepp - document that fallthrough is intended
Carsten Haitzler (Rasterman) [Thu, 8 Sep 2016 02:16:14 +0000 (11:16 +0900)]
epp - document that fallthrough is intended

7 years agoecore_cocoa: fix build warning
Jean Guyomarc'h [Thu, 8 Sep 2016 05:49:20 +0000 (07:49 +0200)]
ecore_cocoa: fix build warning

7 years agoedje_cc: remove after programs lookup when removing program
Jee-Yong Um [Thu, 8 Sep 2016 01:59:54 +0000 (10:59 +0900)]
edje_cc: remove after programs lookup when removing program

Summary:
When removing program, program lookups for its after programs
should be removed.

@fix

Reviewers: cedric, jpeg, Hermet

Reviewed By: Hermet

Subscribers: taxi2se

Differential Revision: https://phab.enlightenment.org/D4286

7 years agoevas_render: fix clipping the whole area in each rendering.
Ji-Youn Park [Thu, 8 Sep 2016 01:26:30 +0000 (09:56 +0830)]
evas_render: fix clipping the whole area in each rendering.

evas_render should not be going and doing evas_object_clip_set () at all.
The framespace clip should be enforced at RENDER time.

7 years agoeio: fix kevent monitor to not SIGBUS.
Al Poole [Wed, 7 Sep 2016 23:41:59 +0000 (16:41 -0700)]
eio: fix kevent monitor to not SIGBUS.

7 years agoelementary: fix call to efl_data_scope_get from another thread.
Cedric BAIL [Wed, 7 Sep 2016 18:42:29 +0000 (11:42 -0700)]
elementary: fix call to efl_data_scope_get from another thread.

This should fix the breakage on elm_suite.

7 years agoautotools: time to turn on systemd integration by default on Linux.
Cedric BAIL [Wed, 7 Sep 2016 18:28:24 +0000 (11:28 -0700)]
autotools: time to turn on systemd integration by default on Linux.

7 years agoeo_compatible - improve usability of err/warnings by duplication impl
Carsten Haitzler (Rasterman) [Wed, 7 Sep 2016 15:05:25 +0000 (00:05 +0900)]
eo_compatible - improve usability of err/warnings by duplication impl

7 years agoeodomain related docs - update as per some of gustavo's comments
Carsten Haitzler (Rasterman) [Wed, 7 Sep 2016 14:55:36 +0000 (23:55 +0900)]
eodomain related docs - update as per some of gustavo's comments

7 years agoeo - fix indenting in a file that was nuts and non-standard
Carsten Haitzler (Rasterman) [Wed, 7 Sep 2016 14:25:28 +0000 (23:25 +0900)]
eo - fix indenting in a file that was nuts and non-standard

7 years agoeo - add single global mutex for all shared eo objects to they are th-safe
Carsten Haitzler (Rasterman) [Wed, 7 Sep 2016 14:13:11 +0000 (23:13 +0900)]
eo - add single global mutex for all shared eo objects to they are th-safe

this adds a signle mutex (recursive) mutex for all eo objects that is
auto-called by _efl_object_call_resolve() and _efl_object_call_end()
that wrap all eo method calls and since its recursive it can be
blindly called for sub-calls. this will lock all shared objects during
any call to any shared object so only the thread calling now has
access until it releases. not fine-grained but good enough and the
best we can do "simplistically".

7 years agoeina - add recursive mutex lock - apparently these are portable
Carsten Haitzler (Rasterman) [Wed, 7 Sep 2016 14:12:02 +0000 (23:12 +0900)]
eina - add recursive mutex lock - apparently these are portable

new feature - recursive lock. same as normal lock just with recursive
attr set

@feature

7 years agoRevert "evas: Remove set but not used variable"
Chris Michael [Wed, 7 Sep 2016 12:35:30 +0000 (08:35 -0400)]
Revert "evas: Remove set but not used variable"

This reverts commit 24c5df29b3b7fb8ae857959ba53a066a69409eaa.

This should not have been pushed. Removed the variable from the wrong
spot :(

7 years agoevas: Remove set but not used variable
Chris Michael [Wed, 7 Sep 2016 12:31:39 +0000 (08:31 -0400)]
evas: Remove set but not used variable

Gcc warns eo_child is set but not used here, so remove it.

NB: This should have been removed in previous evas_events commit. Oopise

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoevas: Remove set but unused variables
Chris Michael [Wed, 7 Sep 2016 12:28:08 +0000 (08:28 -0400)]
evas: Remove set but unused variables

Gcc reports that these variables are set but not used, so remove them

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoevas: Remove set but unused variables
Chris Michael [Wed, 7 Sep 2016 12:21:09 +0000 (08:21 -0400)]
evas: Remove set but unused variables

Gcc warns that these variables are 'set but not used'. After reading
the surrounding code, it turns out they are not actually used, so
remove them.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoedje_cc: fix group inherit
Andrii Kroitor [Wed, 7 Sep 2016 12:16:47 +0000 (15:16 +0300)]
edje_cc: fix group inherit

Summary: item spread property was not copied.

Reviewers: NikaWhite, Hermet, raster, cedric

Subscribers: jpeg, reutskiy.v.v

Differential Revision: https://phab.enlightenment.org/D4285

7 years agoeo resolv call cache - make TLS with __thread, linker+compiler do it
Carsten Haitzler (Rasterman) [Wed, 7 Sep 2016 11:52:50 +0000 (20:52 +0900)]
eo resolv call cache - make TLS with __thread, linker+compiler do it

this will now fix the call cache to be a tls data member and thus
threadsafe. this is the sanest way.

7 years agoeo - make eo id table TLS private data for thread safety and speed
Carsten Haitzler (Rasterman) [Wed, 7 Sep 2016 08:53:33 +0000 (17:53 +0900)]
eo - make eo id table TLS private data for thread safety and speed

This moved all the eoid tables, eoid lookup caches, generation count
information ad eo_isa cache into a TLS segment of memory that is
thread private. There is also a shared domain for EO objects that all
threads can access, but it has an added cost of a lock. This means
objects accessed outside the thread they were created in cannot be
accessed by another thread unless they are adopted in temporarily, or
create4d with the shared domain active at the time of creation. child
objects will use their parent object domain if created with a parent
object passed in. If you were accessing EO (EFL) objects across threads
before then this will actually now cause your code to fail as it was
invalid before to do this as no actual objects were threadsafe in EFL,
so this will force things to "fail early".
ecore_thread_main_loop_begin() and end() still work as this uses the
eo domain adoption features to temporarily adopt a domain during this
section and then return it when done.

This returns speed back to eo brining the overhead in my tests of
lookup for the elm genlist autobounce test in elementary from about
5-7% down to 2.5-2.6%. A steep drop.

This does not mean everything is perfect. Still to do are:

1. Tests in the test suite
2. Some API's to help for sending objects from thread to thread
3. Make the eo call cache TLS data to make it also safe
4. Look at other locks in eo and probably move them to TLS data
5. Make eo resolve and call wrappers that call the real method func do
   recursive mutex wrapping of the given object IF it is a shared object
   to provide threadsafety transparently for shared objects (but adding
   some overhead as a result)
6. Test test est, and that is why this commit is going in now for wider
   testing
7. Decide how to make this work with sending IPC (between threads)
8. Deciding what makes an object sendable (a sendable property in base?)
9. Deciding what makes an object shareable (a sharable property in base?)

7 years agoedje: add missed break in the switch construction.
Jaehwan Kim [Wed, 7 Sep 2016 05:01:51 +0000 (14:01 +0900)]
edje: add missed break in the switch construction.

7 years agoeeze: remove trailing whitespaces
Amitesh Singh [Wed, 7 Sep 2016 04:18:39 +0000 (09:48 +0530)]
eeze: remove trailing whitespaces

7 years agoelementary label: use text width when label calculates duration for slide
Youngbok Shin [Tue, 6 Sep 2016 22:00:53 +0000 (15:00 -0700)]
elementary label: use text width when label calculates duration for slide

Summary:
When developers customize theme for making different type of sliding label,
it would be better to send a duration based on whole text.
[The whole text width - label object's w] is only useful for short, bounce
type sliding.

Test Plan: N/A

Reviewers: raster, tasn, herdsman, cedric

Reviewed By: cedric

Subscribers: minkyu, akanad, z-wony, Blackmole, jpeg

Differential Revision: https://phab.enlightenment.org/D4255

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
7 years agoeina: fix error reporting in cond_timedwait
Andrii Kroitor [Tue, 6 Sep 2016 21:59:39 +0000 (14:59 -0700)]
eina: fix error reporting in cond_timedwait

Summary: EINA_FALSE was set into wrong variable.

Reviewers: jpeg, raster, Hermet, cedric

Reviewed By: cedric

Subscribers: NikaWhite

Differential Revision: https://phab.enlightenment.org/D4282

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
7 years agoeeze: add support of GPIO sysfs detection and watch.
Amitesh Singh [Tue, 6 Sep 2016 15:12:26 +0000 (20:42 +0530)]
eeze: add support of GPIO sysfs detection and watch.

This adds support for detection and watch of GPIO pins in /sys/class/gpio/*
This detects both gpiochip<N> & gpio<N>.

@feature

7 years agoeo base - fix free of all callbacks to set callbacks to NULL
Carsten Haitzler (Rasterman) [Tue, 6 Sep 2016 13:12:23 +0000 (22:12 +0900)]
eo base - fix free of all callbacks to set callbacks to NULL

we set count to 0 but not ptr to NULL. this we must do after free so
when other destructors run dont go relying on this ptr to be valid!

7 years agoEo benchmarks: Fix according to recent Eo changes.
Tom Hacohen [Tue, 6 Sep 2016 12:57:55 +0000 (13:57 +0100)]
Eo benchmarks: Fix according to recent Eo changes.

Thanks to Stefan for the report.

7 years agoeo: update documentation after EFL_CLASS_DESCRIPTION_OPS removal
Stefan Schmidt [Tue, 6 Sep 2016 12:48:31 +0000 (14:48 +0200)]
eo: update documentation after EFL_CLASS_DESCRIPTION_OPS removal

Remove the references to this removed macro.

7 years agoEfl.File: Remove method eject
Jean-Philippe Andre [Tue, 6 Sep 2016 08:48:13 +0000 (17:48 +0900)]
Efl.File: Remove method eject

Unused anywhere.

7 years agoevas: Implement support for external buffers
Jean-Philippe Andre [Mon, 5 Sep 2016 04:53:00 +0000 (13:53 +0900)]
evas: Implement support for external buffers

This brings support for the eo api for external buffers (like
the old data_set / data_get). The new API now works with slices
and planes.

The internal code still relies on the old cs.data array for
YUV color conversion. This makes the code a little bit too
complex to my taste.

Tested with expedite for RGBA and YUV 422 601 planar, both
SW and GL engines (x11).

7 years agoevas: Change internal function image_data_direct
Jean-Philippe Andre [Fri, 2 Sep 2016 08:55:33 +0000 (17:55 +0900)]
evas: Change internal function image_data_direct

7 years agoevas: Implement plane support for managed buffers
Jean-Philippe Andre [Fri, 2 Sep 2016 08:41:36 +0000 (17:41 +0900)]
evas: Implement plane support for managed buffers

7 years agoevas: Switch EO APIs to Eina_Slice for gfx buffers (map)
Jean-Philippe Andre [Thu, 1 Sep 2016 12:46:42 +0000 (21:46 +0900)]
evas: Switch EO APIs to Eina_Slice for gfx buffers (map)

This adds a plane and eina slice argument to the map/unmap
functions, instead of void_ptr + length.

7 years agoevas: Internally switch to Eina_Slice for buffers
Jean-Philippe Andre [Thu, 1 Sep 2016 12:04:37 +0000 (21:04 +0900)]
evas: Internally switch to Eina_Slice for buffers

This will be used for the gfx buffer map/unmap eo apis.

7 years agoevas events: Add "raw" x,y values for future extensions
Jean-Philippe Andre [Thu, 1 Sep 2016 09:34:10 +0000 (18:34 +0900)]
evas events: Add "raw" x,y values for future extensions

For pen tablets, this exposes the values as given by the driver
(quite useless without knowledge of the device itself).

For mice, this exposes x,y as set by the display manager, without
any extra processing in terms of smoothing or prediction. IOW
this returns the same as x,y until a smoothing algorithm is
implemented (todo).

7 years agoevas canvas: add missing brackets.
Hermet Park [Tue, 6 Sep 2016 07:52:56 +0000 (16:52 +0900)]
evas canvas: add missing brackets.

7 years agoevas canvas: fix a wrong condition check in smart changed.
Hermet Park [Tue, 6 Sep 2016 07:45:23 +0000 (16:45 +0900)]
evas canvas: fix a wrong condition check in smart changed.

There were 2 wrong conditions.

1. visible check.
Smart changed can be skipped only if previous/current visibility are false.

2. clipper.
Actually, it needed to check previous/current clippers but previously,
it checked only previous clippers.

@fix

7 years agoecore_con_url_curl.h: add missing include on windows
Andrii Kroitor [Tue, 6 Sep 2016 07:36:59 +0000 (16:36 +0900)]
ecore_con_url_curl.h: add missing include on windows

Summary: windows has its own sockets implementation

Reviewers: raster, bowonryu, vtorri, Hermet

Reviewed By: Hermet

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4279

7 years agoelm_calendar: Add enum to mark display every day before event day.
Woochan Lee [Tue, 6 Sep 2016 07:20:14 +0000 (16:20 +0900)]
elm_calendar: Add enum to mark display every day before event day.

Summary:
There was no way to add marks on every day before event day.

The user may want to add mark something on every day before today.
(passed mark or disable etc...)

Test Plan:
Run elementary_test
Calling "elm_calendar_mark_add()" with ELM_CALENDAR_REVERSE_DAILY value.

Reviewers: cedric, Hermet

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4276

7 years agoEo array callback: Fix compilation on windows.
Tom Hacohen [Mon, 5 Sep 2016 16:51:07 +0000 (17:51 +0100)]
Eo array callback: Fix compilation on windows.

I knew Windows doesn't allow statically initialising pointers in the
global namespace, I had no idea it also applies to functions. That's
quite annoying.

Thanks to Cedric for reporting.

7 years agoRename efl_self to efl_added
Tom Hacohen [Mon, 5 Sep 2016 15:57:35 +0000 (16:57 +0100)]
Rename efl_self to efl_added

It has been discussed on the ML (thread: "[RFC] rename efl_self") and
IRC, and has been decided we should rename it to this in order to avoid
confusion with the already established meaning of self which is very
similar to what we were using it for, but didn't have complete overlap.

Kudos to Marcel Hollerbach for initiating the discussion and
fighting for it until he convinced a significant mass. :)

This commit breaks API, and depending on compiler potentially ABI.

@feature

7 years agoEfl object: Fix outdated docs.
Tom Hacohen [Mon, 5 Sep 2016 15:45:37 +0000 (16:45 +0100)]
Efl object: Fix outdated docs.

7 years agoEo array callback: simplify code and fix reliance on gcc extensions.
Tom Hacohen [Mon, 5 Sep 2016 15:25:34 +0000 (16:25 +0100)]
Eo array callback: simplify code and fix reliance on gcc extensions.

As far as I remember, declaring structures and arrays in a cast is a GCC
extension. I'm not 100% sure I'm right, but I remember it was the case.

Regardless of whether it's an extension or not, this commit removes that
pattern and makes everything cleaner (and faster?).

7 years agoEfl object: rename shadowing variable.
Tom Hacohen [Mon, 5 Sep 2016 15:22:33 +0000 (16:22 +0100)]
Efl object: rename shadowing variable.

7 years agoEfl object: change the way we set class's functions. (merge)
Tom Hacohen [Mon, 5 Sep 2016 15:00:23 +0000 (16:00 +0100)]
Efl object: change the way we set class's functions. (merge)

Merge the changes to the way we et the class's functions.

More information is available in the main commit of the change:
75f5d7947339296c9ed925c24cbea0ec6d3cc287

Breaks API and ABI!

7 years agoAdjust the EFL to the Eo class_initilizer changes.
Tom Hacohen [Mon, 5 Sep 2016 11:31:55 +0000 (12:31 +0100)]
Adjust the EFL to the Eo class_initilizer changes.

7 years agoEfl object: change the way we set class's functions.
Tom Hacohen [Wed, 24 Aug 2016 14:59:28 +0000 (15:59 +0100)]
Efl object: change the way we set class's functions.

This is another follow up to the investigations of T4227. As stated
there, in any PIE (a shared library is one), structures, even const ones
end up being written to because of dynamic relocation. This means that
using static const structures has actually lead to no savings, only
waste. Since we never really needed them, using them made things even
worse than just having a different API that doesn't save them.

Thus, this commit changes the way we set the functions. Instead of
passing a pre-populated struct, we now just have an initialiser function
where you set the functions. This on its own doesn't significantly reduce
the amount of dirty memory pages for a reason I have yet to uncover,
though I believe it's done as a misguided compiler optimisation.
However, this design is flexible enough so we can change to another one
that is quite ugly, but I have already tested and proven that does that.
This patch series doesn't include the better improvement (passing
        everything on the stack as va_args) because the API was too ugly
for me to bear, and I would rather first make sure there is no way to
force the compiler to do the right thing here.

Unfortunately this commit gives up on useless stricter validation.
Before this commit we would make sure that we are only overriding
functions correctly defined in our hierarchy. With this one, we don't
anymore. This is not a big problem though because this is a check that
is also enforced by Eolian. So as long as you are using Eolian, you
should be fine.

Breaks API and ABI!

@feature

7 years agoEfl object: rename EFL_OBJECT_OVERRIDE_OPS_DEFINE.
Tom Hacohen [Thu, 1 Sep 2016 13:34:55 +0000 (14:34 +0100)]
Efl object: rename EFL_OBJECT_OVERRIDE_OPS_DEFINE.

It is now called EFL_OPS_DEFINE as it's used for general purpose ops
definition.