Commit Graph

240 Commits

Author SHA1 Message Date
Cedric Bail 926f4c5e84 efl: detect 64 bits correctly. 2013-11-09 19:48:31 +09:00
Ryuan Choi ec1ba32690 eina: Avoid increasing required alignment of target type warning on ARM in 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-05 15:45:56 +09:00
Carsten Haitzler b07c0a76ce alpha1 release autofoo/build tree work to pass distcheck and actually work 2013-11-04 18:33:35 +09:00
Cedric Bail 613947ac0d eina: make eina_cow_free reset the pointer to the default read only value. 2013-11-04 12:45:25 +09:00
Cedric Bail 687e4ae744 eina: roll const into Eina_File API.
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-04 11:26:59 +09:00
Carsten Haitzler 9337af1187 eina thread - make note about valgrind complaint that is bogus 2013-11-03 20:51:41 +09:00
Jérémy Zurcher 1eb85fe746 fix raster's typo 2013-10-30 22:41:13 +01:00
Cedric Bail e35c7b19fb eina: long forgotten function in Eina_File for Windows. 2013-10-28 19:47:40 +09:00
Cedric Bail 570ce667f3 eina: fix API as we don't and never will touch memory for write in that function. 2013-10-28 18:32:40 +09:00
Cedric Bail 60a34c1cd0 eina: avoid possible race condition when unreffing an Eina_File. 2013-10-28 18:32:40 +09:00
Cedric Bail 91e76f791d eina: honor string length in eina_tmpstr_add_length. 2013-10-16 18:56:32 +09:00
Cedric Bail 46447c95aa eina: just for a little bit of better portability. 2013-10-16 16:54:36 +09:00
Sebastian Dransfeld 0b26b1bd89 eina: And guard the right function with umask
Thanks Cedric.
2013-10-16 04:56:51 +02:00
Sebastian Dransfeld 7576ff00f3 Set secure file permissions for temporary file
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-16 04:28:53 +02:00
Carsten Haitzler f93329d119 Revert "eina: fix CID 1106340: Logically dead code (DEADCODE) reported by coverity."
This reverts commit 1c1b48ca64.

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-15 10:42:26 +09:00
Cedric BAIL 1c1b48ca64 eina: fix CID 1106340: Logically dead code (DEADCODE) reported by coverity. 2013-10-14 13:32:46 +02:00
Cedric Bail 68a4e85483 eina: that stuff was just for adding a bug in fact. 2013-10-11 17:30:35 +09:00
Carsten Haitzler 69e27abdc3 eina - and e3fl in general - stop using eina_error_get/set - useless really 2013-10-11 16:50:40 +09:00
Cedric Bail 0aa77d7dde eina: use Eina_Spinlock in Eina_Stringshare instead of Eina_Lock. 2013-10-11 11:08:17 +09:00
Cedric Bail 82d86ea42d eina: use Eina_Spinlock for Eina_Log. 2013-10-11 11:08:17 +09:00
Cedric Bail 1b07350a46 eina: add Eina_Spinlock API. 2013-10-11 11:08:17 +09:00
Cedric Bail fe25608edd eina: handle more compiler strangeness for bswap.
So current order is :
- __builtin_bswap*() for compiler that provide it
- _byteswap_*() for MSVC
- bswap_*() for older Linux and some BSD
- own C code when everything else fall appart.

The reason for this order is that the builtin will always generate
the best assembly possible. On my system bswap_*() are not changing
in all version to the best solution as they are almost equivalent to
the C macro.
2013-10-04 12:49:02 +09:00
Cedric Bail d52f825de6 eina: in case of an error we should exit not continue and manipulate dead data.
This should fix a warning catched by LLVM/Clang.
2013-10-04 10:56:05 +09:00
ChunEon Park 18be4c50d9 eina/eina_file - fix eina_file_map_lines() to not drop of one character in the last line. 2013-10-04 01:58:35 +09:00
Cedric Bail ff3d2a68d5 eina: add infrastructure to handle more CPU and compiler builtin information. 2013-10-02 20:54:50 +09:00
Tom Hacohen de6f57fac0 Eina inlist: Removed redundant if in EINA_INLIST_FOREACH_SAFE.
If it is not NULL, so will EINA_INLIST_GET. As that returns a pointer to an
area after it.
2013-09-30 14:28:38 +01:00
Cedric Bail 295babadb1 eina: check if the complete hash match before checking if the key match during children walk.
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.

