Commit Graph

65755 Commits

Author SHA1 Message Date
Mike Blumenkrantz 8e5625dbe6 ecore/audio: add a couple more functions to the pulse callback struct
to be used later

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11528
2020-03-25 22:13:04 +01:00
Mike Blumenkrantz c697965a8c ecore/audio: free vio on in/out object destruction
ensure we don't leak these since that means we also leak the user's free
data and callback

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11527
2020-03-25 22:13:02 +01:00
Mike Blumenkrantz e8eb67a557 ecore/audio: add ERR messages when trying to overwrite existing vio
this probably causes a crash or a leak at some point

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11526
2020-03-25 22:12:59 +01:00
Marcel Hollerbach 66e2d71414 exactness: handbuild a new argv array instead of reassemling the new one
this commit removes the code that was changing argv values, and replaces
it with a new array. Which is absolutly fine, as the argv / argc values
are never accessed later on. Only the copies that have been passed to
efl_main or elm_main.

This resolves several issues:
1. the for loop is useless, every single array element that gets
   initialized with it, is some offset from argv[0] this may also crash
   when argv[i] - argv[opt_args] is bigger strlen argv[0].
2. The memcpy here is super dangerous, the dest array is not garanteed
   to have the same size as argv[0], this only works if the client
   application name is shorter than the name "exactness_recorder"
3. The memset here is absolutly wrong. There is again no garantee that
   the array has the expected size behind that, this was constantly
   overwriting the segment after the place where argv was stored, which
   was lukely enough on fedora always the environs, which deleted the
   couple first segments. (This was not causing any fuzz, since they
   have been sudo related env vars on the docker image). However, on
   arch this just crashed right away. On Ubuntu this overwrote DISPLAY,
   which resulted in the unability to launch the app.

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11600
2020-03-25 22:12:56 +01:00
Carsten Haitzler 030ef36c72 emotion - webcam - fix segv on webcam plug/unplug and clean
well hunting was fun... custom webcams i just cant see being used. no
api to add them - have to hand craft a config file .. and udev/eeze
provide info on webcam devices anyway at runtime with plug/unplug etc.
... so this should be the only ay (for now) and it keesp the code
simpler and less bug-prone

now issue was some nasty skipping unref as opposed to destroy. in
chasing i simplified the code to help me narrow it down and not chase
the same logic in multiple places. shorter cleaere, simpler and minux
one bug.

@fix
2020-03-25 17:11:28 +00:00
Mike Blumenkrantz 6068cc9039 evas/render: minor cleanups for norender functions
Summary:
evas_norender cannot produce update regions, so there's nothing to free

remove commented lines

no functional changes

Reviewers: bu5hm4n

Reviewed By: bu5hm4n

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11584
2020-03-25 09:27:16 -04:00
Stefan Schmidt 9330861f12 ecore_cocoa: remove left over from evas3d removal
These directories do not exist any longer. Failing build on CI.
2020-03-25 12:54:39 +01:00
Hermet Park 476e2b0521 canvas 3d: remove all canvas3d features across efl.
Reviewers: jsuya, kimcinoo, bu5hm4n, raster

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11552
2020-03-25 19:14:02 +09:00
Shinwoo Kim d4e6303d9e efl_ui_image: keep efl_ui_image size for internal image
Summary:
The size of internal image could be bigger than the size of efl_ui_image
with following code.

   image = elm_image_add
   elm_image_fill_outside_set(image, EINA_TRUE);

If the internal image object is 300x300, and efl_ui_image is 360x77, then
the internal image object will resize to 360x360 which is bigger than the
size of efl_ui_image.

This is a compatibility issue. This patch will make efl_ui_image work as
before commit 8cb6c3e Elm_image: implement 'scale_type' and 'scalable'...

Test Plan:
This is old example to reproduce the problem.
{F3859361}

This is newly added example to check if this patch breaks compatibility or not.
{F3859390}

You can use the example with following image.
{F3859391}

This is result before applying this patch.
{F3859388}

This is result after applying this patch.
{F3859389}

The translucent rectangle is the size of the efl_ui_image.
As you might be noticed, only FIT_WIDTH (the 4th one of each row),
and EXPAND (the 6th one of each row) are different.

One more difference the 1st one of 2nd row; NONE.

