Commit Graph

62065 Commits

Author SHA1 Message Date
Mike Blumenkrantz 99effcc554 release: Update NEWS and bump version for 1.22.3 release 2019-08-23 11:49:16 -04:00
Cedric BAIL 6ef3e8ed00 ecore: do not rely on implicit rules for memory lifecycle during test.
Summary:
alloca force the memory to be accessible for the entire duration of the
scope of the function it is called from. This will garantee that the
memory pointer are not recycled under our feet before we check them.

T8020

Reviewers: zmike

Reviewed By: zmike

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8020

Differential Revision: https://phab.enlightenment.org/D9127
2019-08-23 11:48:27 -04:00
Carsten Haitzler c57b5e2d7b emotion - webcam fix deletion of webcam still left in webcam list
we may destroy webcams but leave them in the list. this fixes that by
removing them from our global list when we do unref to 0.

@fix
2019-08-22 19:56:33 +01:00
Carsten Haitzler c348e7779c edje - signal callback matches/patterns try fix number 2
so i think there was also another bug as i saw this again now. this
should hopefully plug the signal/mtach memory bugs now by removing
and adding back to hash as the hash key relies on the memory addresses
of signal/src in the matches array which change on realloc. a bit
brute-forceey but... better than crashes.

@fix
2019-08-22 19:56:16 +01:00
Carsten Haitzler 0d27de4022 edje signal matches/patterns - handle re/alloc errors and missing ptrs
also a general cleanup of the code to make it easier to follow/read as
this seems to have problems but i cant reproduce them enough to find
them. i noted a realloc would have invalidated pre-stored pattern
ptrs that would cause segv's for sure. also code paths where reallocs may
fail and not handling those cases at all etc.

@fix
2019-08-22 19:56:00 +01:00
Carsten Haitzler 7ea776af20 eina file refs in edje/evas - audit them and plug holes where refs stay
in 1 situation at least we delete the eina file (close it) but keep
the ptr around (during destruction) which could cause issues with
callbaks and events on del and so on.... which may lead to multiple
closes where only one should happen ... which would explain my invalid
eina file ref problems i'm seeing. i carefully matched eina file
handle stores/opens/dups to closes in edje/evas and they seemed to all
match up so this audit with comments and fixes seems to have plugged
that now.

@fix
2019-08-21 19:57:43 +01:00
Carsten Haitzler 4b6fe57ade evas - font rendering - dont crash if we have color fonts and gl and sw
so if you use sw and gl enignes in a process and have color font
glyphs.. *BOOM* because the color glyph code used ext dat that was
intended for engines to extend with a gotcha of "only 1 engine can
extend this"... commented already.

so this unfortunately adds an extra ptr per glyph to store color data
explicitly. but now it both renders right and doesn't crash. we still
have a limit of 1 engine alone can extend glyphs with ext_dat though.

@fix
2019-08-21 19:51:10 +01:00
Carsten Haitzler fa40e25a02 elm theme - handle error cases and eina file handles properly
@fix
2019-08-21 19:51:02 +01:00
Carsten Haitzler bc90cbfdff edje - handle errors and eina file handles and vpath properly
@fix
2019-08-21 19:50:55 +01:00
Carsten Haitzler 92dbf3dc83 elm slider - delete timers on destruction that should be deleted
also use safe free to set to null
2019-08-21 19:49:56 +01:00
Carsten Haitzler 19e971d9c8 evas - loader - rsvg generic - install svg symlink
svg loading broke as we didnt have the right symlink installed after a
binary file name change. this fixes that.
2019-08-21 19:47:30 +01:00
Carsten Haitzler 06c070102e elm hoversel - avoid crash when items modified while popping down
this fixes a crash i saw with asan on pop down if items change at that
time. @fix
2019-08-21 19:47:18 +01:00
Carsten Haitzler e8abe97161 ethumb - fix short alloc on stack not including nul char space
fix space for nul byte with alloca.
2019-08-21 19:47:00 +01:00
Carsten Haitzler eace1d1d5f elm - dnd - fix drop target del to not nuke handler all the time
this broke dnd if u have multiple drop targets in a window... keep the
functions there if we still have drop targets... especially in x11.

