There are several cases of failure:
- if regex is NULL, regfree(regex) may lead to segmentation fault
(undefined behaviour, as specified in POSIX.1)
- if regex is not NULL, there are cases of use-after-free.
@fix
Clang raised the warning:
redefinition of typedef 'Efl_Object' is a
C11 feature [-Wtypedef-redefinition]
for every compiling unit including Eo.h, which
caused a huge console pollution during compilation.
EAPI elm_win_type_set
EAPI elm_win_name_set
Those two APIs should never have been part of the legacy API,
but they have been generated since at least 1.16. The commits
1aceb3bc19
and
41aa19447c
removed the legacy symbols generation. It seemed like a good
idea since the APIs shouldn't exist, but in fact this broke
ABI. I hate this. So sorry about it.
I'm adding them back in with no documentation and as
EINA_DEPRECATED.
This is an emergency commit before the 1.18.x release
announcement.
Fixes T4344
@fix
if clipped color changed and not object color on image objects, then
the updates could be missed. this also fixes some corner cases where
opaqueness should not count for update deletion too. this bug seems to
have been here a while unnoticed.
fixes T4246
@fix
This reverts commit d19cd4e63c.
This causes a SIGBUS error on OpenBSD when closing any application. As this
was safety patch only I will revert it for the 1.18 release and we can work
out what breaks OpenBSD here for 1.19
Fixes T4332
Not sure how this got in there, but it looks like
gbm_surface_release_buffer was being called twice on the same buffer.
This should sort out the double-free mentioned in ref T4335
Signed-off-by: Chris Michael <cp.michael@samsung.com>
alpha
If we have a borderless alpha window, then make call to set opaque
region accordingly. This still avoids calling opaque_region_set twice,
yet maintains opaque region for the above mentioned case.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
combobox: add Multiple selection feature
This exposes problems with name clashes and behaviour change for the legacy API.
Revert for now and we can revisit for 1.19.
Git revert got to confused as this was committed before we merged elm in. I did
the revert manually.
When trying to create a window, the WL EGL engine creates
an ecore_evas and connects to the wayland display. But if
EGL is not supported (in weston with nvidia for instance),
the egl initialization fails and the window must be detroyed
in order to fallback to wayland_shm.
This led to a double disconnect from the wayland display
as both the ecore_evas del and the error handling code
were trying to disconnect.
Also, use ref == 0 in two places rather than ref <= 0, as
it can prevent double frees in bad situations (ref < 0).
And reset a global variable to NULL on shutdown.
Simply add support for EVASGL native surfaces.
I removed all code related to OPENGL surfaces (deprecated stuff
from old Evas GL).
Fixes T2936
Note that here are still some missing features in Evas GL
support on Wayland (at least pbuffers support is not implemented).
This affects pointer & key events.
Here's the scenario: in Enventor, an elm_button object
grabs the up & down keys for the autocompletion feature.
But the entry will also listen to up & down to move the
cursor. Moreover, the scroller listens to up & down arrow
keys to scroll around.
So, when calling the new eo event first, the scroller
or the entry would catch it and do some action. In
Enventor, this triggered a hide on the magic anchor
object. Bad, bad.
I fear something will be wrong with this order as well.
Both events (legacy & eo) should be called simultaneously,
following the order & priorities that were set.
This being said, in real life most of EFL internals will
move to the new eo events (right now elm relies on the
new events, but edje doesn't, yet), so any app grabbing a
key probably wants to handle the event before elm. Same
for an app using focus manually.
Fixes T4310
Due to the way the clip geometry calculation changed
(see 25d77bc1d2) to be
based on the bounding box rather than the raw geometry
of smart objects, the internal function
evas_object_is_in_output_rect() now returns true if the
rectangle intersects with that bounding box, even if
it's outside the raw geometry.
This breaks the drop area in E's pager, as it relies on
evas_objects_at_xy_get() to find which objects are at
this point. What I saw on my desktop was that only the
lower 10 or 20 pixels were droppable in the pager,
as maximized windows would have shadows covering the
upper 20 pixels or so.
Arguably objects_at_xy_get could also return all objects
at (x,y) including smart objects that extend beyong their
geometry. This can be added as a flag in the EO API, but
not in the legacy API.
while removing children from a parent smart object, the destruction of
the smart obj encountered childrne with NULL parents. they were in the
child list but had no parent. This was totally odd and unexpected,
thus caused an infinite loop trying to dlete a child that won't be
removed from the list because parent is NULL thus it cna't find the
parent list to remove it from. This works around that and then
complains with an error. The workaround also seems to have encountered
what might be a compiler bug so I prepended to the layer object list
rather than appended. this at leats stops the hang.
@fix
We use disabled across our APIs so better fix this new one to unify it before
we release. This was introduced in commit 0116e07288
Many thanks to DaveMDS for reporting this!
Summary:
elementary_test search menu is created again and again
at each search query. Here the optimaization is to remember
the menu item and retain them instead of deletion and reuse them.
Signed-off-by: Umesh Tanwar <umesh.tanwar@samsung.com>
Test Plan:
search item in elementary_test and measure the
performace time.
Reviewers: jpeg
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D4218
Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
After my input event changes, the propagation path has been altered
from:
ecore_x -> evas_event
to:
ecore_x -> ecore_input_evas -> evas_event
But ecore_input_evas was ignoring cancel events by default. There
should be no good reason to disable cancel events anymore,
according to @jypark. Also, this fixes an actual bug :)
Fixes T4301
At some point we lost the \ after track_example_01 and in combination with the
commented out line right afterwards we lost all examples coming after this line.
This just surfaced with JPs latest commit when I did a distcheck build but was
there for a longer time. We now make sure all disabled examples are moved out of
the multi-line list.
Without this I get errors from the clang compiler used on Travis for some OSX
builds:
../src/lib/eina/eina_inline_lock_posix.x:845:27: error: use of undeclared identifier 'getpid'
The specific handling for (0.0 <= ellip < 1) doesn't support multi-line cases.
One of the main reasons is that we haven't had the chance to define the wanted
behavior for multi-line.
This is a temporary hack to fix a segfault. The behavior is still undefined,
though.
Fixes T3885.
this addresses a path that could be too small (unlikely due to max
path generally being 4k), for a stack buffer. this should make
coverity happy. fix CID 1356634
we don't give any debug or info if a module in a list fails to load.
we should at least offer debug info. do that. this fixes coverity
issue CID 1039687
make coverity happy with CID 1347410 - it's technically right that the
code assumes the im ptr is valid until then as it dereferences it
until then and then stores it under pd->image but then checks for
NULL.. it would have crashed already if it were, so rmemove the
pointless check.
as accoding to coverity CID 1353593 chekc returns of the above
function and return/continue as apporpriate if these fail (which
generallly they shouldnt unless some end of the dbus client is broken).
so vpath has a fallback if all things bad go wrong to mkdir a homedir
in /tmp and if that fails use /tmp or use / - if $HOME isnt set ... but
$HOME alwasy should be, so this is only for "a broken system".
this should fix CID 1354286
fix CID 1360466
we don't actually chekc if efreet inits right with elm_need_efreet()
as we just assume it inits (And there pretty much is no case where it
will not), but make coverity happy and check.
@fix
Summary:
When map source is set by elm_map_source_set(),
it foreaches enlisted sources, and should return
when the source cannot be found.
@fix
Test Plan:
Call elm_map_source_set(map, [any type], [Wrong source name]);
Observe ERR("source name (%s) is not found", source_name) message.
Reviewers: Hermet, cedric, jpeg
Reviewed By: jpeg
Subscribers: conr2d
Differential Revision: https://phab.enlightenment.org/D4212
if the text didnt actually change we generat a lot of noise in changed
signals for no change at all in text. shortcut this and check the new
and old text and compare ptrs, 0 length and strings etc.
this fixes T4045
@fix
this fixes programs that inherit and play audio on specific channels.
i found that sound worked on single line entries but not multipline
beause single line inherit from multi but didnt copy this program
param - the channel number. this fixes this
@fix
fixes CID 1361219
if you had an env var a few gb in size or we had stuff in the last bit
of memory address space this might be an issue, but that won't happen.
@fix
fixes CID 1361220
in theory yes end minus start could be insanely huge or end be very
high in memory thus causing an overflow. this would have to be in the
last few bytes of memory space, so it never going to happen. and the
input from the env var has to be sane anyway as its user controlled.
@fix
This reverts commit 8a988717e1.
It seems we can't actually inherit from class more than once and neither eo
nor eolian will complain about it. You will just get random weird behavior.
This patch should come back once we have made an interface of edje.
so ecore-con already cleared the slaves list on shutdown but an
ecore_thread may stillbe active and thus removing from a NULL slaves
list wont work, so skip if slaves is NULL.
@fix
the way eina does sempahores, they can NEVER be sensibly shared
cross-process portably. so enabling sharing is a pointless idea. in
fact some os's like openbsd check if the sempahore addres is in a
sharable mem region and deny init if it is not. on osx you dont use
shared memory but a sempahore name you share instead... and this is
not exposed thus it can't be shared either. if we did process sharable
semaphores we'd make shm segments and/or name them in a sharable way
were you can share the idenitifer of the shm segment and/or the offset
address or name from osx. but we don't, so making them
process-private is the right thing. sharable sempahores will need a
whole new api.
this also fixes osx naming to make the name pretty unguessable/private
and opened exclusive (or it fails) by using pid, sem counter, and 4
random numbers. it's not a security mechanism as the create will fail
if there is a clash. chances are low. we unlink before anyway. good
enough for osx for now.
@fix
so thats a common local port to use for other things... 8080 - don't
use it, so use 12346 much like 12345 is for the other tests. far less
likely to clash. fix up tests to work better.
There is a line to check select_mode in _item_select function.
The item selected(clicked) callback is called when the select_mode is ELM_OBJECT_SELECT_MODE_NONE.
The checking select_mode should be handled at one place.
fill in the padding of mesages (10 bytes) with something so valgrinds
can be happy and use vlatiole for msgs count as the msgs num should
have been incremented already before the msg sned is done and main
thread/loop gets the msg
this should make ecore_imf testable with empty env vars also meaning
no env var and the make check test will now ensuree this is set to
exactly test this.
This is to avoid ERR messages such as "object is not an image!"
that can happen when a legacy image function is called on an
eo image (proxy, 3d, ...) object.
Note: This does not fix any known issue, but it's probably a safer
solution.
This removes some useless code in various places, where the
switch from eo_do() to standard function call was not properly
refactored.
This changes:
type ret = 0;
ret = my_eo_function();
return ret;
To:
return my_eo_function();
In elm_image, efl_file_get() was called on a legacy Evas Image
object, which generated an ERR message. This was way too much
noise for something that actually works.
It's best not to call efl_file_get/set API on a legacy
object, but it can be convenient for smooth code transitions
from legacy to pure eo.
Also, add safety to those APIs.
Test case: elm_test genlist dnd, start dragging anything.
this fixes errors like:
ERR<4864>:eet lib/eet/eet_lib.c:645 eet_shutdown() File '/home/osauser/.cache/efreet/icons___efreet_fallback_localhost.localdomain.eet' is still open 1 times !
@fix
so we didnt set everything to null after being freed and object sae
freed after some data. do the data frees after objects are deleted so
callbacks cant access null data anyway. this makes this edje shutdown
far more robust and safe. massive improvement in stability i hope.
This fixes an issue from 19eb7b727f where the code
would no longer compile due to not finding noext_glXCreatePixmap in
the structure. This was due to the fact that this field was not
compiled into the structure if gl_gles was defined.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Because of the translation between legacy and eo key
events, the on_hold flag state could sometimes be lost.
Symptom:
elementary_test -to Focus
Click on a button inside the scroller
Up/down would jump to the end of the scroller, rather than
the next button.
Thanks a lot to Woohyeon for the very good bug report.
This fixes calls to glXCreatePixmap that would consistently
fail on nvidia >= 360.
It seems glXCreatePixmapEXT was used instead of glXCreatePixmap,
and that function always returned 0.
One could assume always using the non-EXT version of the
function should be preferred. Unfortunately, doing so for all
the other functions brings back the black windows.
I'm taking a very careful approach by doing this only for drivers
>= 360.
Fixes T3030
@fix
in 14ec825aa9 cedric added trying
ELM_DATA_DIR env var explicitly for looking for themes. first if this
is NULL then we look in a bogus directory (null). secondly eina_prefix
already takes care of env vars like thsi as part of figuring out
prefix with correct namespace etc. so this just is a bug as opposed to
anything useful and the CORRECt implementation is already done in
eina_prefix.
@fix