Commit Graph

50040 Commits

Author SHA1 Message Date
Chris Michael c3d5ccf0f9 Revert "evas: Remove set but not used variable"
This reverts commit 24c5df29b3.

This should not have been pushed. Removed the variable from the wrong
spot :(
2016-09-07 08:35:30 -04:00
Chris Michael 24c5df29b3 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>
2016-09-07 08:31:39 -04:00
Chris Michael 578099f915 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>
2016-09-07 08:28:08 -04:00
Chris Michael 6b63d9d6ec 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>
2016-09-07 08:22:11 -04:00
Andrii Kroitor 16a3509906 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
2016-09-07 15:16:47 +03:00
Carsten Haitzler 4478654be1 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.
2016-09-07 20:58:39 +09:00
Carsten Haitzler 09f19c3c73 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?)
2016-09-07 18:17:10 +09:00
Jaehwan Kim 59bdf3461c edje: add missed break in the switch construction. 2016-09-07 14:01:51 +09:00
Amitesh Singh a17909b007 eeze: remove trailing whitespaces 2016-09-07 09:48:39 +05:30
Youngbok Shin f50674db58 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>
2016-09-06 15:00:55 -07:00
Andrii Kroitor 605694ed2a 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>
2016-09-06 14:59:47 -07:00
Amitesh Singh a2e3b8ad13 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
2016-09-06 20:42:26 +05:30
Carsten Haitzler e14a11d9fa 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!
2016-09-06 22:12:23 +09:00
Tom Hacohen 75c981a9d9 Eo benchmarks: Fix according to recent Eo changes.
Thanks to Stefan for the report.
2016-09-06 13:58:13 +01:00
Stefan Schmidt 689ba2ff6d eo: update documentation after EFL_CLASS_DESCRIPTION_OPS removal
Remove the references to this removed macro.
2016-09-06 14:54:42 +02:00
Jean-Philippe Andre 183ba660d6 Efl.File: Remove method eject
Unused anywhere.
2016-09-06 17:48:13 +09:00
Jean-Philippe Andre b2d92f2626 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).
2016-09-06 16:55:00 +09:00
Jean-Philippe Andre 2f737e8f3b evas: Change internal function image_data_direct 2016-09-06 16:54:54 +09:00
Jean-Philippe Andre 69132b5c1d evas: Implement plane support for managed buffers 2016-09-06 16:54:54 +09:00
Jean-Philippe Andre 8ee431572d 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.
2016-09-06 16:54:53 +09:00
Jean-Philippe Andre 1773ba5d82 evas: Internally switch to Eina_Slice for buffers
This will be used for the gfx buffer map/unmap eo apis.
2016-09-06 16:54:53 +09:00
Jean-Philippe Andre d7b8d97fd5 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).
2016-09-06 16:54:53 +09:00
Hermet Park 7f22addf1c evas canvas: add missing brackets. 2016-09-06 16:52:56 +09:00
Hermet Park 51acb259a2 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
2016-09-06 16:45:23 +09:00
Andrii Kroitor 9a1f3891d4 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
2016-09-06 16:36:59 +09:00
Woochan Lee 81db8e9f32 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
2016-09-06 16:20:15 +09:00
Tom Hacohen 829f298589 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.
2016-09-05 17:51:09 +01:00
Tom Hacohen 9c779dca90 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
2016-09-05 16:59:56 +01:00
Tom Hacohen 5eedad98fe Efl object: Fix outdated docs. 2016-09-05 16:45:37 +01:00
Tom Hacohen b9c5ef4eea 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?).
2016-09-05 16:25:36 +01:00
Tom Hacohen f13bb9d9f5 Efl object: rename shadowing variable. 2016-09-05 16:22:33 +01:00
Tom Hacohen 31f44646e6 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!
2016-09-05 16:03:17 +01:00
Tom Hacohen a8ccb191c6 Adjust the EFL to the Eo class_initilizer changes. 2016-09-05 16:03:17 +01:00
Tom Hacohen 4aae224ef5 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
2016-09-05 16:03:17 +01:00
Tom Hacohen c8c0bbcfcf Efl object: rename EFL_OBJECT_OVERRIDE_OPS_DEFINE.
It is now called EFL_OPS_DEFINE as it's used for general purpose ops
definition.
2016-09-05 16:03:16 +01:00
Tom Hacohen 48f7eb02a8 Eolian: Fix tests according to recent generator changes. 2016-09-05 16:03:16 +01:00
Daniel Kolesa f92a67e191 eolian: update generation of op funcs 2016-09-05 16:03:16 +01:00
Tom Hacohen e0a95a96c9 Efl object: Simplify test that was unneededly prone to breaking 2016-09-05 16:00:07 +01:00
Gustavo Sverzut Barbieri 72bfca0df5 efl_net_server_fd: fix coverity issue.
fixes CID 1361945, minor but let's do it :-)
2016-09-05 09:36:14 -03:00
Daniel Hirt 2e53068907 Edje entry: fix selection start with shift + mouse_down
Fixes T3043.

