Commit Graph

28764 Commits

Author SHA1 Message Date
Vitor Sousa ed75aa32d6 cxx: General C++ Eo wrapper generation improvement
Using a new architecture in the generated files that simplify multiple
inheritance and allows the use of interface types as parameters.

No longer using a hand-crafted C++ header for eo_base.eo.
This file was added to the generation process.

Updated all files that are dependent in the hand-crafted eo_base
C++ header.

Now there is a class that contains the essentials functions of the former
eo::base wrapper and that is used to create (through inheritance) the
"concrete" classes for all Eo generated wrappers.

No longer binding any function or property that are protected, private or
legacy for now.

eolian_type_instance is now a struct with general information for the
whole type.

Added the new header file namespace_generator.hh to hold namespace
generation grammars.

Separated declaration and definition of Eo wrappers methods.

Referring for most objects by its full name (starting at the global
namespace ::) in the generated files.

Created additional helper grammars to avoid code replication.

Removed a TODO comment referring to a doubt about inheritance of
constructor methods.
Added a TODO comment regarding memory allocation for callbacks in static
member functions.
2015-01-05 15:52:27 -02:00
Larry Jr ebebcf6438 catch exceptions in cxx wrappers and throw a eina_error 2015-01-05 15:52:27 -02:00
Vitor Sousa d5ec6c41d9 eolian_cxx: Fix: Using binding type for @out parameter instead of native type
No longer reverting to the native type when the parameter has "@out"
direction.

Added "is_out" member variable to eolian_type class.
With that, generators can keep track of the direction of the parameters.
Also added helper functions "type_is_out" and "type_is_complex".

Created "to_native" functions in eo_cxx_interop.hh to convert binding types
from C++ arguments to the actual C function arguments.
Added static assertions in these functions to enforce compatibility
between the binding and the native type (Required by @out parameters).

Reworked the overload of the "to_c" function for eo::base derivated
objects. Now there is a overload that rely in the compatibility
between the native type and the wrapper, enabling a wrapper to be used as
an output parameter.
2015-01-05 15:52:27 -02:00
Felipe Magno de Almeida 890ce1f9cf eolian-cxx: Fixed C++ conversion for lists
Signed-off-by: Vitor Sousa <vitorsousasilva@gmail.com>
2015-01-05 15:52:27 -02:00
Larry Jr dff706f123 added new types in lookup table
Signed-off-by: Vitor Sousa <vitorsousasilva@gmail.com>
2015-01-05 15:52:27 -02:00
Vitor Sousa 64dede1cf1 eolian_cxx: Fix callback handling on generated wrappers
Added callbacks to the event EO_EV_DEL for deleting heap-allocated
function objects. This will enforce that the allocated memory,
necessary for maintaining these callable objects alive, is freed at
least when the underlaying Eo object is destroyed.

Functions and constructor methods are now able to have multiple
callback types.

Removed some unused generators, since they become inconsistent now that
functions are required to handle multiple callback types.

Allocating callback objects in the constructor methods instead of
delaying it until the final constructor is called.

Created some generators to avoid code repetition.

Now the generator parameters_forward_to_c replicate the behavior of the
generator parameters_list. The generator parameters_list was, then,
removed since it have a less intuitive name.

Added a TODO comment regarding the behaviour of simple not translating
callbacks that are not followed by a user data pointer.

The generator parameter_type was moved from "parameters_generator.hh" to
"type_generator.hh" for more consistency and convenience.
2015-01-05 15:52:27 -02:00
Vitor Sousa 2b94d874fe eo_cxx: Fix leakage of eo objects by removing unnecessary "eo_ref"
Removed the call to eo_ref in the conversion from eo::base to the native
Eo* (in "to_c" function) in order to avoid eo objects being leaked.
2015-01-05 15:52:27 -02:00
Vitor Sousa 132abc3534 eolian_cxx: Fix Eolian C++ generated wrapper inconsistencies
In convert.cc: Reading functions instead of implements to convert the
Eolian_Class. It avoids creation of methods that do not belong to the
class, in special it avoids calling the default constructor twice in the
generated code.

