Commit Graph

30452 Commits

Author SHA1 Message Date
Jean-Philippe Andre ced11e92a8 Emile image: Fix decoding of ETC1+Alpha images
This bug is probably a copy&paste issue when writing emile.
2015-04-14 16:37:12 +09:00
Jean-Philippe Andre be40389bea Evas GL common: Fix masking of maps based on RGB+A textures
That's like a case that will never happen.
Apply a map on an image loaded from an ETC1_ALPHA image. Oh, and
also add a mask on top of that.
2015-04-14 16:37:12 +09:00
Carsten Haitzler 34bb3bb9a5 efreetd - cache - mark cd as const as it isnt needing a free on return 2015-04-14 13:52:37 +09:00
Felipe Magno de Almeida eaa6961378 eina-cxx: Fix compilation error on clang
Clang implicitly deletes the default-constructor on range_ptrlist, which must be explicitly defined.
2015-04-14 01:06:57 -03:00
Felipe Magno de Almeida b55a8104ad cxx: Made automake files depend on their C counterparts for compilation
Avoids redundancy and maintenance for non-C++ developers.
2015-04-14 01:06:57 -03:00
Vitor Sousa ce36f0be93 eolain_cxx: Fix C++ support for new Eolian features
Added optional constructor methods for C++ Eolian wrappers.
Changed the interface of wrappers' main constructors.
If there are optional constructor methods they should be passed as variadic
template argument at the end of the constructor.
To support variadic template arguments, the optional "parent" parameter is
now the first parameter and there is another constructor without the
"parent" parameter.

Checking for @optinal and @nullable attributes instead of @nonull.
Now @nonull is the default, and eina::optional is only used when @optional
or @nullable attribute is specified.

The names of constructor methods no longer have the class name prefixed.

Added unit tests for checking the binding of optional constructors.
Added new .eo file to be used in the test.

Changed the generated documentation of constructors.

Changed the efl::eo::inherit accordingly, to address these new features.
Now the constructor methods should be explicit called in the
efl::eo::inherit constructor, which will receive them via variadic
template arguments.

Added another constructor to efl::eo::inherit for passing the parent
object.

Updated some tests and examples to follow the new interface.

Removed some code that is no longer necessary.

Also, fix Eolian C++ support for constructing properties. fix
assertion when parsing constructing properties.

Now if a property is a constructing property eolian_cxx will generate a
constructor method that have the property name (without the "_set" suffix).
2015-04-14 01:06:57 -03:00
Vitor Sousa 72604d4957 eina_cxx: Add methods to get an eina::accessor from an eina::ptr_array
eina::ptr_array was missing the methods to get an eina::accessor from it.
Added these methods.
2015-04-14 01:06:57 -03:00
Vitor Sousa 5619c6bc8d eina_cxx: Fix compatibility between eina::optionals of convertible types
Now an eina::optional that wraps a specific type can be constructed or
have content assigned to it using another eina::optional that wraps a
different type, provided that the two wrapped types are convertible
between each other.

Added "disengage" member function to be able to disengage a R-value
eina::optional of different contained type.
It also adds for increased convenience.

Fix constructing an engaged eina::optional from an disengaged one.

Fix small assertion problem of trying to construct an eina::optional
already flagged as engaged.

Fix incorrect use of std::move. Changed it to std::forward.

Added constexpr property for trivial constructors.

Added auxiliary function "make_optional".

Added unit test to check compatibility between eina::optionals of
convertible types.
2015-04-14 01:06:57 -03:00
Vitor Sousa 5043dcb830 eo_cxx: Fix signal_connection disconnect crash
Fixed crash when disconnecting event inside of its own event callback.
Instead of deleting the callback object immediately during disconnection
(which causes the callback to be freed), the deletion is now scheduled
for later (using ecore_main_loop_thread_safe_call_async).

Updated some Makefiles to proper include ecore now that it is used in
all event wrappers.

Added a unit test to verify crashes under these circumstances.
2015-04-14 01:06:57 -03:00
Vitor Sousa 3b441cdf4a ecore_cxx: Fix perfect forward of callback argument 2015-04-14 01:06:57 -03:00
Vitor Sousa d530389898 eolian_cxx: Add protected methods and events to C++ wrappers and fixes
Using eina::string_view in eolian generated interfaces (instead of
std::string) to allow lightweight passing of both C strings and C++
std::string.