Starting a selection should be possible with shift + mouse_down. No need to
check the "have_selection" flag.

@fix
2016-09-05 14:32:34 +03:00
Stefan Schmidt f52ffec5dd tests: ecore: add some debug for ecore timer test case
This tests fails on Jenkins from time to time. The timeout is to big. Adding
some debug here top see how far we are off when this happens.
2016-09-05 11:21:54 +02:00
Stefan Schmidt 6bc1dc6d83 cxx: follow EINA_ERROR_OUT_OF_MEMORY deprecation
Follow the rest of efl and use ENOMEM from now on. This avoids ugly deprecation
warnings.
2016-09-05 10:39:24 +02:00
Jean Guyomarc'h 4d7aade978 ecore_audio: fix distribution of eolian files
When a 'make dist' is executed on a repository that does not have
CoreAudio support, eolian files required for CoreAudio compilation will
not be distributed, making the source distribution incompatible where
CoreAudio is required.
There is the same potential issue for pulseaudio, but as it is a basic
requirement, it is likely to always have been distributed because the
distribution was always created from a base which enabled pulseaudio.

This allows to produce on Linux a sources tarball usable on Mac OS X.

@fix
2016-09-04 17:00:44 +02:00
Marcel Hollerbach 58dedf4674 edje: protect against no file set yet.
Summary:
There can be the case that the file of a edje is NULL. Even if this case
is a bit strange, we should not crash on it.

Sample code which produces the crash:

   Edje_Object *edje;
   int r, g, b, a;

   edje = edje_object_add(evas);

   edje_obj_color_class_get(edje, "bla",
	EDJE_COLOR_CLASS_MODE_COLOR, &r, &g, &b, &a);

So better protect against this case.

Reviewers: raster, herdsman

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4277
2016-09-04 13:46:38 +02:00
Felipe Magno de Almeida 428cf0cbad elementary-cxx: Speed C++ compilation test
Remove unnecessary linking libraries from test so
linking becomes fast
2016-09-03 19:55:19 -03:00
Cedric Bail 05f05dde5c eo: protect efl_isa from thread race condition. 2016-09-02 10:19:45 -07:00
Cedric BAIL 3ab60a1564 eo: store registered callbacks in an array instead of a single chained list. 2016-09-02 10:19:45 -07:00
Cedric BAIL 605fec91ee eo: improve speed of walking callback array by sorting them during creation.
This improve speed of processing events in genlist scrolling benchmark by 30%
inside the efl_object_event_callback_call code. Not a really big deal as it
goes from 0.9% to 0.6% of the total time spend. Welcome to micro optimization.
2016-09-02 10:19:45 -07:00
Gustavo Sverzut Barbieri e12afd772c efl_net_dialer_websocket: EFL now does WebSocket!
The Efl.Net.Dialer.Websocket is just like other Efl.Net.Dialers: you
can dial, you can close, monitor connected/address resolved and so
on. And you can use WebSocket primitives and events such as
text_send(), binary_send(), ping() and close_request() (since
WebSockets use a close process where you should state a close
reason). See efl_net_dialer_websocket_example.c

Even if WebSocket is a message-based protocol (like "packets" from
UDP), you can use efl_net_dialer_websocket_streaming_mode_set() to
tell it to handle text or binary messages as a stream. Then all the
Efl.Io.Reader and Efl.Io.Writer APIs work as expected, see
efl_io_copier_example.c updates.
2016-09-02 00:08:50 -03:00
Gustavo Sverzut Barbieri 57e765a758 efl_net_dialer_http: use CURLOPT_NOSIGNAL.
EFL uses its own signal handlers, so we must disable CURL's usage of
those.
2016-09-02 00:08:50 -03:00