Commit Graph

33516 Commits

Author SHA1 Message Date
Felipe Magno de Almeida e1d55f2db1 eio: Eio_Model with promises 2016-03-15 16:42:58 -03:00
Felipe Magno de Almeida ef16661883 ecore: Add tests for promises
Added useful tests for generation of class with promises and direct usage of promises.
2016-03-11 18:31:31 -03:00
Felipe Magno de Almeida e17d8e901b Add promise
Add a promise object that allows Eolian interface to include promises
as a way to have asynchronous value return and composibility.

The usage is like this in a .eo file:

class Foo {
   methods {
      bar {
         params {
            @inout promise: Promise<int>;
         }
      }
  }
}

Which will create the following API interface:

void foo_bar(Eo* obj, Ecore_Promise** promise);

and the equivalent declaration for implementation.

However, the API function will instantiate the Promise for the user
and the implementer of the class automatically. So the user of this
function will treat it as a @out parameter, while the developer of the
function will treat it like a @inout parameter.

So, the user will use this function like this:

Ecore_Promise* promise; // No need to instantiate
foo_bar(obj, &promise);

int* p = ecore_promise_value_get();
or:
ecore_promise_then(promise, callback);
2016-03-11 18:12:39 -03:00
Felipe Magno de Almeida c09e43fb4f eo: Add before and after macro hooks for API generation functions
Add two parameters for macros that generate API functions in Eo so
that the generation can be customized with macros used by Eolian.
2016-03-11 17:22:59 -03:00
Daniel Kolesa 97adf6d52b eolian generator: check fwrite return value currectly
This fixes CID 1327247.

@fix
2016-03-11 13:16:34 +00:00
Daniel Kolesa c420cbe9f0 eolian: refactor database_typedecl_to_str to remove dead code
After the type system transition there was some unnecessary dead code.
Fixes CID 1352512.
2016-03-11 13:04:41 +00:00
Tom Hacohen 8a56f5c98e Revert "Eo: Change to the Eo4 eo_add syntax."
I found a way to keep eo_add() the way it was and gracefully degrade to
a portable (but not as fast) solution for compilers that don't support
the compound macros returning a value gnu extension: ({int a; a;}).

I'm reverting these changes now, and I'll introduce the fallback as soon
as I can.

This reverts commit b85bb37183.
2016-03-11 12:29:04 +00:00
Tom Hacohen 66b4290d91 Revert "Vg node: modify so the eo_add migration script won't break."
This reverts commit 6ac1fb78d8.
2016-03-11 12:29:03 +00:00
Tom Hacohen 81240669e8 Revert "Ector and eo suite: Semi automatically migrate to the new eo_add."
This reverts commit df83edaeb6.
2016-03-11 12:29:03 +00:00
Tom Hacohen f24210caac Revert "Automatic migration to the new eo_add syntax."
This reverts commit 4f949a2757.
2016-03-11 12:29:03 +00:00
Tom Hacohen 9fdac37187 Revert "Examples: Update according to recent eo_add changes."
This reverts commit 6594ba0b6d.
2016-03-11 12:29:03 +00:00
Tom Hacohen 15646cf5e6 Revert "Fix examples according to the recent eo event changes."
This reverts commit d2fba6c595.
2016-03-11 12:29:03 +00:00
Tom Hacohen 72c6236038 Revert "cxx: Migrate C++ binding to the new eo_add syntax"
This reverts commit 48f62ad686.
2016-03-11 12:29:03 +00:00
jinwoo.shin be8605dc44 edje: add error log message for missing description
Summary:
Developer cannot notice that any description didn't applied due to missing description or typo.
This message will be helpful to make correct the application.

Reviewers: cedric, Hermet, raster

Subscribers: soohye.shin, minkyu, cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-03-10 14:15:15 -08:00
Cedric BAIL 685681c864 efl: rename efl.core.animator to efl.animator.
It has been decided that we would not use any namespace for interface
and they will sit in efl main namespace.

This patch doesn't correct the naming of the event has we don't have a
prefix for event. We do still have EFL_ANIMATOR_EVENT_ANIMATOR_TICK,
instead of a nicer EFL_EVENT_ANIMATOR_TICK.
2016-03-10 13:14:13 -08:00
Derek Foreman 9646f8e9ec ecore_wl2: Don't treat EINVAL as a recoverable condition
EINVAL is bad, we can't go on.  If we treat it like it's not a fatal
error we'll end up spinning on the fd and constantly retrying sends
on the dead wayland connection.

@fix
2016-03-10 15:55:04 -05:00
Mike Blumenkrantz 358a204491 ecore-wl2: set fd handler active flags correctly for connect/create
@fix
2016-03-10 14:23:43 -05:00
Chris Michael bb24aab001 evas-gl: Fix dereference after null check
Coverity reports that 'ctx' may be NULL here and we should check it
before usage (as is done above).

Coverity CID1339785