Also, No longer using eina::optional in generated headers for types
that already implements the concept of null state (like Eo wrappers
and eina_accessor).

Also fix allocating callback objects require by class methods
(i.e. static) in static vectors so the memory will be freed when the
programs exit.

Added a new test case for testing callbacks on class methods.

Moved method definitions and supplementary code from generated C++
wrappers to auxiliary header file (.eo.impl.hh) generated together
with the main ".eo.hh" file. Updated Makefiles to list such files in
the compilation and cleanup processes. Updated .gitignore to include
these new generated files.

Made general adjustments on the documentation of generated C++ wrappers

Added "PREDEFINED" preprocessor macro definition in the Doxyfile.in in
order to make some adjustments for better documentation in the C++
generated headers.  Excluding generation of documentation for classes
in the "eo_cxx" namespace (the namespace for "abstract" eolian C++
wrappers).  Now generating the documentation for the events too.
Hiding some auxiliary code from being documented. Some aesthetic
adjustments for generated white space. Generate documentation for the
main constructor of C++ wrappers and added auxiliary grammars to list
parameters names.
2015-04-14 01:06:57 -03:00
Vitor Sousa be58d02cb6 eina_cxx: Add eina::string_view class (non owning reference to string)
Add an implementation of string_view to Eina C++. It is a non owning
reference to a string that allows lightweight argument passing of both
C++ std::string and C strings (const char*) on interfaces.
2015-04-14 01:06:57 -03:00
Vitor Sousa 9eb19f8852 eolian_cxx: Declaring all inherited events on the concrete C++ wrapper
Added declaration of all inherited events on the concrete type to
avoid unnecessary type conversion on event callbacks.

Note that when two events happens to have the same name, only the
event of the derived class is declared in the concrete class. Access to
such events should be made through the base class type specification.

Fix on forwarding callback object (changed std::move to std::forward).

Additional line break at the end of event handling methods in the
generated headers to improve readability.
2015-04-14 01:06:57 -03:00
Chris Michael 4b950b55c0 efreetd: If we fail to allocate space for subdir_cache, then get out
Summary: Fix coverity CID1294212 (potential Null pointer dereference) as
the alloc for subdir_cache Could fail, however if it does we Were
still trying to use it. In the case that it fails, ERR msg and return.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-04-13 20:29:53 -04:00
Stefan Schmidt ae8afa2748 release: Update NEWS and bump version for 1.14.0-beta1 release 2015-04-13 15:51:10 +02:00
Tom Hacohen 71d9c6639c Ector: Fix distcheck.
The generated Eolian headers should *not* be included in the dist
tarball. This makes autofoo go crazy (why would it? ffs) and is
wrong anyway.
2015-04-13 14:34:45 +01:00
Tom Hacohen 2da13de20a Evas object: verify the parent is valid and fail if not.
It seems like before the switch to Eo, all the object_*_add functions
had magic checks that only allowed non NULL Evas pointers to be passed.
Since we switched to Eo we apparently missed the early failure we used
to have, and we instead fail later. This patch should fix that.

Thanks to jaehwan for reporting.

@fix
2015-04-13 13:52:47 +01:00
Jihoon Kim 0d4f4721ea eina: fix typos in doxygen 2015-04-13 19:12:28 +09:00
Stefan Schmidt a14f97a06e build: Make sure the ecore_drm Makefile gets included after its dependencies
This problem have been observed by Scimmia22 on the Arch builds as well as on
the jenkins wayland build job. While compiling works fine the relinking during
make install fails with ecore-drm linking does not find eeze or eldbus as its
deps. This only shows on systems with no efl installed, a build from scratch.

As far as I can see we have all dependencies set correctly in configure as
well as in the Makefile which are working fine even in highly parallel builds.
It was a bit surprising here to me that the include order is still important
with our correct dependencies. Autotools wisdom is welcome here to either
explain to me why this is needed or what the correct fix would be.

The includes all moved before Ecore_Evas because that would use ecore_drm if
enabled.

Fixes T2281
2015-04-13 11:39:00 +02:00
Jean-Philippe Andre c646b0ace5 Evas GL common: Properly disable texuv3 when only texuv2 is used
Yet another vertex array fix (GL crash).
2015-04-13 17:43:52 +09:00
Jean-Philippe Andre 0c7857024b Evas GL common: Enable vertex arrays only when requested
This should fix Dave's crash with the GL engine.

