summaryrefslogtreecommitdiff
path: root/src/lib/eina (unfollow)
AgeCommit message (Collapse)Author
2013-12-26efl: Unified eina critical manro to CRI.Daniel Juyung Seo
Being annoyed by different types of eina critical macros - CRI, CRIT, CRITICAL -, I concluded to unify them to one. Discussed on IRC and finally, CRI was chosen to meet the consistency with other macros - ERR, WRN, INF, DBG - in terms of the number of characters. If there is any missing bits, please let me know.
2013-12-16One ) too many.Iván Briano
2013-12-13eina - eina_file - fix leak of fd is fd is 0Carsten Haitzler (Rasterman)
this should fix CID 1039181
2013-12-07eina: Set it to NULL before next iterationSebastian Dransfeld
it might have been free'd by the user, so set it to NULL before next iteration. This is an attempt to fix CID 1039913 and 1039914. We don't use the pointer value, only the pointer, so the error is wrong. Could flag the error in coverity, but if this fixes it, we wont see the error in other situations.
2013-12-05eina: this is actually a better way of improving Eina_Hash performance.Cedric Bail
This reduce the size of the rbtree part dedicated to the hash key match, but reuse only bit that weren't matched by the bucket.
2013-12-04eina: improve cmp function of eina_hash string related hash.Cedric Bail
For strings, we already know the length, so let's just not call the heavy strcmp if the length is not already the same. Get some easy speedup here.
2013-12-04eina: increase hash matching inside of Eina_Hash.Cedric Bail
This is the correct implementation of the idea developped in Lucas De Marchi's blog : http://www.politreco.com/2013/09/optimizing-hash-table-with-kmod-as-testbed/ This give an interesting +15% for all Eina_Hash user whatever hash function they use. The inlined djb2 is still the fastest one and all other give very close result. It does increase memory foot print, but as much as the previous way of doing it.
2013-12-04Revert "eina: work around current strange behavior seen in eina_cow."Cedric Bail
This reverts commit e4107b2936e2a11e5966bbdc591f110156191af0.
2013-12-04Revert "eina: more work around to limit problem."Cedric Bail
This reverts commit c5db264e0a98234d32553ec1b43e612e0da1eeb3.
2013-12-04Revert "eina: check if the complete hash match before checking if the key ↵Cedric Bail
match during children walk." This reverts commit 295babadb1675d1160b18c639dd6dcbe20b02cfb. The implementation of that said optimization is actually wrong.
2013-12-04eina: more work around to limit problem.Cedric Bail
2013-12-04eina: work around current strange behavior seen in eina_cow.Cedric Bail
This is not perfect, it will just limit the propagation of the problem for some time. Yes, it does hide it under the carpet, but that's better than having a crash. Problem seems to be in Eina_Hash, but is really difficult to reproduce and fix for the moment.
2013-12-01eina - fix set-but-unused warning in eina_cow when valgrind offCarsten Haitzler (Rasterman)
2013-11-30fix eina_cow issues. Closes T581, T527Boris Faure
2013-11-29eina: formattingSebastian Dransfeld
2013-11-29eina: fix rounding logic to avoid making the array to short.Cedric Bail
I have no idea how the previous formula was supposed to work at all, but this one is the same as our alignof code to make sure we do allocate to the really nearest size and don't do over allocation. Additionnaly it works.
2013-11-28fix eina_array_remove to actually realloc down in size to remove bloatCarsten Haitzler (Rasterman)
eina_array_remove() didnt ever realloc down unless we went to 0 members. this wasn't very good as you'd expect the array to be reduced in size if enough items were removed. not only that the old code was stupid and ALWAYS malloc()ed a new array of the exact same size and copied items over in the most complex way possible, then freed the old one. this would have added overhead wherever used (evas_render) that should not have been there. this is based on the idea in a patch from Viacheslav Lvov <v.lvov@samsung.com>, but this is a re-do of it entirely, reducing the codebase massively even compared to the patch and making it much simpler to read, maintain, actually reduce memory and cut overhead.
2013-11-21eina: fix the crash seen by some during rebuild.Cedric Bail
Before this patch, we were unconditionnaly destroying the Eina_File if that one did change on disk. We also make sure that we remove the right entry from the cache if the file did change there.
2013-11-20eina: cleanup file destruction and reintroduce EINA_MAGIC use.Cedric Bail
2013-11-20eina: fix a possible race condition during eina_file_close.Jérémy Zurcher
replay 7e8fb93 without the breakage
2013-11-20Revert "eina: fix a possible race condition during eina_file_close."Jérémy Zurcher
it breaks everything This reverts commit 7e8fb93206ee95945bb757267832537c13ab4287.
2013-11-20eina: fix a possible race condition during eina_file_close.Cedric Bail
The lock on the main hash was taken to late (after we took the decision to remove the targeted Eina_File from the cache), this means it was possible to get an Eina_File from the cache that was going to be removed. This patch attempt to fix that potential race condition. Hopefully should fix T461.
2013-11-18eina: try to handle all possible 64bits pointers environment.Cedric Bail
2013-11-17eina: remove the value from the hash before changing it !Cedric BAIL
This should fix bug T439.
2013-11-12eina: fix uninitialized data use.Cedric Bail
2013-11-10eina: avoid warning.Cedric BAIL
2013-11-10eina: let's copy va_list when passing it around to be more portable.Cedric BAIL
NOTE: EINA_VALUE_TYPE_DISPATCH_RETURN macro is a bit weird, it does use external variable not passed to the macro and half of the parameter given to it are just ignored...
2013-11-10eina: use portable infrastructure to detect page size.Cedric BAIL
2013-11-10eina: detect page size in a portable way.Cedric BAIL
2013-11-09eina: let's try to reduce the covered 64bits system.Cedric BAIL
2013-11-09eina: let pass the right size.Cedric Bail
2013-11-09eina: fix eina_hash_int64 on Windows system.Cedric Bail
2013-11-09efl: detect 64 bits correctly.Cedric Bail
2013-11-05eina: Avoid increasing required alignment of target type warning on ARM in ↵Ryuan Choi
Eina_Hash. Summary: When building applications with -Wcast-align on ARM, there are following warnings. increases required alignment of target type warnings. This impact eina_hash_murmur3. Reviewers: cedric, seoz Reviewed By: cedric CC: cedric Differential Revision: https://phab.enlightenment.org/D317 Signed-off-by: Cedric Bail <cedric.bail@samsung.com>
2013-11-04alpha1 release autofoo/build tree work to pass distcheck and actually workv1.8.0-alpha1Carsten Haitzler (Rasterman)
2013-11-04eina: make eina_cow_free reset the pointer to the default read only value.Cedric Bail
2013-11-04eina: roll const into Eina_File API.Cedric Bail
Note that eina_file_dup is const from the caller perspective as it will return a fresh "non const" Eina_File that it will be able to manipulate as it like.
2013-11-03eina thread - make note about valgrind complaint that is bogusCarsten Haitzler (Rasterman)
2013-10-30fix raster's typoJérémy Zurcher
2013-10-28eina: long forgotten function in Eina_File for Windows.Cedric Bail
2013-10-28eina: fix API as we don't and never will touch memory for write in that ↵Cedric Bail
function.
2013-10-28eina: avoid possible race condition when unreffing an Eina_File.Cedric Bail
2013-10-16eina: honor string length in eina_tmpstr_add_length.Cedric Bail
2013-10-16eina: just for a little bit of better portability.Cedric Bail
2013-10-16eina: And guard the right function with umaskSebastian Dransfeld
Thanks Cedric.
2013-10-16Set secure file permissions for temporary fileSebastian Dransfeld
From glibc mkstemp man page: In glibc versions 2.06 and earlier, the file is created with permissions 0666, that is, read and write for all users. This old behavior may be a security risk, especially since other UNIX flavors use 0600, and somebody might overlook this detail when porting programs. POSIX.1-2008 adds a requirement that the file be created with mode 0600. More generally, the POSIX specification of mkstemp() does not say anything about file modes, so the application should make sure its file mode creation mask (see umask(2)) is set appropriately before calling mkstemp() (and mkostemp()). And: http://cwe.mitre.org/data/definitions/377.html
2013-10-15Revert "eina: fix CID 1106340: Logically dead code (DEADCODE) reported by ↵Carsten Haitzler (Rasterman)
coverity." This reverts commit 1c1b48ca64c4d13cfd3677cde1ee99e4cf6c2c15. this commit is causing all sorts of hell and crashes, hangs and what not. like: Thread 1 (Thread 0x7feb7389e780 (LWP 7149)): No symbol table info available. No symbol table info available. at lib/eina/eina_inlist.c:422 l = 0xf38a50 __FUNCTION__ = "eina_inlist_demote" #3 0x00007feb6a809867 in _eina_chained_mempool_alloc_in ( pool=pool@entry=0x8650a0, p=p@entry=0xf38a50) at modules/eina/mp/chained_pool/eina_chained_mempool.c:197 mem = 0xf3a690 #4 0x00007feb6a809dff in eina_chained_mempool_malloc (data=0x8650a0, size=<optimized out>) at modules/eina/mp/chained_pool/eina_chained_mempool.c:300 pool = 0x8650a0 p = 0xf38a50 mem = <optimized out> #5 0x00007feb6a7e451f in eina_mempool_malloc (size=40, mp=<optimized out>) at lib/eina/eina_inline_mempool.x:103 No locals. #6 _eina_list_mempool_list_new (list=0x7feb5402a510) at lib/eina/eina_list.c:199 No locals. #7 eina_list_append (list=0x7feb5402a510, data=0xf41720) at lib/eina/eina_list.c:534 l = <optimized out> __FUNCTION__ = "eina_list_append" #8 0x0000000000445d1a in e_bindings_signal_add (ctxt=<optimized out>, sig=0x947e6c "mouse,clicked,[12]", src=0x92248c "e.event.close", mod=E_BINDING_MODIFIER_NONE, any_mod=1, action=0x93479c "window_close", params=0x0) at e_bindings.c:1036 binding = 0xf41720 #9 0x00000000004469d4 in e_bindings_init () at e_bindings.c:68 ebs = 0x947df0 ebm = <optimized out> ebw = <optimized out> ebe = <optimized out> ebk = <optimized out> eba = <optimized out> l = 0x9532e0 #10 0x0000000000437516 in main (argc=<optimized out>, argv=<optimized out>) at e_main.c:941 safe_mode = 0 '\000' after_restart = 1 '\001' waslocked = 0 '\000' t = <optimized out> tstart = <optimized out> s = <optimized out> buff = "1381800872.3", '\000' <repeats 19 times> action = {__sigaction_handler = { sa_handler = 0x4fca00 <e_sigabrt_act>, sa_sigaction = 0x4fca00 <e_sigabrt_act>}, sa_mask = {__val = { 0 <repeats 16 times>}}, sa_flags = -1073741820, sa_restorer = 0x0} __FUNCTION__ = "main" Detaching from program: /usr/local/bin/enlightenment, process 7149
2013-10-14eina: fix CID 1106340: Logically dead code (DEADCODE) reported by coverity.Cedric BAIL
2013-10-11eina: that stuff was just for adding a bug in fact.Cedric Bail
2013-10-11eina - and e3fl in general - stop using eina_error_get/set - useless reallyCarsten Haitzler (Rasterman)