@fix

Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-03-10 12:20:34 -05:00
Chris Michael 07da0ba5d7 edje: Don't leak array source if we are going to exit function
This patch fixes a potential resource leak where we would previously
create a new eina_array and then possibly return from this function
(when checking validity of 's' parameter) without freeing the newly
created array.

Coverity CID1350291

@fix

Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-03-10 12:13:44 -05:00
Stefan Schmidt 3666d14980 build coverage: make coverage numbers more accurate by using a baseline
The lcov tool offers the functionality to have an initial run over the code base
before the tests are executed to make sure it catches all files, even the ones
that are not loaded during the test run.

This is something we missed so far. The reports have only been in relation to
the files that actually have been loaded during the test. We missed quite a
few files which made our numbers inaccurate. Things like
modules/emotion/gstreamer1 have no tests yet and thus never showed up in the
coverage report. While it has 103 functions and over thousand lines which need
to get covered. With the baseline this is handled now. Thanks goes to the folks
at LibreOffice who described their lcov setup here:
https://wiki.documentfoundation.org/Development/Lcov

New numbers are lower now as we count in all the files never loaded which
decreases our percentages.

Overall coverage rate:
  lines......: 30.2% (65119 of 215841 lines)
  functions..: 34.0% (6361 of 18733 functions)
  branches...: 23.6% (35627 of 151096 branches)
2016-03-09 23:31:27 +01:00
Stefan Schmidt b0c28953b3 examples gitignore: adding four new examples to their .gitignore files 2016-03-09 23:13:38 +01:00
Vitor Sousa 7973126165 eo_cxx: correct constness of basic Eo C++ wrapper functions 2016-03-09 18:52:10 -03:00
Mike Blumenkrantz 8e077745bc ecore-drm: don't set DBG on log level if DBG not already set
...
2016-03-09 15:36:53 -05:00
Chris Michael 96085feb6d ecore-drm: Disable default DBG log level
Simple patch to disable setting ecore-drm log level to DBG by default

@fix

Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-03-09 15:24:56 -05:00
Vitor Sousa 48f62ad686 cxx: Migrate C++ binding to the new eo_add syntax 2016-03-09 15:46:19 -03:00
Tom Hacohen d2fba6c595 Fix examples according to the recent eo event changes. 2016-03-09 17:16:19 +00:00
Tom Hacohen 6594ba0b6d Examples: Update according to recent eo_add changes. 2016-03-09 17:02:45 +00:00
Tom Hacohen 4f949a2757 Automatic migration to the new eo_add syntax. 2016-03-09 16:09:14 +00:00
Tom Hacohen df83edaeb6 Ector and eo suite: Semi automatically migrate to the new eo_add.
There were some issues with the migration that required manual
intervention.
2016-03-09 16:09:14 +00:00
Tom Hacohen 6ac1fb78d8 Vg node: modify so the eo_add migration script won't break. 2016-03-09 16:09:14 +00:00
Tom Hacohen b85bb37183 Eo: Change to the Eo4 eo_add syntax.
The current one was a hack in the meanwhile and was not protable.
2016-03-09 16:09:14 +00:00
Stefan Schmidt 2d0d2802bf tests evas: enable xpm image loader in tests
Added in 2014 and not enabled since then. This seems to be fixed now so we can
finally enable it.
2016-03-09 15:25:35 +01:00
Stefan Schmidt 312dd58889 tests evas: remove commented out function which have not been used since 2014
It was already unused when it was disabled almost two years ago.
dbe02d593e
Its about time to remove it.
2016-03-09 15:25:35 +01:00
Chris Michael d4307e3494 ecore-drm: Don't re-include config.h
As ecore_drm_private.h already includes config.h header, we don't need
to include it here in these files also

@fix

Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-03-09 08:27:05 -05:00
Chris Michael 2dbe2732a2 ecore-drm: Update copyright notice
As portions of this code have been derived from existing code in
Weston, we should also be including their copyright/licence text to
give credit.

NB: Fixes T3286