Indeed the pointer to the color array is passed directly
to the driver, without memcpy. Then, during glDrawArrays, the
driver will try to address it... but it could as well be NULL or
invalid. So, crashes would occur.

Also mark use_vertex as always true. We keep this field only for the
alloc() function.
2015-04-13 17:43:42 +09:00
Jean-Philippe Andre 258dc999ee Emile: Fix memory leak
The binbuf wrappers were never freed.
2015-04-13 14:00:46 +09:00
Jean-Philippe Andre 21c91928d2 Evas GL common: Fix size of vertices data buffer
This actually has more chances of fixing Dave's GL crash.
2015-04-13 13:51:53 +09:00
Jean-Philippe Andre be45a45a26 Evas GL common: Only push color VBO for map when required
Since the new shader selection system is able to check the
value of nomul, we can avoid pushing color when they are not
required (color is opaque white).

Hopefully this will fix Dave's crash (mayyyyybe...)
2015-04-13 11:40:04 +09:00
Chris Michael 1438a980dd evas-software-x11: Fix dereference before null check(s)
Summary: This fixes Coverity CID1270028, CID1270029, CID1270030 where
variables RGBA_Image and Native where dereferencing function input
paramaters Before null checking them.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-04-12 21:13:18 -04:00
Chris Michael 2a7640cb4e evas-gl-x11: Fix dereference before null check
Summary: This fixes Coverity CID1293519 where einfo was being used
Before it was being null checked (which Could have caused a crash if
in fact einfo Was NULL).

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-04-12 21:13:18 -04:00
Chris Michael 62b8c967b4 edje: Fix dereference null return value
Summary: Fix Coverity CID1287154. _alloc function can return null
however 'color' was never checked after call to _alloc and thus Could
be NULL.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-04-12 21:13:18 -04:00
Chris Michael 3eed18d231 evas-3d: Fix Resource leak from CID1271635
Summary: This fixes a reported resource leak (by coverity).
_pack_meshes_vertex_data allocates memory stored in 'vertices' however
vertices is never free'd unless count > 0

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-04-12 21:13:18 -04:00
Chris Michael d3d909bf9e ector: Fix Coverity CID1293003
Summary: This fixes an issue of coverity reporting Explicit null
dereference as fetchfunc is defaulted to NULL, yet no check is made
later before calling it.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-04-12 21:13:18 -04:00
Chris Michael 3b4902e17e evas: Fix CID1293000 (resource leak)
Summary: This fixes a resource leak of eina_array in
eng_ector_renderer_draw which would return without freeing an
allocated array.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-04-12 21:13:18 -04:00
Chris Michael 70bbfb4b93 efl: Remove dead configure options for drm-hw-accel
Summary: This option Was added originally so that software drm and
hardware drm could be done in the same 'engine'. Since we have drm and
gl_drm now as separate engines, this option is no longer needed.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-04-12 21:13:18 -04:00
Carsten Haitzler 701504c7a4 efreed cache - fix coverity warning on rm cleanup on sanity check
sanity check didnt check return value of ecore_file_recursive_rm(). do
that. coverity should be happy now.
2015-04-13 09:47:24 +09:00
Carsten Haitzler e05eb13f70 efreetd - fix loading of extra_icons.dirs and icon.exts to not lose char
efreetd was losing the last char on every line of extra_icon.dirs and
icon.exts thus resulting in gradual degredation of these files as more
and more changes happen to have things like:

.jpeg
.jpe
.jp
.j
.

etc. for extension or dirs like

/home/raster/.e/e/icons
/home/raster/.e/e/icon
/home/raster/.e/e/ico
...
/home/ras
/home/ra
/home/r
...
/ho
/h
/