F.Y.I. and for quick understanding of example.
The 1st row efl_ui_image is bigger than internal image.
The 2nd row efl_ui_image is smaller than internal image.
From the left the scale type is NONE, FILL, FIT, FIT_WIDTH,
FIT_HEIGHT, EXPAND, and TILE.

Reviewers: Hermet, jsuya, herb

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11587
2020-03-25 19:12:30 +09:00
Christopher Michael 8e4b798c51 efl/mailmap: Move unused addresses to the bottom of list 2020-03-24 16:57:35 -04:00
Christopher Michael bdf4e55edf Revert "efl/mailmap: Remove old unused addresses"
Revert these in favor of reorder so we can keep history

This reverts commit 94a8080355.
2020-03-24 16:52:29 -04:00
Christopher Michael 94a8080355 efl/mailmap: Remove old unused addresses 2020-03-24 16:20:02 -04:00
Marcel Hollerbach 39347f45aa eo: free vtable when erroring out
if there is a error when settings API to the vtable, free the vtable
instead of leaking it.

CID 1422015

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11580
2020-03-24 20:41:37 +01:00
Marcel Hollerbach 670cfb14fc eo: do not check this here
as coverity points out, _obj_is_override is already dereferencing
obj->opt so this was the wrong spot to check this.

CID 1422014
CID 1422013

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11579
2020-03-24 20:41:34 +01:00
Marcel Hollerbach d533bdbbac eo: fix wrong formatting
no functional changes.

Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11578
2020-03-24 20:41:30 +01:00
Marcel Hollerbach 8f09cf9dd3 eo: only really copy when there is content
otherwise we are allocating a 0 sized memory element, which is
pointless.
ASAN would report a 0 sized allocated but not freed element as a leak.

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11577
2020-03-24 20:41:27 +01:00
Marcel Hollerbach 9762d75dc4 eo: correctly flag allocated memory
sometimes there is the chance that we need to allocate memory depending
on the functions that are defined, not on the types that are available.
However, even if this should only happen in error cases and on mixins,
we should ensure that this is all correctly freed flagged.

Due to the correct flagging here, we are not copying the memory later on
in a wrong way.

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11576
2020-03-24 20:41:25 +01:00
Marcel Hollerbach 1b058695f5 eo: do no allocate a 0 sized segment
allocating 0 sized elements here is pointless.
This here was doing that, so ensure that we are only allocating vtable
nodes that have more than 0 function pointers.

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11575
2020-03-24 20:41:22 +01:00
Marcel Hollerbach f80cfa4893 eo: do not NULL out the object itself
otherwise we would not free it in the next run over the vtable. Which
would result in a leak.

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11574
2020-03-24 20:41:19 +01:00
Marcel Hollerbach 9738a75939 eo: do not null out the vtable chain of your own classes
the free methods here accidently took the top of the mro into account,
which is the class itself, which NULLed out the wrong classes.

After this, we are finally freeing the mixin vtables.

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11573
2020-03-24 20:41:17 +01:00
Marcel Hollerbach cd13b40f66 edje_cc: free ecore_evas
we have initialized it, we should shutdown it.
This was we are not getting random vtable allocation leak reports in the
asan job anymore.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Chris Michael <cp.michael@samsung.com>
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11572
2020-03-24 20:41:14 +01:00
Marcel Hollerbach 8f7a76a431 eo: do not allocate too much memory
when handoverwriting function on a object, only existing API can be
overwritten, but not newer ones. Thats why its enough to pass the size
of the klass, and not the size of the globally defined classes.

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11571
2020-03-24 20:41:11 +01:00
Mike Blumenkrantz f4a877d17d tests/elm: add strict test to verify elm image gif support
Summary: Depends on D11583

Reviewers: kimcinoo, Hermet, raster, cedric, bu5hm4n

Reviewed By: bu5hm4n

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11484
2020-03-24 13:22:19 -04:00
Mike Blumenkrantz 6268bb36ea tests/elm: use norender_with_updates
Summary: Depends on D11582

Reviewers: bu5hm4n

Reviewed By: bu5hm4n

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11583
2020-03-24 13:22:16 -04:00
Mike Blumenkrantz 8fe64fb70c evas: add function for norendering with updates
Summary:
the same as norender, but useful
Depends on D11581

Reviewers: bu5hm4n

Reviewed By: bu5hm4n

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11582
2020-03-24 13:22:12 -04:00
Mike Blumenkrantz b37ebdad25 evas/render: produce update regions when do_draw isn't set but make_updates is
Summary: this is a valid combination of parameters that should be handled