@fix
2019-08-21 19:46:47 +01:00
Carsten Haitzler 3716cfe1a2 elm entry - respect plain text newlines on paste again...
make this work like it used to... fixes T8135
2019-08-21 19:46:37 +01:00
Carsten Haitzler 8066c82b65 eina file - don't double unlock a lock
thanks to coverity - found this double unlock path in case of error.

fix CID 1403899
2019-08-21 19:45:07 +01:00
Carsten Haitzler 64b18d5152 efl thread - use pipe array names consistently to avoid err handling bug
in the case pipes fail to create we'll close the wrong ones... this
fixes that. it also happens because i didn't use names consistently.
now it does so it's easier to keep right.

thanks coverity.

fix CID 1396994
2019-08-21 19:44:44 +01:00
Carsten Haitzler d0d883b1c9 efl thread - fic pipe close to not close invalid pipe fds
if we only have stdout and no stdin we'd accidentally close junk int's
on the stack. fix this fix CID 1396963
2019-08-21 19:44:27 +01:00
Carsten Haitzler 4fb161ee1a eldbus - fix leak of message in error path case
fix CID 1402657
2019-08-21 19:44:04 +01:00
Carsten Haitzler d60dc2de5b elm toolbar - fix backport to use older apis 2019-08-10 20:19:19 +01:00
Carsten Haitzler bbca7d549b ecore evas drm - fix code that forgets to del an fd handler
also.. note the badness of the code design mixing a global singleton
with a "per struct" set of data like fd handlers for the same devices
initted only once but... anyway. it's messy.
2019-08-07 18:15:44 +01:00
Carsten Haitzler c7c7ab66bc evas - gl_drm - delete old surfaces before creating new ones
we shouldnt go have multiple drm window surfaces per drm surface...
this is bad.

@fix
2019-08-07 16:18:46 +01:00
Carsten Haitzler 0e7a833fc3 elm toolbar - fix toolbar item separators and refactor aling/fill of item
only set this is one place and thus get it consistent/right for
separators vs other items.

@fix
2019-08-02 17:21:36 +01:00
Carsten Haitzler cebc81b5c9 elm toolbar - fix packing options at start to avoid visual layout bugs
i spoetted open moving around and shrinking when it shouldnt -
packging options (fill/align) not always set right. this fixes that.

@fix
2019-08-02 15:52:07 +01:00
Carsten Haitzler 0af9c345cc evas events - fix segv if pointer data is freed by cb
callback can free what is in context. avoid that problem

@fix
2019-07-31 14:06:32 +01:00
Carsten Haitzler 8dba566c4b ecore wl2 - fall back to shm if dmabuf fails in buf init
so even if shm was an allowed mode/flag, we never fell back to shm if
dmabufs were not possible (/dev/dri/renderD128  didn't exist or wansn't
open-able). that's decidedly a bad thing to do.

@fix
2019-07-22 00:38:30 +01:00
Carsten Haitzler 454b1f4dd6 edje - double make sure edje messages are zero'd due to a segv i saw
i saw a segv on freeing em->msg as it was a junk ptr... i dont know
for sure it msg was properly initted but as em is recycled from trash
be sure and zero it when digging out of trash because em->msg was not
a valid ptr (and i wasnt using valgrind at the time to know for sure
and cant find this with valgrind now).

@fix
2019-07-09 16:05:02 +01:00
Carsten Haitzler fdf8744f46 elm - cursor - clear cursor job late to avoid crash
during cursor free a move cb seems to add another job again after it
wss already deleted during the free process, so just clear the job
really late instead. valgrind found this one