@fix

Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-03-09 08:22:22 -05:00
Tom Hacohen 7d8cd6c40f Revert "ecore: Create Promises"
Reverting this at Felipe's request following my email. There are many
things I strongly object to in this commit. I've touched the surface of
those on the ML (which doesn't work at the moment), though we need to
better discuss it.

The gist:
1. dlsym is a really bad hack that is not even needed.
2. I don't see why eo should even be aware of promises. It's not aware
of list, hash and etc.
3. The eolian changes were done wrong.

This should have been discussed and consulted before done, even if only
because of the amount of hacks it includes and the cross-domain (ecore,
eo and eolian) nature of it.

This reverts commit f9ba80ab33.
2016-03-08 14:23:57 +00:00
Vitor Sousa f1a6ff2956 eo_cxx: Fix unused parameter warning when no constructor is required
Test Plan: compile elm

Reviewers: stefan_schmidt

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D3778
2016-03-08 10:49:36 -03:00
Stefan Schmidt 35c577578a tests eolian: add test cases for type stub generations
While we had the functionality to generate type stubs header we never had
these tested in our unit test setup. Adding to simple cases for struct
and typedef which we already use for normal header generation tests.
2016-03-08 11:14:56 +01:00
Stefan Schmidt 29028a50ce eolian_gen: mention the option for generating a stub header in the example use
Listed in the available options already but better also list it in the example
usage where the other three generation types are listed as well.
2016-03-08 11:14:56 +01:00
Stefan Schmidt ff215b2f8f eolian_gen: remove unused functions _nextline and _startline
These two have no users and there is no point in keeping them around.
2016-03-08 11:14:55 +01:00
Stefan Schmidt 4f86edc1b6 evas-3d examples: remove unused variables 2016-03-08 11:06:29 +01:00
Carsten Haitzler 3df71ab0f6 eo del interceptor: add the ability to intercept deletions of eo objects
Imagine this. You have an object. You pass this object handle as a
message to another thread. Let's say it's not a UI object, so
something you might expect to be able to be accessed from multiple
threads. In order to keep the object alive you eo_ref() it when
placing the message on a queue and eo_unref() it once the message is
"done" in the other thread. If the original sender unref()ed the
object before the message is done, then the object will be destroyed
in the reciever thread. This is bad for objects "expecting" not to be
destroyed outside their owning thread.

This allows thius situation to be fixed. A constructor in a class of
an object can set up a delete interceptor. For example if we have a
"loop ownership" class you multi-ple-inherit from/use as a mixin. This
class will set up the interceptor to ensure that on destruction if
pthread_self() != owning loop thread id, then add object to "delete
me" queue on the owning loop and wake it up. the owning loop thread
will wake up and then process this queue and delete the queued objects
nicely and safely within the "owning context".

This can also be used in this same manner to defer deletion within a
loop "until later" in the same delete_me queue.

You can even use this as a caching mechanism for objects to prevernt
their actual destruction and instead place them in a cached area to be
picked from at a later date.

The uses are many for this and this is a basic building block for
future EFL features like generic messages where a message payload
could be an eo object and thus the above loop onwership issue can
happen and needs fixing.

This adds APIs, implementation, documentation (doxy reference) and tests.

@feature
2016-03-08 16:57:22 +09:00
Stefan Schmidt 96bb964dd5 Revert "eina: split Makefile with files/headers in preparation for additional per sub directory compilation"
This reverts commit 7f4ea1a79c.

This reverts one of three parts of the try to get sub directory
compilation back into eina. It breaks our distcheck though and I
talked to Cedric about it and he prefers to revert these as we might
need to go another route to bring this functionality back. Details
will come to the mailing list.
2016-03-08 00:18:08 +01:00
Stefan Schmidt bb0d161d8f Revert "eina: reintroduce additional support for eina sub directory compilation."
This reverts commit 1affc60d00.

This reverts one of three parts of the try to get sub directory
compilation back into eina. It breaks our distcheck though and I
talked to Cedric about it and he prefers to revert these as we might
need to go another route to bring this functionality back. Details
will come to the mailing list.
2016-03-08 00:18:08 +01:00
Stefan Schmidt c55625aec4 Revert "eina: rely on GNU make to find file at their correct location."
This reverts commit e26fcbb1dc.

This reverts one of three parts of the try to get sub directory
compilation back into eina. It breaks our distcheck though and I
talked to Cedric about it and he prefers to revert these as we might
need to go another route to bring this functionality back. Details
will come to the mailing list.
2016-03-08 00:18:08 +01:00
Daniel Kolesa bf2c0c3405 eolian: validate eo/legacy prefix to be [a-z_][a-z0-9_]* 2016-03-07 15:01:19 +00:00
Stefan Schmidt 2ae2790604 build: do not use DEBUG when running with coverage
Do not force this on everybody who runs with tests=coverage. It makes stdout
impossible to follow as well as overruns the tests log file. If one wants to
run with -DDEBUG it can be set from your own CFLAGS.
2016-03-07 14:39:16 +01:00
Stefan Schmidt 5181a4d0ef build: fix linking with coverage enabled after osx fix
After aca6fc8c36 there have been problems when
linking when having coverage enabled.
AC_SEARCH_LIBS was used wrongly here. You need function name first and lib to
link against as second argument. The symbol name also has wto leading
underscores for me.
/usr/lib/gcc/x86_64-pc-linux-gnu/5.3.0/../../../../x86_64-pc-linux-gnu/bin/ld generated: undefined
reference to `__gcov_init'
2016-03-07 14:36:27 +01:00
Stefan Schmidt da309d6863 tests: get rid of Eo_Event2 in cxx tests
Hopefully the last occurance of Eo_Event2 in our code base. Fixes a build break.
2016-03-07 14:19:46 +01:00
Stefan Schmidt c634239b63 cxx bindings: get rid of Eo_Event2
This follows the change in EO and fixes some build breaks.
2016-03-07 14:18:56 +01:00