Reviewers: bu5hm4n

Reviewed By: bu5hm4n

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11581
2020-03-24 13:22:09 -04:00
Carsten Haitzler 9deee134c9 eo - fix err path for eo_isa to unlock shared objects
fix CID 1363294
2020-03-24 13:26:59 +00:00
Xavi Artigas bb519386fd doxygen docs: Fix warnings in Ecore_Wl2.h and associates 2020-03-24 13:43:37 +01:00
Xavi Artigas 065d429a67 doxygen docs: Fix warnings in Ecore_Evas.h
And a couple associated places.
2020-03-24 13:43:37 +01:00
Xavi Artigas c48d4d431f doxygen docs: Fix warnings in Edje_Edit.h
And since we're at it, fix some typos too.
2020-03-24 13:43:37 +01:00
junsu choi a8b15a1d13 elm_transit: Prevent adding duplicates
Summary:
When repeating call elm_transit_object_add,
prevent the object from being added duplicates.

Test Plan: N/A

Reviewers: Hermet, herb, kimcinoo

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11563
2020-03-24 21:08:17 +09:00
junsu choi 6f95a42f60 elm_transit: replace evas_object_event_callback_xxx with efl_event_callback_xxx
Summary:
In transit, event_callback is mainly used for delete callback.
transit uses evas_object_freeze_events_set to control the user's mouse events.
However, EVAS_CALLBACK_DEL was not called because of this.
The behavior of evas_object_freeze_event was changed. This patch was created to fix some issues.

Test Plan: N/A

Reviewers: Hermet, kimcinoo, herb

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11562
2020-03-24 21:00:26 +09:00
Stefan Schmidt 912fbe79a2 exactness: switch from homegrown debug printf to eina_log
Use a full eina_log domain here for each executable. No need to have a
own half baked ex_printf version here for such things.

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11558
2020-03-24 12:24:07 +01:00
Stefan Schmidt 9da0235d74 exactness: remove exactness library and move code into binary folder
We do not want to have EAPI from exactness exposed at this point without
any real user. I know of no application using the exactness library.
If we come to that point we can move things back into a lib, but for now
having the code shared between the various executables is all we need.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11545
2020-03-24 12:24:04 +01:00
junsu choi 8c91255595 Efl.Ui.Vg_Animation: Enable transit event.
Summary:
elm_transit freezes events by default for added objects.
We have to use elm_transit_event_enabled_set to use events.

Test Plan: N/A

Reviewers: Hermet, kimcinoo, herb

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11560
2020-03-24 19:11:26 +09:00
Mike Blumenkrantz 2f033a801e efl/wl: explicitly use restricted size hints for min/max
need to be clear here since we own these objects

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11500
2020-03-23 20:02:56 +01:00
Marcel Hollerbach 61fe913995 efl_ui_test_widget: add test for subtree disabling / tree unfocusabling
this is valdating the previous commit.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11557
2020-03-23 20:02:53 +01:00
Marcel Hollerbach 59ee633dc0 efl_ui_widget: pass the correct flag here
this here needs to pass the flag that gets set, not the flag that
results. This is important for the cases, where a subtree in a widget
tree keeps the flag. As this would leave the wrong counter.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11556
2020-03-23 20:02:50 +01:00
Lucas Cavalcante de Sousa 117450e3fa C#: Update C# code-generation to use a new ICustomMarshaler in some string usages that were leaking
When `C` calls a function that return/has an out string and it was overwritten by `C#` inherit class the `C` portion
wasn't cleaning its copy. Now, when a `C` calls a `C#` delegate function, `Strings` that are `out` values or `return`
values use a new marshaler (specific to this case) that uses Eina short lived strings (`Eina_Slstr`) instead of
duplicating it with `strdup`, so at some point, the string passed to `C` is deleted.

To do so, a `direction_context` (a new `Context` at `generation_contexts.hh`) was created. It is only used when a C#
delegate is being called from C (so this context is only set in `function_definition.hh` and `property_definition.hh`,
where it is set to `native_to_manage` to indicate that it is a native call to a managed function).

When this `direction_context` is set and the `String` being marshaled is not marked with an `@move` tag and it is an
`out` or `return` value, the new `StringOutMarshaler` (implemented at `iwrapper.cs`) is used (instead of
`StringKeepOwnershipMarshaler`).

