some distros 9notably in this case nixos) want to do reproducible
builds. to them this means going around setting mtime for all files to
0. this means efreetd not only thinks mtime is invalid/stupid (0 is
generally just that as midnight on jan 1 1970 is not exactly a
sensible dare for a modified timestamp of a file as no filesystem with
any sanity will have not been modified since that time), but it keeps
mtime at 0 even when things update. this totally breaks efreetd that
expects to find mtime increases over time as things change. it's
necessary because it has to perform a "are mu caches up to date" scan
of all file data it caches and it needs to know if it should rebuild
something based on this.
so this does a few things:
1. it makes mtime have to be an exact match to the cache, not cache
mtime >= file mtime. so any change forward or back is an inavlidation.
2. it now also uses ctime, mode, size, uid, gid, block count and if a
symlink, the sha1 of the symlink path in addition and any change to
these == invalid.
this adds a lot of code and changes how dirs get scanned a bit but it
means it can pick up changes on these 0 mtime distros.
interestingly the policy of mtime being 0 is to have a reprodcible fs
... but ctime still changes and is > 0, as does inode info, so it's
not actually possible to have it totally work... but they try still,
so this is a fix for that problem.
whilst i was doing thisi also noticed efreetd re-red dirs many times
due to icon theme inhritance. i also fixed that to do a LOT less
syscalls by only scanning a dir once as i was rejigging the scanning
code at the time anyway. this should optimize thr scan costs at
efreetd startup too.
@fix
@opt
Summary:
when elm_image_preload_disabled_set(img, EINA_TRUE) is called before file set.
The image preload is not canceled, because the function will be returned since the image is not loaded.
so preload disabled api is fixed to work even if it is called before file set.
@fix
Reviewers: Hermet, kimcinoo, jsuya
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11969
Summary:
Since "fixed" does not affect the group size by the part's min size, the
documentation is updated to be clearer.
Reviewers: woohyun, raster
Reviewed By: woohyun
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11934
Summary:
T7076
legacy calendar inc/dec button has auto repeat feature.
for that if user click the button very quickly, we delete internal timer than it will pass to function.
to prevent this, need to check NULL pointer.
Reviewers: devilhorns, Hermet
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11966
This patch fixs a wrong group name in Ecore_Eo API reference
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11952
Summary:
As delete_me flag was not updated in the delete callback it dosen't
call ecore_ipc_client_del() on the client hence the leak.
Reviewers: Hermet, raster, bu5hm4n, CHAN
Reviewed By: Hermet, CHAN
Subscribers: CHAN, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11927
Summary:
dbus message requires the void* value for the message data,
the returned value of dbus_message_iter_get_basic() can be mismatched by to the architure,
This could bring the returned va_argues memory corrupted among the series of values.
We can use the defined type for exceptions.
Reviewers: herb, kimcinoo, jsuya, raster
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11940
Summary:
During shutdown we used to call engine_image_free() which was causing some deadlock.
as we have evas_cache which takes care of freeing all the images we just have to
delete the generic cache without freeing the image during shutdown.
Reviewers: Hermet
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11915
Summary:
resize_job can be called after obj is deleted.
So add free to destructor.
Test Plan: N/A
Reviewers: Hermet, herb, kimcinoo, zmike
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11911
Summary:
this should be freeed. Both can be freed in group_del after the items
are deleted.
fix T8732
Reviewers: Hermet
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8732
Differential Revision: https://phab.enlightenment.org/D11882
Allocated part_array is only freed when _circular_dependency_find() is successful. It is not freed in other cases.
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Reviewed-by: woochan lee <wc0917.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D11886
his reverts commit 38be95b0b6.
The reverting patch blocks efl_canvas_vg_shape triggers efl_canvas_vg_node destructor.
That occurs massive leaks among the all nodes in the vector tree.
To fix the origin issue, we must reset path explicitly in the derived class.
@fix
Summary:
This limit parts are only used in naviframe edc thats why it is
only showing up in naviframe test app.
Reviewers: Jaehyun_Cho, Hermet
Reviewed By: Jaehyun_Cho
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11887
we should not prefix this with the full path.
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Reviewed-by: Vincent Torri <vincent.torri@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11881
The former is a POSIX name, the latter is non-standard. I don't
know why the latter was used, considering glibc literally has
just #define LC_ALL __LC_ALL, but change it and unbreak build
on musl and other systems.
XDG_DATA_DIRS was only set up to a default including where efl was
installed prefix-wise as the compiled-=in prefix, not runtime
determined prefix. it shouldn't actually affect most people except
those making use of this.
@fix
regions sometimes produce box sets like:
// +---+
// | |
// +---+ +-------+
// | | | |
// +---+ +-------+---------+
// | |
// | |
// +-----------------+
so the upper-left 2 boxes can be merged into 1 and they have the same
x coords and are flush-aligned one above the other. that is what
this does - find these and merge them to have fewer rects
@fix
i noticed some junk in framespace... this happesn when solid objects
are outside the normal window content area and their solid areas are
not clipped to this inner frame area thus those areas are not "zeroed
out" next render.
@fix
Summary:
The alpha_set cancels preload, and do not try to load it again.
So the image is not showing, if the alpha_set is called while preloading.
[Sample]
Evas_Object *image = elm_image_add(box);
elm_box_pack_end(box, image);
evas_object_show(image);
elm_image_file_set(image, "img.png", NULL); // start preloading
Evas_Object *eimg = elm_image_object_get(image);
evas_object_image_alpha_set(eimg, EINA_TRUE); // cancel preloading
Reviewers: Hermet, jsuya, herb
Reviewed By: Hermet
Subscribers: zmike, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11864
Summary:
evas_vg_container should return NULL when the parent is NULL
because the function does not allot NULL parent
@fix
Reviewers: kimcinoo, jsuya, Hermet
Reviewed By: kimcinoo
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11867
Summary:
efl_wref_del makes pointer to NULL.
So we should copy pointer before efl_wref_del is called.
Reviewers: SanghyeonLee, cedric
Reviewed By: SanghyeonLee
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11866
On Windows 64bits, long is a 4 bytes type. Declare count as being a intptr_t instead of long
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11836
On Windows 64bits, long is a 4 bytes type. Declare i as being a uintptr_t instead of unsigned long
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Reviewed-by: Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D11837