No longer generating one constructor in the C++ wrapper for each eolian
class constructor, since the correct behavior demands that all constructor
should be called. Now the wrappers have "constructor methods" that
must be called when creating a new object.

Updated test cases and examples to match the new interface. Some class
constructors and some test cases have to be removed since they were based
on the wrong assumption that constructors are mutually exclusive.

Created new generators for forwarding parameters and for looping over
the relevant parameters to the C++ wrapper executing a generic lambda.

Added a TODO comment regarding the call of constructor methods of all
base classes. Currently there is no base type with constructors, so this
situation should be discussed more.

Added a TODO comment regarding the way callback parameters are being
processed.
2015-01-05 15:52:27 -02:00
Vitor Sousa ed8ce801cb eolian_cxx: Assertions to ensure C++ wrapper compatibility with Eo*
Added static assertion in the generated header to ensure that the wrapper
have the same size of Eo*, thus grating compatibility between these types.

Added static assertion in the generated header to ensure that the wrapper
have standard layout. This should ensure correct type sizes when dealing
with inheritance.

Created a test to ensure that eo::base and the eolian wrappers have the
same size of a Eo*.

Added eolian_cxx_test_wrapper.cc to the list of test source files in
Makefile_Eolian_Cxx.am.
2015-01-05 15:52:27 -02:00
Vitor Sousa 1cbbb9a577 eina_cxx: Using eina::eina_init in all tests cases
Removed the eina_init call from the test suite main function to enforce
that each test case creates an instance of the eina::eina_init object.

Added an eina::eina_init object instanciation for each test case that
were lacking this code.
2015-01-05 15:52:27 -02:00
Vitor Sousa fb5ba0f758 eina_cxx: Fix eina::array cend method recursive calling itself
@fix
2015-01-05 15:52:27 -02:00
Vitor Sousa ee81566ac8 eina_cxx: Fix eina::accessor for C++ Eo wrappers
Created a specialization of the eina::accessor for C++ Eo wrappers.

Created an override of the "accessor" methods in the eina::list specialization
for Eo wrappers (in eina_list.hh). It is necessary to create accessors with the
correct type.

Created specializations of std::is_base_of to avoid compilation errors related
with _Eo_Opaque type.

Added new test cases in "eina_cxx_test_accessor.cc" to test the accessor
specialization.

Added efl::eina::eina_init to the existing test cases to correctly do the
on demand initialization required by the tests.

@fix
2015-01-05 15:52:27 -02:00
Chris Michael 7f82494459 ecore-evas: Fix compiler warnings about inproper returns
Summary: This fixes missing return values in functions that return
non-void

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-05 12:14:46 -05:00
Daniel Kolesa c78fc161cf elua: more getopt.lua features
Argument count limit is now supported. The source has been cleaned up and
unified so that less code repeating is done. The module is now environment
safe, not depending on specific metatable being set on strings. More callbacks
have been added and error messages are now more descriptive.
2015-01-05 16:51:01 +00:00
Cedric BAIL 3be1c0b7cf edje: fix @since to match the next release.
Damn we release to fast ! Thanks davemds !
2015-01-05 16:52:24 +01:00
kabeer khan c1d805d2b4 ecore_evas/wayland_shm: Set alpha of ecore_evas object if parent alpha is set
Summary:
Resolved FIXME ecore_evas_wayland_shm_new_internal to set alpha if parent alpha is set

Signed-off-by: kabeer khan <kabeer.khan@samsung.com>

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1842
2015-01-05 09:12:30 -05:00
vivek c5f6c3941c ecore_evas_wayland: Add null check conditions in ecore evas wayland module
Summary:
Added null check conditions to check ecore_evas pointer in various places
of ecore evas wayland common module

Signed-off-by: vivek <vivek.ellur@samsung.com>

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1812
2015-01-05 09:09:03 -05:00
Seunghun Lee 2db6ed0945 ecore-drm: remove duplicated code from logind and tty.
Summary: integrates the code used in common.

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1796
2015-01-05 09:08:27 -05:00
Cedric BAIL a5183ee424 edje: Edje_Edit - add API for renaming of image.
Reviewers: Hermet, raster, seoz, cedric