When marshaling a managed data to native this marshaler uses eina short lived string (`Eina_Slstr`) that will be
automatically deleted. This delete is bounded to "the loop of the current thread or until the clear function is called
explicitly" as said at `src/lib/eina/eina_slstr.h`.

Reviewed-by: Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D11434
2020-03-23 14:18:16 -03:00
Marcel Hollerbach e5cec5dacc efl_ui_widget: unify tree number settings code
Summary:
the internals of those two methods have been the same. Both setted the
internal numeric flag as either as 1 more or equal to the flag in the
parent object (depending on the internal state). Further details can be
found in the comment in code.
Depends on D11554

Reviewers: zmike

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11555
2020-03-23 12:12:25 -04:00
Marcel Hollerbach c3cc96d0f8 efl_ui_widget: do not eval all the children twice
Summary:
eval all children is ending up in the complete discovery of the whole
subtree, which is unnessesary here, as we are already discovering the
whole subtree with the calls, these changes are in, so simple
evalulating this is enough.
Depends on D11551

Reviewers: zmike

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11554
2020-03-23 12:12:19 -04:00
Marcel Hollerbach 151862f50c efl_ui_widget: fix disabled set behaviour
Summary:
this fixes disabled set behaviour. This ensures that when setting
disabled twice, that unsetting it once does not break the overall state.

This never appeared in any real life example, because
elm_object_disabled_set is already checking for equalness. However, this
is not wanted here, because the simple setter can also be used to sync
the state with the parent, which appears to be helpfull.

Depends on D11550

Reviewers: zmike

Reviewed By: zmike

Subscribers: zmike, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11551
2020-03-23 12:12:12 -04:00
Marcel Hollerbach 8e0a7cedc1 efl_ui_widget: fix tree_unfocusable setting
Summary:
when setting twice the same value, unsetting the same value would not
restore the same state in the tree again. With this commit, we ensure
this is working correctly.

Reviewers: zmike

Reviewed By: zmike

Subscribers: zmike, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11550
2020-03-23 12:12:06 -04:00
Xavi Artigas a1c7384da9 doxygen docs: Fix warnings in textblock 2020-03-23 12:15:55 +01:00
Xavi Artigas 21e78743a4 doxygen docs: Fix Exactness warnings 2020-03-23 12:15:55 +01:00
Marcel Hollerbach 9f5ab4dea9 Revert "Revert eo vtale rework..."
This reverts commit efb15f510c.

The error that was causing this was in ector, and is fixed with the
previous commit.
2020-03-23 11:35:06 +01:00
Marcel Hollerbach 6934a9623e ector: fix pointer checking
we want to check if the pointer is available, and not the value of the
pointer. This fixes some "Jump depends on uninitialized value" messages
from valgrind.
2020-03-23 11:22:09 +01:00
Carsten Haitzler efb15f510c Revert eo vtale rework...
Revert "eo: redo vtable mro creation"
This reverts commit b05110609b.
Revert "eo: add a generic memory allocation tracking method"
This reverts commit 44071e3102.
Revert "eo: rework vtable allocation scheme"
This reverts commit 3bd16a46f1.
Revert "eo: do not allocate extension if deleting"
This reverts commit 64f7edc7fc.

This seems to breal vector rendering in lottie:

From: Hermet Park <hermetpark@gmail.com>
To: Enlightenment developer list <enlightenment-devel@lists.sourceforge.net>
Subject: Re: [E-devel] [EGIT] [core/efl] master 02/05: eo: rework
vtable allocation scheme

This patch occurs memory corruption, vector crashes :(
Here is a sample if you'd like to see it.
https://phab.enlightenment.org/F3858944
2020-03-23 09:07:08 +00:00
Hermet Park 11d86e1538 canvass vg: fix a mistake in 69fd72af2c 2020-03-23 14:39:53 +09:00
Hermet Park 69fd72af2c canvas vg: drop vg cache buffers if object were destroyed.
Previous vg didn't take care of cached buffers which were
allocated in it's lifetime because the cache buffers are managed
by its own cache buffer mgr, it has a limitation count of buffers also
buffers can be cleared when engine is shutdown.

This behavior is actually working properly but not well optimized
since it lost a chance to clear grown buffers.

Now vg do clear used buffers when object is invalidated.
2020-03-23 14:23:27 +09:00