@fix
2019-07-09 13:05:31 +01:00
Alastair Poole 3eae49cde2 build: Fix build on OpenBSD.
These fixes are already in master. Backporting.
2019-06-23 11:48:26 +01:00
Carsten Haitzler 384ee8d2b6 ecore_x - restore move event skipper that was removed long ago
so i've been wondering what is going on for a few days... and i've
figured it out finally... my mouse seems ot like to generate 1000
events per second. not your usual 100 or 200. it only happened on this
one machine so i was wondering what on earth was up. this machine was
different in other ways like an arm cpu, differing gpu (rx550),
different distro and so on. this is creating a storm of motion events..
and this is causing all sorts of overhead in just trying to deal with
them all like generate more internal events, emit signals for every
one of them and so on. there is no attempt to play catch-up or
anything - just build up a bigger and bigger queue of them to deal
with. this is NOT GOOD. this restores our old commented out event
skipper that got commented out during some xcb work actually -
not on its own. it was a huge xcb patch that commented it out.

this restores it and makes it a little cleaner with a bool and now the
perf issues i was seeing are gone. this is such a major performance
fix that this deserves a backport.

@fix @optimize
2019-06-18 11:27:27 +01:00
Carsten Haitzler 85491a6847 evas optimization - fix the "start in list middle" case
i missed 1 rare case where we start in the middle of the list and have
to walk to the end. testing didnt show it up. fix. this fixes up that
case in b5ed76ba9f
2019-06-15 09:39:49 +01:00
Carsten Haitzler 6c1f97169f evas - pointer in get - dont On walk inlist but O1 jump to last
to walk inreverse we need to jump to last first then walk backwards...
what we were doing is calling eina_inlist_last() which  is defined to
walk rather than that using list->last ... this totally got rid of
_evas_event_object_list_raw_in_get() from my perf list ... and i was
wondering how it got there to start with.

this is such an obvious optimization...
2019-06-15 09:21:36 +01:00
Carsten Haitzler e7153940f4 edje messages - use trash to keep message structs around for a short time
more optimizations for edje messages to avoid excess alloc and frees
if we have some trash around... since messages already have list
nodes, re-use the main list node for storing trash and not eina trash
as this avoids extra allocs for trash nodes.
2019-06-15 08:47:34 +01:00
Carsten Haitzler fde832343d edje messages - on del use the per edje message list not global
this massively cuts the walk to remove messages to only what's needed
on teardown ... so yay! speedup.
2019-06-15 08:47:28 +01:00
Carsten Haitzler c922cdc145 edje messages - avoid nasty On2 walk of message lists with skipping
so to process a single obj we added a lot of mesgs to the message
queueue only then to wak most and SKIP most msgs again and again -
when this adds up to 1000's of messages and 10k+ then literally moving
a window in e hangs for multiple seconds and we walk such lists in On2
like complexity. this gets it down to O(1) along with some other minor
optimizations of not adding to tmp list only then to add them to the
nex queue/list.

there is more i can optimize here as well now we track messages for an
edje in th edje. that's next.
2019-06-15 08:47:20 +01:00
Carsten Haitzler 4aed68ee3f edje messages - track all messages for an edge obj in the edje
this is the basis for some future speedups to avoid full message queue
walks - get this right first.
2019-06-15 08:47:11 +01:00
Carsten Haitzler c4cec763a7 edje messages - make it use inlist to fragment ram less
using regular lists means we double our indirect ptr jumps and
fragment ram more - this is step one in improving performance of
message handling in some nasty corner cases i have found. first this
so it can be identified as an issue on its own if it is one. i've
tested it and it seems ok. so this si stage 1.
2019-06-15 08:46:34 +01:00
Carsten Haitzler f3606bdafc efl sel manager - flush wl conenction in cnp to avoid hangs...
we don't force buffers to flush in wl... this will fix that and force
them removing an ugly hang for possibly seconds in cnp from client to
client or even within a client.

remember:

flush your mush.

@fix
2019-06-11 18:40:47 +01:00
Marcel Hollerbach 59384283bb edje_cc: protect array lookup
it seems with those two actions here in the commit, do use id in a
different way the other actions do. This is commit protects against
this.