.. you get the idea. before long the list of extra icon dirs (and
extensions) was massigve and caued all sorts of filesystem rummaging.
this fixes that to no longer degrade these files. this also changes
their names to force new files to be used instead of the broken old
ones.
2015-04-13 09:45:29 +09:00
Carsten Haitzler 6b493430df efreetd - cache generators - dont unlink then rename - fix
if you unlink then rename, there is a gap between the unlink and
rename - no file is there. the point of the rename is to be atomic.
either old file OR new file. nothing in between. this fixes that race.
2015-04-13 09:15:43 +09:00
Carsten Haitzler cd2b3c228d efreetd - startup slowness fix for recursing directories
this fixes major slowness in things like enlightenment login. when
enlightenment starts, efreetd is started. efreetd takes a long time to
start because it is scanning lots of directories recursively. it is
early in code freeze, so i think this can go in as a fix, even though
it is more of an optimization, but as such it has a fairly major speed
impact, so i consider this fixing a core performance problem for
things like logging in. The solution is a cache file containing all
the sub directories in a directory tree. we still have to stat every
directory, but this avoids a lot of stating of all files as well and
avoids any readirs etc. so it is much faster. on an ssd this comes out
to 4 times faster for efreetd to start up. on an hdd it's about 2x
faster to start uncached.

this should bea good fix for startup times - on my systems thats a 1
second speedup on ssd (out of about 8 seconds boot time) and 3 seconds
on hdd (out of about 39 seconds boot). so w save 1 and 3 seconds
respecively in boot + login.

now can we get this to 0 or close? that's a matter of designing
something like a deferred scan + monitor add so we wait until "startup
is done" then set up in the bg for a bit. that might shave another 3
seconds off boot time for hdd's but for ssd's wil barely blip (maybe
save 0.1 sec). so leave that till normal dev mode.

@fix
2015-04-13 09:09:42 +09:00
Carsten Haitzler 44fe8b987e efreetd - improve sanity checking for recursive icon monitoring
i found my efreetd was not just monitoring a small set of dirs but
literally $HOME - recursively. this explains a lot of performance
issues i have seen on spinning hdd's vs ssd's. i never knew if was in
efreetd though... until now. for whatever reason my efret cache caused
efreet to try monitro a list like:

/
/h
/ho
/hom
/home
/home/
/home/r
... etc.

when trying to monitor something like:

/home/raster/.local/share/icons

that means it ended up trying $HOME as wellas a vast range of dirs it
just shouldn't sensibly ever try. i have no idea how my cache ended up
this way, but deleting it and re-populating it fixed it. so this ads
code to detect such insanity (as wellas give actual complaints on deep
recursion so we can see things better later). not a bug fix as such,
but a major improvement to detecting bugs which is what we want for
stability.

I also noticed that one legacy pixmaps dir is not recursively
monitored, but another is - so be consistent and recurs both.

Also apply checks to desktop file monitoring too.
2015-04-12 12:19:41 +09:00
Carsten Haitzler f022c23166 evas - gl common engine - dont complain on every surace opt fetch
this causes a complint every single frame - not a good idea.
2015-04-12 11:36:28 +09:00
Carsten Haitzler 9a03009364 ecore x vsync - ensure drm fb is set to close on exec - intended
@fix - minor - fixes T2138 as muc as efl can (dri card0 file)
2015-04-11 09:45:26 +09:00
Felipe Magno de Almeida cdd597cb56 eio-model: Fixed concurrent access to filter_cb and monitoring empty directories
Added a spinlock, since contetion should be non-existant. And removed wrong if.
2015-04-10 17:23:12 -03:00
Felipe Magno de Almeida 22cfae5b8c eio_monitor: Removed unnecessary eio_file_direct_stat
Removed unnecessary asynchronous stat, which could make eio_monitor to
lose events between the monitor creation and stat completion.
2015-04-10 17:23:12 -03:00
Felipe Magno de Almeida 37a04b09d2 eio-model: Fixed crash when files are created in the temporary dir
Fixed a crash when temporary files were created before the tested file, causing a dereference of a NULL pointer.
2015-04-10 17:23:12 -03:00
Vitalii Vorobiov dea4bcf47c Edje: Edje_Edit - new part addition should initialise threshold as -1
After adding new part all draggable fields should contain default values.

@fix
2015-04-10 17:36:28 +03:00
kabeer khan a15e70b3e2 ecore_file tests: Added new tests in ecore_file
Summary: Signed-off-by: kabeer khan <kabeer.khan@samsung.com>