This idea was given by Lucas De Marchi's blog :
http://www.politreco.com/2013/09/optimizing-hash-table-with-kmod-as-testbed/

I do believe that rolling a crc32 implementation as a hash function should give interesting result
in our test.
2013-09-26 15:51:25 +09:00
Lucas De Marchi ad76ce025c Revert "eina: add functions to alloc strings from a printf fmt"
This reverts commit b5fce696c7 and fixes
to NEWS and @since that came later.

These functions are pretty trivial and their functionality can be
obtained with asprintf() and snprintf. The first is not available only
on windows, but there's an implementation for that one on Evil, that
should be used instead.
2013-09-25 22:51:03 -03:00
Tae-Hwan Kim 54551defa6 eina: add EINA_INLIST_REVERSE_FOREACH_FROM. 2013-09-25 18:29:23 +09:00
Cedric Bail a7fe49139d eina: fix @since to be a proper revision number. 2013-09-24 15:03:24 +09:00
Jorge Zapata b5fce696c7 eina: add functions to alloc strings from a printf fmt 2013-09-24 12:20:27 +09:00
Jorge Zapata b98ee971f3 eina: add a substraction in rectangles and more helpers
Also add functions to cut a rectangle in the different
lengths/coordinates.
Add helper macros to printf a rectangle
2013-09-24 12:20:27 +09:00
Jorge Zapata 538821f09d eina: add double_from/to and helper defines in f16p16 2013-09-24 12:20:27 +09:00
Carsten Haitzler c1556b7112 eina - remove deadlock from share-common + remove extra lock/unlock 2013-09-08 10:03:35 +09:00
Carsten Haitzler f2885306dc eina - stringshare - strlen already would deal with optimization cases 2013-09-05 12:46:06 +09:00
Cedric Bail d7c8d221b0 eina: forgotten lock, thanks coverity. 2013-09-03 12:58:51 +09:00
Cedric Bail caf934e005 eina: don't try close dummy handle. 2013-09-02 12:33:21 +09:00
Cedric Bail 64823141f6 eina: fix typo and use the right refcount. 2013-09-02 11:16:59 +09:00
Jean-Philippe Andre deacfdce24 eina: Fix invalid check on Eina_File::global_map
global_map is set to MAP_FAILED in case of error after mmap.
So, it is initialized to MAP_FAILED and considered valid
otherwise.

So, we don't want to set the map to NULL or even check again NULL.
2013-08-27 17:31:12 +09:00
Daniel Juyung Seo a7399da8f6 Eina.h: bump up year. 2013-08-20 03:11:48 +09:00
Cedric Bail d72239a118 eina: remove a warning. 2013-08-12 12:11:56 +09:00
Cedric Bail 861823848a eina: change eina_file_virtualize to be able to provide a fake name. 2013-08-09 20:50:54 +09:00
Carsten Haitzler fb3159c48e eina module - minor addition ot allowing lazy loading if env var set 2013-08-08 20:18:08 +09:00
Cedric Bail 464c58a1c9 eina: another fix for windows build. 2013-08-08 17:17:58 +09:00
Cedric Bail c4beec0127 eina: fix compilation of Eina_File on windows. 2013-08-08 17:05:14 +09:00
Carsten Haitzler bdb19cd974 eina-file - adapt to bsd version of MADV_REMOVE 2013-08-06 16:13:03 +09:00
Cedric Bail c90179ce86 eina: fix build on FreeBSD. 2013-08-06 15:44:22 +09:00
Chris Michael a97f3c0b9b Fix eina_file_virtual_map_new function (/me glares at Frenchie).
- Spank Cedric !!!!!

NB: How about we actually fill in "map" after allocation ??

NB: Previously we would malloc "map" and immediately exit without
filling it in, without adding it to the hash....nothing. Just allocate
and get out. Bad Frenchie !!!

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-05 13:01:52 +01:00
Cedric Bail 4dd259f3b1 eina: add eina_file_refresh(). 2013-07-31 17:16:40 +09:00
Cedric Bail f2de8970a1 eina: add support for in memory only Eina_File. 2013-07-31 11:51:51 +09:00