@feature

Subscribers: reutskiy.v.v

Projects: #efl

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-01-05 10:54:11 +01:00
Cedric BAIL 93da127573 edje: Edje_Edit - remake deletion and replacing of strings
Summary: Add new function for replacing string with using eina_stringshare_replace() and change _edje_if_string_free() to setup passed string to NULL.

@fix

Reviewers: raster, Hermet, seoz, cedric

Reviewed By: cedric

Subscribers: reutskiy.v.v

Projects: #efl

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-01-05 10:52:59 +01:00
Shinwoo Kim d41b77ec21 [edje] refine odd lines to delete _edje_timer
Summary: Refine odd lines to delete _edje_timer

Test Plan: Run example using edc programs to change state

Reviewers: raster, cedric, woohyun, jaehwan, Hermet

Reviewed By: Hermet

Subscribers: cedric, seoz

Differential Revision: https://phab.enlightenment.org/D1838
2015-01-05 13:42:52 +09:00
Vinícius dos Santos Oliveira 5a2ac0c42f [eina-cxx] fix: wrong parameter type preventing the use of copy ctor
"Eina_Stringshare *" type is interchangeable with "const char *".
The "stealing" constructor from efl::eina::stringshare was incorrectly
using "char *" instead "const char *", preventing it from being used.
2015-01-04 17:56:53 -02:00
zmike f55c756c17 curl usage better accounts for timeouts
curl is dumb. it needs to poll its own fd for data, it gets confused with its own timeouts, and sometimes it forgets that it's supposed to be doing anything.

this fixes:

* connection timeout processing
* connection data processing order

also curl_multi_timeout calls are now done from a single function to handle all of this stupidness in one place

maybe backport after more testing...
2015-01-02 23:21:55 -05:00
Cedric BAIL a68ded6ab6 ecore_con: SSL error function is waiting for Eo object not their private data. 2014-12-30 11:19:56 +01:00
Cedric BAIL aa69cd89a6 ecore_con: the timer callback is waiting for the Eo object not its private data.
This @fix T1962 .
2014-12-30 11:19:38 +01:00
Andy Williams ed7b41ce53 Make it clear in documentation that these methods are not implemented.
Even so return a more meaningful value - 0 is not a member of the Enum it returns.
2014-12-29 16:54:50 +00:00
Daniel Juyung Seo 694c77826b eeze: Fix unused variable build warning.
lib/eeze/eeze_udev_syspath.c: In function 'eeze_udev_syspath_set_sysattr':
lib/eeze/eeze_udev_syspath.c:206:38: warning: unused parameter 'value' [-Wunused-parameter] double value)
                                                                     ^
2014-12-29 23:18:03 +09:00
Daniel Juyung Seo 6e2c311f9d Revert "evas/gl_x11: set EGL_PLATFORM environment variable" as cedric wants to change it.
This reverts commit 6fe870de14.
2014-12-29 20:56:14 +09:00
MinJeong Kim 6fe870de14 evas/gl_x11: set EGL_PLATFORM environment variable
Summary:
Without EGL_PLATFORM environment variable, eglInitialize() can be
failed because egl tried to load DRM platform instead of X11 platform and it
tried to handle XDisplay pointer as a gbm_device pointer as well.
The failure seems to be occured especially if the egl was built
with DRM platform as native platform.

This revision can prevent the failure by indicating proper egl platform using
EGL_PLATFORM environment variable.

@fix

Reviewers: gwanglim, jaehwan, seoz

Reviewed By: seoz

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1828
2014-12-29 20:14:07 +09:00
ChunEon Park 3f9d952774 Edje_Edit: Add sound samples into generated code for the group.
Summary:
Include sound samples, that uses in programs of this group in collections block.
@fix

Reviewers: cedric, Hermet, raster, reutskiy.v.v

Projects: #efl