Reviewers: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2331
2015-04-10 14:38:24 +02:00
Cedric BAIL c560979196 ecore_evas: remove unwanted binary.
This binary should have been removed before merging the branch. It did
sleep in for no good reason, removing now.
2015-04-10 14:04:33 +02:00
Jaehwan Kim 0822485465 evas_object_box: add MAGIC_CHECK when it is added.
@fix
2015-04-10 19:37:59 +09:00
Srivardhan Hebbar 709037a95d ecore_con: fix stack overflow in ecore_con_url_timer issue.
Summary:
last_ms is not needed at all. If curl_multi_timeout returns non zero, then its error, if it returns zero, then its fine. If ms is zero, then call curl_multi_perform immediately.

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

Reviewers: cedric

Subscribers: cedric

Maniphest Tasks: T2200

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-04-10 12:05:05 +02:00
Cedric BAIL 3b46609140 evas: _op_blend_p_dp_neon and _op_blend_pas_dp_neon miscalculation fix
Summary:
When processing random data result of this function differs from C variant in more than 50% cases.
This difference is due to alpha calculation, in C code :

alpha = 256 - (*s >> 24)

in NEON:

"vmvn.u8 q4,q0 \n\t"
// ie ~(*s>>24) === 255 - (*s>>24)

We cant just add "1" as overflow will occur in case (*s>>24) == 0 (we use only 8 bit per channel in vector registers)
So here is the solution:
copy *d right before multiplication and add it to the result of it later.

Same approach as in D455.

Reviewers: raster, cedric, stefan_schmidt

Reviewed By: cedric

Subscribers: cedric

Projects: #efl

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-04-10 12:05:05 +02:00
Conrad Meyer 6ceac2509d ecore_audio: include libgen.h on FreeBSD to define basename(3)
Summary:
Fixes warning:

    lib/ecore_audio/ecore_audio_obj_out_pulse.c:275:60: warning: implicit declaration of function 'basename' is invalid in C99
      [-Wimplicit-function-declaration]
       class_vars.context = pa_context_new(class_vars.api, basename(argv[0]));
                                                           ^
    lib/ecore_audio/ecore_audio_obj_out_pulse.c:275:60: warning: incompatible integer to pointer conversion passing 'int' to parameter of
      type 'const char *' [-Wint-conversion]
       class_vars.context = pa_context_new(class_vars.api, basename(argv[0]));
                                                           ^~~~~~~~~~~~~~~~~
    /usr/local/include/pulse/context.h:174:67: note: passing argument to parameter 'name' here
    pa_context *pa_context_new(pa_mainloop_api *mainloop, const char *name);
                                                                  ^

Test Plan: It now compiles without warning.

Projects: #efl

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-04-10 12:05:05 +02:00
Conrad Meyer d102d07674 autotools: use bash for gen_shaders*.sh
Summary:
Fixes src-on-NFS builds on FreeBSD, especially when the current shell is
not bash.

Test Plan:
Before:

      SHADERS  modules/evas/engines/gl_common/shader/evas_gl_shaders.x
    gmake[4]: modules/evas/engines/gl_common/shader/gen_shaders.sh: Command not found
    Makefile:34122: recipe for target 'modules/evas/engines/gl_common/shader/evas_gl_shaders.x' failed
    gmake[4]: *** [modules/evas/engines/gl_common/shader/evas_gl_shaders.x] Error 127

Even manually adjusting path doesn't fix it (and the file is clearly `+x`):

    $ ls -l src/modules/evas/engines/gl_common/shader/gen_shaders.sh
    -rwxrwxrwx  1 1000  1000  1848 Apr  8 17:01 src/modules/evas/engines/gl_common/shader/gen_shaders.sh
    $ export PATH="$PATH:$(pwd)/src"
    $ modules/evas/engines/gl_common/shader/gen_shaders.sh
    zsh: no such file or directory: modules/evas/engines/gl_common/shader/gen_shaders.sh

After patch:

     SHADERS  modules/evas/engines/gl_common/shader/evas_gl_shaders.x
     CC       modules/evas/engines/software_x11/modules_evas_engines_software_x11_module_la-evas_x_egl.lo
     CC       modules/evas/engines/software_x11/modules_evas_engines_software_x11_module_la-evas_xlib_swapbuf.lo
     ...

Projects: #efl

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-04-10 12:05:05 +02:00
Subhransu Mohanty eb7af88ca4 ector: don't apply transformation on clips in Cairo backend.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-04-10 12:05:04 +02:00