path: root/src/lib/eina (follow)
AgeCommit message (Collapse)Author
2017-03-08eina: force copy of not copied virtualized file while doing an eina_file_dup.Cedric Bail
The other way around is pretty much impossible as you don't know who does an eina_file_dup and for how long they keep there reference. T5234
2017-03-06eina_file: delete handle->fm(handel of function CreateFileMapping)Ivan Furs
Summary: CreateFileMapping return handle. The handle before use is always closed. This handle can be immediately closed after use. Reviewers: cedric, raster, vtorri, rimmed, an.kroitor, FurryMyad, NikaWhite Reviewed By: raster Subscribers: artem.popov, cedric, jpeg Tags: #windows Differential Revision:
2017-02-28eina: move the _eina_main_loop set before we init anythingMarcel Hollerbach
otherwise we could get into problems. fix T4891 @fix
2017-02-28eina_value: Fix min/max values of long for WindowsJean-Philippe Andre
long is 32 bit on Windows (both 32, 64 bit). I wonder why eina_value doesn't simply use LONG_MIN/MAX O_o Fixes T5204
2017-02-28eina:list: Fix resource leakFlavio Ceolin
Summary: The usage of the macro EINA_MAGIC_CHECK_LIST can lead (in some cases) to leaks. Signed-off-by: Flavio Ceolin <> Reviewers: jpeg Reviewed By: jpeg Subscribers: cedric, jpeg Differential Revision:
2017-02-21docs: Fix typos and some wrong expressions in Eina API reference doxygen.Myoungwoon Roy, Kim
Summary: I had fixed some typos and some wrong expressions, such as capital letters, singular, and orders of groups in Eina API reference doxygen. Test Plan: Doxygen Revision Reviewers: stefan, cedric, raster, Jaehyun_Cho, jpeg Reviewed By: jpeg Subscribers: conr2d Differential Revision:
2017-02-20eina utils: fix build without getpwent.Mykyta Biliavskyi
If HAVE_GETPWENT isn't defined - the closing brace was missed. Also prevent situation when strdup() tried to duplicate NULL pointer, because that could cause segfault. @fix
2017-02-15eina_strbuf / eina_ustrbuf: add since tags for newly added APIsStefan Schmidt
These six have been added in this cycle but missed the since tags.
2017-02-15eina_lock: add since tag to now exposed eina_lock_debug APIStefan Schmidt
This function was static inline before but form 1.19 onwards its EAPI so give it a since tag.
2017-02-15eina: binbuf: add since tags new append_slice and insert_slice APIsStefan Schmidt
2017-02-13eina: make the ein_file_unlink symbol availbale form the ein_file headerStefan Schmidt
It was only defined in the c file. Without any documentation, since tag, etc. tests/eina/eina_test_file.c:855:4: warning: implicit declaration of function ‘eina_file_unlink’ [-Wimplicit-function-declaration]
2017-02-12eina inlist - cast container via void ptr to avoid warningsCarsten Haitzler (Rasterman)
we really can't do much here but our direct casting causes warnings in apps or anyone using this macro so keep things silent as our pointer tricks are actually ok but the compiler can't figure it out.
2017-02-12evlog/log bt - fix size casting tot stop warning when printing errsCarsten Haitzler (Rasterman)
2017-02-09eina utils and vpath - use euid not uid if setuid for correct userCarsten Haitzler (Rasterman)
was using uid not euid for "if setuid use safe way to get location" - ie the user that effectively owns the process, not nominally. @fix
2017-02-08eina debug monitor - dont use XDG_RUNTIME_DIR if setuidCarsten Haitzler (Rasterman)
avoids possible issues with debug monitor + setuid
2017-02-08elm config - handle profile name of ".." as its obviously invalidCarsten Haitzler (Rasterman)
this forbids .., as a profile name in addition to the existing "stip / from profile name".
2017-02-08eina utils - home and tmp environ - store statitcally and handle setuidCarsten Haitzler (Rasterman)
if setuod we dont want to trust HOME environ at all and get it from passwd file... also we dont want to keep re-getting too... so store statically as well as tmp. this also kind of helps CID 1366469
2017-02-08eina share - fix spinlock release if magic check fails on share dataCarsten Haitzler (Rasterman)
this fixes a potential double spinlock unrelease if magic check fails on share data. this fixes CID 1367493
2017-02-08eina freeq - fix possible seg with NULL freeq and pattern fill logicCarsten Haitzler (Rasterman)
this fixes handling of a NULL freeq handle - found by coverity. fixes CID 1369021
2017-02-07eina_file: add eina_file_unlinkIvan Furs
Test Plan: split D4423 - unlink Reviewers: raster, vtorri, an.kroitor, jpeg, reutskiy.v.v, NikaWhite, cedric Reviewed By: cedric Subscribers: artem.popov, cedric, vtorri, jpeg Tags: #windows, #efl Differential Revision: Signed-off-by: Cedric BAIL <>
2017-02-02evlog - fix "remove setting stack var to 0" that broke evlogsCarsten Haitzler (Rasterman)
this fixes b38c610c7e60cbdcb45fd6d27450e39e3a9c9dd1 - recent commit by me. bad me! spank!
2017-01-31eina log bt - make it an eaven easier copy & paste to get a bt nowCarsten Haitzler (Rasterman)
just copy & paste into a terminal and hit enter.
2017-01-31evlog - remove setting stack var to 0 until it is needed laterCarsten Haitzler (Rasterman)
we set stack var to 0 even if evlog was off and thus didn't use it. this cleans up the evlog func a bit and also moves locking until later so it's locked for the minimum period to punt something into the log buffer. it's an improvement, but no bug fix.
2017-01-30eina_evlog: Don't call get_time prematurelyDerek Foreman
If we're not logging events this generates a lot of wasted system calls. They probably don't amount to much, but it's trivial to get rid of them, and they make a mess when logging with strace.
2017-01-26cmake: fix strlcpy() detection and usage.Gustavo Sverzut Barbieri
Linux usually ship with strlcpy(), but it's inside bsd/string.h and needs -lbsd. On BSD it's inside string.h and libc.
2017-01-25cmake/eina: check more required functions and link with unwind if found.Gustavo Sverzut Barbieri
unwind is needed for debug, thus link to that.
2017-01-25cmake: EFL_OPTION() now supports DEPENDS to handle conditionals.Gustavo Sverzut Barbieri
This is now used by ENABLE_SYSTEMD and ENABLE_VALGRIND, which moves to "common.cmake" since they are shared among multiple libraries. With that I found that LINK_FLAGS is indeed a string, not a CMake List (space separated, not ";"), then fix that so compilation actually works.
2017-01-23cmake: major rework of check and pkg-config dependencies.Gustavo Sverzut Barbieri
make FUNC_CHECK(), TYPE_CHECK() and HEADER_CHECK() more general and they can be set to a scope, like "eina", then all symbols are prefixed with that. The scope is created with CHECK_INIT(), and EFL_HEADER_CHECKS_FINALIZE() will finish that. This makes it possible for cmake/config/eina.cmake + cmake/post/eina.cmake to add stuff to the generated file, better than hand edit the template. CHECK_APPEND_DEFINE(name val) is now the base to add symbols to the generated file in the current scope. Then convert cmake/config/eina.cmake to use that and match the autotools values (were a bit off). This exposed enabling valgrind was broken due incorrect pkg-config usage with cmake (it's not obvious), it was using just the libraries, while LDFLAGS are needed to get -L/usr/lib/valgrind. Then also convert to CFLAGS provided by pkg-config and make that automatic for PKG_CONFIG_REQUIRES and PKG_CONFIG_REQUIRES_PRIVATE. Also, eina-mempool modules use valgrind and must use that now that's propagating correctly.
2017-01-23cmake/eina: only pthread is public, rt/dl/m are all private.Gustavo Sverzut Barbieri
2017-01-23cmake: eina needs rtMarcel Hollerbach
for open_shm
2017-01-23EflMacros: auto-handling of pkg-config files.Gustavo Sverzut Barbieri
2017-01-23CMake: move eina binaries to single dir, add helper macros.Gustavo Sverzut Barbieri
For one-source directories, be smart and just define SOURCES to that, will reduce the number of too-simplistic CMakeLists.txt in our tree. This also fixes problems with libraries, they should be private, not public. So specify both kinds as different variables.
2017-01-23EflMacros: major improvements towards usability.Gustavo Sverzut Barbieri
Stick to one target per directory and remove prefix from variables, makes it cleaner and easier to use. Document variables used and use a more consistent name that matches CMake properties.
2017-01-23CMake: rework to use some helper macros.Gustavo Sverzut Barbieri
This tries to defines some macros to create a cleaner build system.
2017-01-23build: switch eina to half baked cmakeMarcel Hollerbach
2017-01-17eina: Remove EAPI eina_freeq_main_set()Jean-Philippe Andre
I believe this function is not required and should not be used by applications. If there is a very good use case to use your own main freeq, then the API could be added again. For now, removing the set() is probably the safer option. Note: the API was introduced in the upcoming 1.19
2017-01-17eina: Introduce Eina_Slstr for short-lived stringsJean-Philippe Andre
Built on top of the new 'postponed' free queue, the short-lived strings API allows users to return new strings without caring about freeing them. EFL main loop will do this automatically for them you at a later point in time (at the end of an iteration). The APIs provided will either duplicate (copy) or more generally steal an existing string (char *, stringshare, tmpstr, strbuf), taking ownership of it and controling its lifetime. Those strings can then be safely returned by an API. From a user point of view, those strings must be considered like simple const char *, ie. no need to free() them and their validity is limited to the local scope. There is no function to remove such a string from the freeq. The short lived strings API is not thread-safe: do not send a short-lived object from one thread to another. @feature
2017-01-17eina_freeq: Add mode for postponed deletionJean-Philippe Andre
While this reuses the existing (but new) infrastructure of eina_freeq, the mode of operation and objective is very different from the default freeq. By default, any object added to the freeq is basically already freed from the user point of view, and the freeq itself only adds a tiny layer of memory safety by deferring the actual call to free and optionally filling the memory blob with a pattern ('wwwww...'). This is mostly thread-safe (requires thread-safe free functions). This new type I called postponed is intended to store objects that will be short lived. This is not thread safe as the life of the objects added to this queue depends on the thread that adds to the queue. The main intent is to introduce a new API for short-lived strings. @feature
2017-01-06eina: move to use memcmp and rename eina_{flt,dbl}eq to eina_{flt,dbl}_exact.Cedric BAIL
2017-01-06eina: switch to equal FP_ZERO with fpclassify.Cedric BAIL
2017-01-06eina: rename EINA_{FLT,DBL}_CMP to EINA_{FLT,DBL}_EQ.Cedric BAIL
2017-01-06eina: add macros for determining whether floats are nonzeroMike Blumenkrantz
this is a commonly-used functionality, so make it faster to write @feature
2017-01-06eina: add functions for warningless exact comparisons of floatsMike Blumenkrantz
in some cases a user does want to check exact values, so these functions should be used to indicate this intent needs windows support @feature
2017-01-06eina: fix up last commitMarcel Hollerbach
i am sorry. I missed that i just freed the string and not the complete buf. This now really frees the buf.
2017-01-06eina_buf: replace eina_strbuf_free_return with eina_xXxbuf_releaseMarcel Hollerbach
The api name free_return wasnt a good choice so it is changed to release. This also moves the implementation to binbuf template so it is available in all buf types.
2017-01-06eina - fix redefinition of word size if already definedCarsten Haitzler (Rasterman)
2017-01-05eina: try to provide __WORDSIZE to system that don't have it aka OpenBSD.Cedric BAIL
2017-01-05eina_strbuf: add eina_strbuf_free_returnMarcel Hollerbach
Summary: For a function which just composes a string with strbuf its quite usefull to return the string while its freed. This makes a function like: { Eina_Strbuf *buf; char *path; buf = eina_strbuf_new(); eina_strbuf_append(buf, "test"); eina_strbuf_append_printf(buf, "%s-%d.edj", "test", 0); path = eina_strbuf_string_steal(buf); eina_strbuf_free(buf); return path; } To: { Eina_Strbuf *buf; buf = eina_strbuf_new(); eina_strbuf_append(buf, "test"); eina_strbuf_append_printf(buf, "%s-%d.edj", "test", 0); return eina_strbuf_free_return(buf); } Which is a bit more handy. Test Plan: just run make check Reviewers: raster, cedric Subscribers: jpeg Differential Revision:
2016-12-21eina freeq - add ability to set freeval and add a final freevalCarsten Haitzler (Rasterman)
this allows environment variables to set the byte falue to fill a freeq item added to the queue and then another item to actually fill memory with just before the free function so memory content difference will tell you if its inside the free queue or already freed from it completely. if you set tyhe freed value to 0 this will not fill with a value just before free and leave the value as-is determined by the first fill pattern value.
2016-12-21eina freeq - add explicit bypass on/off env var controlsCarsten Haitzler (Rasterman)
this fixes T5032