Differential Revision: https://phab.enlightenment.org/D1824
2014-12-29 12:01:21 +09:00
Cedric BAIL 21707789d7 evas: check for grayscale png and jpeg. 2014-12-28 22:14:05 +01:00
Cedric BAIL 61b6986880 evas: first destroy the rectangle, then the pool. 2014-12-27 14:10:37 +01:00
ChunEon Park 671b04faee edje/edje_edit: remove unrelated call 2014-12-26 10:21:32 +09:00
Andrii Kroitor 4d0695d284 edje: fix memory leak in edje_edit_source_generate.
Reviewers: cedric, seoz, Hermet, raster, reutskiy.v.v

@fix

Reviewed By: reutskiy.v.v

Subscribers: cedric, reutskiy.v.v

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-12-25 21:57:57 +01:00
Mykyta Biliavskyi eae8a62009 edje: add tween images into generated code for the group.
Summary:
Include images, that uses as tweens in parts in Edje_Edit.
@fix

Reviewers: raster, Hermet, reutskiy.v.v, cedric

Reviewed By: reutskiy.v.v, cedric

Subscribers: cedric, reutskiy.v.v

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-12-25 21:51:25 +01:00
vivek cd99392df7 evil: fix memory leak issue in evil_dirent module.
Summary:
Memory allocated to dir was not freed. so added code to free dir struct

@fix

Signed-off-by: vivek <vivek.ellur@samsung.com>

Reviewers: devilhorns

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-12-25 21:50:24 +01:00
Srivardhan Hebbar 1d25d6da79 eina: fix memory leak issue in Eina_Value.
Summary:
eina_inarray_free was not called. So calling it to fix the memory leak.

@fix

Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>

Reviewers: devilhorns

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-12-25 21:37:05 +01:00
Srivardhan Hebbar b411be4be3 ecore: fix memory leak issues.
Summary:
eina_inarray_new returns NULL if malloc fails. This check was not performed. So have added the check for the error case and returning NULL if any of it fails.

@fix

Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>

Reviewers: devilhorns

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-12-25 21:34:50 +01:00
vivek d7c1987d0f efreet: pass the correct option from the user input.
Summary:
Pass the correct option -f for flush

@fix

Signed-off-by: vivek <vivek.ellur@samsung.com>

Reviewers: devilhorns, englebass

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-12-25 21:32:55 +01:00
Srivardhan Hebbar 28f0f7044a evas: fix memory leak issues in evas_object_textgrid.
Summary:
Calling eina_inarray_free to fix the memory leak issue in the error condition.

@fix

Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>

Reviewers: devilhorns

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-12-25 21:31:06 +01:00
Vyacheslav Reutskiy 2eebeb8b61 edje: edje_edit - add getter/setter for anti_alias attribute 2014-12-24 11:17:03 +00:00
Carsten Haitzler 38cb8fcbe0 ecore x vsync - disable ecore_x vsync daemon due to unresolved problems 2014-12-24 17:36:03 +09:00
ChunEon Park 382c41e42d edje: support anti_alias option
set anti_alias in part section.
default is enabled.

part { name: "test";
   type: XXX;
   anti_alias: 0;
   ...
}

@feature
2014-12-24 16:29:49 +09:00
ChunEon Park 956754ee57 edje/edje_calc: clean up code
remove duplicated.
2014-12-24 14:51:03 +09:00
Cedric BAIL bb74ded8c8 gitignore: don't track generated file. 2014-12-23 22:37:23 +01:00
Cedric BAIL 0153e782c1 autotools: build new evas_3d_mmap examples. 2014-12-23 22:36:36 +01:00
Bogdan Devichev c471665ac8 evas: make Evas 3d mesh is inherited from Efl.File (functions file_set and save) 2014-12-23 21:20:21 +01:00
Bogdan Devichev ce36f8f5ad evas: better example of _mmap_set and resources for it are added. 2014-12-23 21:20:21 +01:00
Bogdan Devichev dd60525798 evas: a _mmap version of the file_set is added. 2014-12-23 21:20:21 +01:00
Bogdan Devichev 243df1aaba evas: the eet loader use eet_mmap that take an Eina_File instead of eet_open. 2014-12-23 21:20:21 +01:00