Differential Revision: https://phab.enlightenment.org/D9078
2019-06-09 20:30:29 +02:00
Alastair Poole 6818565e9b edje_cc_out: Exit instead of segfault on OpenBSD.
Until the cause of these issues can be found exit and
print error messages to console. edje_cc is currently
not reliable on OpenBSD. Until then anyone wanting to
use EFL on this platform will need pre-compiled .edj
files.
Differential Revision: https://phab.enlightenment.org/D9077
2019-06-09 20:30:29 +02:00
Godly T.Alias ad78f2ccf4 Genlist: Fix for genlist item field update
Summary: Avoid unnecessary operations on unrealized item when item field update is called

Test Plan: Call item_field_update on an unrealized item

Reviewers: cedric, raster, SanghyeonLee

Reviewed By: SanghyeonLee

Subscribers: #reviewers, rajeev.jnnce, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9019
2019-05-30 10:26:18 -04:00
Mike Blumenkrantz 57dc7cec55 tests/elm_focus: explicitly set widgets to expand+fill in test
Summary:
some widgets do not create a minimum size for themselves, resulting in
a 0x0 layout which can affect tests that rely on object visibility to
succeed without errors
Depends on D9007

Reviewers: bu5hm4n

Reviewed By: bu5hm4n

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9008
2019-05-30 10:25:31 -04:00
Mike Blumenkrantz 45ce932593 tests/genlist: fix some shadowed variable warnings
Summary: Depends on D9006

Reviewers: cedric

Reviewed By: cedric

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9007
2019-05-30 10:25:27 -04:00
Mike Blumenkrantz 79cad62203 tests/elm: explicitly denote cases where error messages are intentional
Summary:
we want to make it clear in our tests where it is intended that warnings
and errors may occur
Depends on D9005

Reviewers: cedric

Reviewed By: cedric

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9006
2019-05-30 10:25:23 -04:00
Mike Blumenkrantz 35f3983677 ecore-imf/xim: only call ecore_x_shutdown if init was previously called
Summary:
this isn't a perfect fix, but it's probably the best that can be done
given the current ecore-imf module api which calls the exit() module
function unconditionally during module cleanup even if the module was
never initialized

@fix
Depends on D9003

Reviewers: cedric

Reviewed By: cedric

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9005
2019-05-30 10:25:14 -04:00
Mike Blumenkrantz d8debc88f5 emotion: don't update crop clipper geometry if crop clipper doesn't exist
Summary:
this object does not exist if no image border is set

@fix
Depends on D9002

Reviewers: cedric

Reviewed By: cedric

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9003
2019-05-30 10:25:12 -04:00
Mike Blumenkrantz 625c2a0227 elm_widget_item_static_focus: check for adapter existence in unrealize cb
Summary:
adapter can be null if it was previously destroyed

@fix

Depends on D9001

Reviewers: bu5hm4n

Reviewed By: bu5hm4n

Subscribers: bu5hm4n, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9002
2019-05-30 10:25:09 -04:00
Mike Blumenkrantz 835058e688 elm/scroller: return immediately from updating focused scroll region without content
Summary:
there is nothing to update here if the scroller has no content to update

@fix
Depends on D9000

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9001
2019-05-30 10:25:06 -04:00
Mike Blumenkrantz bde555d622 elm/map: move setting initial zoom to later in construction
Summary:
this ensures that all necessary objects exist in order to successfully
perform the zoom

@fix
Depends on D8999

Reviewers: cedric

Reviewed By: cedric

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9000
2019-05-30 10:25:01 -04:00
Mike Blumenkrantz cd06f3d7c2 elm/list: return early from min_limit_cb if list object is dead
Summary:
no further recalculating should be done on dead objects

@fix
Depends on D8998

Reviewers: cedric

Reviewed By: cedric

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8999
2019-05-30 10:24:57 -04:00