I hid it behind ifdef for now as I'm very much unsure of what I'm doing.
This whole modern C++ thing is still weird to me :)
Prerequisite:
#define EFL_CXX_WREF_EASY
This allows constructs such as:
auto wobj = obj._get_wref();
std::cout << wobj->text_get() << std::endl;
This allows constructs like:
auto w_obj = obj._get_wref();
auto cb = std::bind([w_obj]() {
auto o = w_obj.lock();
if (!o) return;
o->call();
});
event_add(..., obj, cb);
Note: I don't like how those wref work. Close to c++ wref but far from
EFL wref.
NOTE: protected APIs are placed behind ifdef as well in the
implementation file. This makes sense since the define is required for
the C code to compile, but this isn't what @protected means.
Coverity reports that EVAS_OBJECT_DATA_SAFE_GET returns NULL here (184
out of 188 times). As such, we should not be calling
_event_animation_object_get with a null object so add a null check here.
Fixes Coverity CID1381713
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Coverity reports that EVAS_OBJECT_DATA_SAFE_GET returns NULL here (184
out of 188 times). The _all_animation_objects_cancel function
directly dereferences the obj parameter passed into it, so lets null check it
before calling that function.
Fixes Coverity CID1381711
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Coverity reports that EVAS_OBJECT_DATA_SAFE_GET returns NULL here (184
out of 188 times). The _all_animation_objects_cancel function directly
dereferences the obj parameter passed into it, so lets null check it
before calling that function.
Fixes Coverity CID1381710
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Coverity reports that we access vfmapped here without holding a lock.
This patch implements eina_lock_take/release while accessing
priv->vfmapped.
Fixes Coverity CID1381624
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Coverity reports that _evas_dmabuf_buffer_init function here can
potentially free the surface that was passed into it. If that happens,
we should not be calling the _fallback function with surface as the
parameter as that will directly dereference the freed pointer.
Fixes Coverity CID1381707
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
In most engines which inherit from software_generic, they do not
implement the outbuf_free_region_for_update function. Most engines
have it as an unused function. If we simply add a check here, then we
can reduce the need for having useless function in multiple engines.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary:
Textblock's ellipsis feature only worked when text's width exceeds its area.
So, it didn't work when text's height exceeds its area by "br" tags.
This patch will do ellipsis when only ellipsis=1.0 is set.
@fix
Test Plan: make check
Reviewers: herdsman, raster, cedric, jpeg, sohyun
Reviewed By: raster
Subscribers: woohyun
Differential Revision: https://phab.enlightenment.org/D5412
Summary:
It should return width and height with positive values or zero.
@fix
Test Plan: make check
Reviewers: raster, jpeg, cedric
Reviewed By: raster
Subscribers: jiin.moon
Differential Revision: https://phab.enlightenment.org/D5422
Apparently this isn't well supported by dash, which will print an
error and return a 2, where zsh and bash will return 255.
Explicitly returning 255 seems least surprising.
see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=772322
#IHaveNoIdeaWhatThisScriptDoes
This disallows deeply nested pointers, you can only explicitly
ptr() on types that are strictly value types.
For a few cases where it was necessary to override this behavior,
you can use legacy(ptr(x)) as a temporary measure.
As we do not know when a window won't be able to tick, and we do
not know which window a legacy animator is attached to, we require
all windows to tick as often as they can and only generate one tick
per loop run.
This might need more adjustement especially with multi output.