Commit Graph

1044 Commits

Author SHA1 Message Date
Cedric BAIL 0ef07d6095 eina: readdir_r has been deprecated.
So glibc has decided that readdir_r is hard to use safely and deprecated it
this summer. They recommand to use readdir, which was in the past unsafe to
use in a multi thread scenario, but is now on most system (and all system
we care, including our own implementation in evil). It is basically safe
as long the same DIRP is not accessed from another thread. This is true in
our code base, so we are fine to go with this.

For further reading: https://lwn.net/Articles/696474/
2016-08-25 15:23:14 -07:00
Gustavo Sverzut Barbieri 45c0002929 eina_slice: startswith and endswith.
these helpers around memcmp() make the code more readable.
2016-08-23 21:25:02 -03:00
Gustavo Sverzut Barbieri 9944c164bd eina_slice: fix multi-byte find function, add tests. 2016-08-23 20:17:13 -03:00
Jean Guyomarc'h 5d527fffc8 eina: remove references to win32 and winCE in threads 2016-08-23 21:15:25 +02:00
Jean Guyomarc'h 180b24f2a0 eina: fixtures on OSX semaphores
So actually there is quite a big issue with semaphores
on OSX. We use (named) POSIX semaphores, but this was
a (my) mistake... I'll fix it later...
The real issue is that named semaphore are persistants:
when the program dies, it stays alive. This is pretty
bad with eina_debug_monitor because we create a semaphore
we never release, due to a wild thread...

This leak of semaphores went unnoticed before commit
4a40ff95de because the
name of the semaphore was unique per process, and
overriden when another process was launched. This
was very bad, but saved us from overflowing the
semaphore pool. It is now overflowed pretty fast when
building a lot EFL, because of Eolian that runs A LOT!

So that's one problem that still needs to be fixed,
by using OSX' own semaphores (see T4423).
Another big issue, which is now fixed is that the
buffer in which we generated the semaphore ID was
too small, and therefore we were reduced to one shared
semaphore for a whole process... This buffer has been
now set to 31 characters, which seems to be the maximum
length of a semaphore ID.

So now things are better, but still with a deadly issue.
2016-08-23 21:15:25 +02:00
Gustavo Sverzut Barbieri 12850d4e25 remove EINA_ERROR_TIMEOUT
As pointed out in the mailing list, it was introduced in this release,
so it's better to remove the symbol instead of deprecating it.

People should use ETIMEDOUT directly.
2016-08-23 10:14:17 -03:00
Gustavo Sverzut Barbieri 0d96ba9734 binbuf, strbuf and ustrbuf: add slice_get() and rw_slice_get(). 2016-08-22 18:25:14 -03:00
Gustavo Sverzut Barbieri 77faebde67 eina_stringshare: add slice_get() 2016-08-22 18:25:14 -03:00
Gustavo Sverzut Barbieri 9062bbd8e0 eina: introduce Eina_Slice and Eina_Rw_Slice.
A plain simple pointer + length describing a linear memory region.
2016-08-22 18:25:14 -03:00
Gustavo Sverzut Barbieri 602a98c8b9 eina_error: provide a fallback when strerror_r() is not available. 2016-08-22 18:25:14 -03:00
Jean Guyomarc'h 26a26f2304 eina: fix use of strerror_r()
So, first, the wrong strerror_r() was detected on
Mac OS X. Instead of using a complex set of macros
to try to detect which strerror_r() to use, when
it is defined, let the autotools handle that clerverness
for us.
2016-08-22 20:02:02 +02:00
Gustavo Sverzut Barbieri e56811ed4d eina_error: allow errno.h codes.
we have some duplication of errors between Eina_Error and errno.h,
however we should use Eina_Error to extend the traditional errno.h
system.

then change eina_error_msg_register() and
eina_error_msg_static_register() to return a magic bit to state the
number was registered, and on other functions test this bit in order
to operate on registered values, otherwise fallback to errno.h, such
as strerror().

It also deprecates 2 clear duplicated errors:

- EINA_ERROR_OUT_OF_MEMORY -> ENOMEM

- EINA_ERROR_TIMEOUT -> ETIMEDOUT

There are two details when using strerror():

 - old behavior did not return strings for non-error, such as
   "Success" or "Unknown error ${N}"

 - thread-safety issues: since we must be thread safe, then use
   strerror_r() and eina_stringshare_add() that value, keeping a hash
   of cached values
2016-08-18 13:36:05 -03:00
Jean-Philippe Andre cb24d5f489 eina: Set EINA_ERROR_TIMEOUT to cond_timedwait
This adds a new error code.

I'm using a weak symbol (were supported, ie GCC on linux) for
some kind of forward compatibility.

Fixes T1780

@feature
2016-08-16 16:14:21 +09:00
Jean-Philippe Andre 67ab4e3b4d eina: Move EWAPI and EAPI_WEAK to Eina.h from Eo.h
So it may be used outside EO (eina error is what I have in mind).
I believe it doesn't need to be redefined in all EFL libs, especially
since it's not used on Windows yet.
2016-08-16 16:14:21 +09:00
Carsten Haitzler 825e60e023 efl api release - fix @since in new eina iterator api 2016-08-12 18:04:54 +02:00
Stefan Schmidt d126107782 Revert "eina threadqueue - for paranoia lock+ulock+free in order locks taken"
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
2016-08-11 15:25:32 +02:00
Stefan Schmidt 72b88e51f4 eina: add includes for getpid() to work on MacOSX
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'
2016-08-08 16:49:55 +02:00
Stefan Schmidt a5fd63067d eina: safepointer: add since tags to new eina safepointer EAPI 2016-08-08 14:59:57 +02:00
Carsten Haitzler 933c0a6b04 eina_module - check result of module load from an array of modules
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
2016-08-08 18:38:25 +09:00
Carsten Haitzler 83752435cf eina log - handle possible overflow from high mem (last few bytes) or env
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
2016-08-06 15:53:18 +09:00
Carsten Haitzler 20c6bd296b eina log - keep coverity happy with potential ptr comparison overflow
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
2016-08-06 15:50:17 +09:00
Carsten Haitzler d19cd4e63c eina threadqueue - for paranoia lock+ulock+free in order locks taken
so mimic order of locks taken to be paranoid ... this wouldnt be a
deadlock issue but just to be safe instead of sorry.
2016-08-06 09:56:02 +09:00
Carsten Haitzler 26db5d5056 eina thread queue - ensure blocks cannot be freed until lock+unlock
just in case... check blocks cannot be freed until locked and unlocked
just in case someone still is holding a lock.
2016-08-05 23:52:20 +09:00
Carsten Haitzler 4a40ff95de eina lock semaphores - do not use shared semaphores and fix osx names
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
2016-08-05 18:11:42 +09:00
Carsten Haitzler 8fd224b4d6 eina thread queue/semaphores - check even more unlikely errors + complain
check some really unlikely alloc errors and semaphore deadlock errors
and report if that has happened. just in case.
2016-08-05 17:38:02 +09:00
Carsten Haitzler 07924f26f1 eina thread queue - check returns fo semaphore new/lock/release to debug
so openbsd may have issues with semaphores - maybe. this would catch
them if it it. why - if sem_init/sem_wait are different... i dont know.
2016-08-05 17:09:34 +09:00
Carsten Haitzler 6b6823e5af eina_threadqueue - fix const ptr warning on spinlocks if atomic disabled
atomics SHOULDNT be disabled anyway, but if they are... fix this
warning. (no real bug)
2016-08-05 13:42:50 +09:00
Cedric BAIL dd1d3f0d2d autotools: since it has been broken for some times and nobody noticed, let's remove per directory support. 2016-08-01 13:36:47 -07:00
Stefan Schmidt 3bd4c19f55 eina: promise: fix memory leak in error path
If we would not get a promise back here the allocated array would leak when we
return. Make sure we also free it in this case.

CID: 1360468
2016-07-29 14:53:36 +02:00
Chris Michael 89234ce6bc eina: Fix null pointer derefernce
Coverity reports that eina_safepointer_get returns a NULL promise here
(checked 20 out of 21 times). As eina_safepointer_get can return NULL,
we should check the validity of 'promise' here before trying to
derefernce it later.

Fixes Coverity CID1356625

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-07-21 13:07:26 -04:00
Carsten Haitzler ad1bfac960 eina rbtree iterator - fix leak found while debugging other problems
there was a leak of elements on  the itrator stack when the stack was
flushed still having some items on it, thus losing their pointers and
never freeing them.

@fix
2016-07-19 15:43:22 +09:00
Carsten Haitzler 4bbe5ee058 eina thread create - use pthread_sigmask as this can be called from thread
@fix
2016-07-14 08:39:31 +09:00
Jean-Philippe Andre 4d9de121d1 eina_safepointer: Fix coverity warning
I guess the overflow was badly handled. Fixing it by using
explicit int intermediate value.

Fixes CID 1356616 and 1356619:

Operands don't affect result
Logically dead code
2016-07-13 16:25:01 +09:00
Carsten Haitzler 25c63f726e eina thread - fix window build with sigprocmask
fixes T4048
2016-07-08 21:11:21 +09:00
Carsten Haitzler aeeda1f77d efl - threads and signals - make efl work on "insane" os's with signals
so. on linux signals are delivered to the main process thread/loop.
thats' where signal handlers are set up and always run. this is sane.
it's predicatble. but of course this is not the same in bsd land.
there "just send the signal to any old thread and call the signal
handler there" seems to tbe the order of the day. this explains why
wer are losing sigchld signals in edje_cc - it's heavily threaded and
bsd is just randombly picking a thread to call it on.

this fixes that. in theory. i hope. i can't test, but putting it in to
share

@fix
2016-07-04 23:47:25 +09:00
Jean Guyomarc'h e333175109 eina: fix typos in eina_rectangle doc 2016-06-26 18:48:15 +02:00
Jean Guyomarc'h 33bb4583b8 eina: fix compiling of safepointers on OSX
This is a reccurring compatibility issue...
MAP_ANONYMOUS is not defined on OSX, but MAP_ANON is.
I know MAP_ANON is marked as deprecated in the Linux man
pages, but it has the benefit of being more portable.
2016-06-15 22:33:39 +02:00
Carsten Haitzler fe9a9d8759 eina - alloca.h - include stdlib and stddef, usze size_t not long 2016-06-15 14:33:56 +09:00
Felipe Magno de Almeida f33b53e923 eina: Fix race wrong prototype for unref 2016-06-14 23:08:13 -03:00
Felipe Magno de Almeida 949af55947 eina: Add support for eina_safepointer in promises 2016-06-11 10:40:27 -03:00
Cedric BAIL 692b2c9fc9 eina: add generic infrastructure for a Eina_Safepointer
This is heavily inspired from Eo_Id infrastructure. Main change
are that the lower bit are always guaranteed to be zero and ignored
by all function. Also it may be a little bit less efficient in some
case, but we will tune it once we have real life usage of it.

Eo won't be migrated for 1.18 to it as Eo_Id is deeply integrated
and it is quite risky to touch it so close from a freeze. This can
wait.
2016-06-10 13:57:01 -07:00
Lauro Moura 2d2e57eccd eina: Smudge magic value on promise deletion 2016-06-09 22:39:25 -03:00
Lauro Moura 46843551c0 eina: Remove value type promises
All values in promises are now considered as by-pointer.
2016-06-09 22:38:54 -03:00
Lauro Moura 5a3331618e eolian: remove support for value-type promises 2016-06-09 19:14:18 -03:00
Lauro Moura 3b090b808b eina: Fixes on promises behavior when cancelling
- Free the cancel callbacks on promise delete
- Cancelling an ended promise should be a nop
- More tests to increase coverage
2016-06-09 19:14:14 -03:00
Jean Guyomarc'h dec1d251dc eina: ensure resource destruction on failure
In case of failure within eina_lock_new() (posix), a
pthread_mutexattr_t would have been left in an initialized state,
without any deinitialization being called.

Consequences would have been implementation defined.
2016-06-06 23:45:18 +02:00
Benjamin Jacobs 731e88061a eina_thread.c: fix include guard.
DragonFlyBSD has pthread_setname_np but no pthread_setaffinity_np;
we still need to include pthread_np though.

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-06-06 12:05:43 -07:00
Larry Jr 2e441c3f5e eina: eina_promise_all callback cast removed 2016-06-06 03:30:42 -03:00
Lauro Moura 47dea6abc1 eina: Avoid promise early deletion when cancelled.
Cancelling a promise will fulfill it but won't actually free the memory. This
memory is under custody of the owner, who must either call value_set or
error_set to finish it.
2016-06-06 03:09:40 -03:00
Lauro Moura b28f6f2fce eina: Fix promise tests and avoid early deletion
- Progress notify refcount fixes, avoiding early deletion
- Avoid leaking memory on tests
2016-06-05 21:58:19 -03:00
Tom Hacohen 4c3b7fb248 Eina promise: Fix broken return value.
I broke it in dc73f6644e.
Excuse of the day: I'm not working from my usual spot and there's screen glare
here that made me not see the *. Good excuse?
2016-06-05 11:00:55 +01:00
Tom Hacohen dc73f6644e Eina promise: Simplify code and remove shadow variable.
There was no need for the extra variable. This also fixes a shadow
warning.
2016-06-05 10:57:07 +01:00
Felipe Magno de Almeida 1c269cf24a eina: Fix magic check for eina_promise_owner_buffer_get 2016-06-03 21:53:29 -03:00
Felipe Magno de Almeida 2e4765bc88 eina: Fix EINA_MAGIC and eina_promise_then NULL check 2016-06-03 21:43:57 -03:00
Cedric BAIL af2b0c8629 eina: protect promise death during callbacks cancel. 2016-06-03 17:00:12 -07:00
Felipe Magno de Almeida cd91b02dd1 eina: Add NULL checks and EINA_MAGIC checks to promises
Add NULL checks and EINA_MAGIC checks that avoid crashing when it
shouldn't.
2016-06-03 20:02:02 -03:00
Felipe Magno de Almeida e79eb53e8d eina: Remove Eina_Promise* parameter in promise callback
Remove not very useful parameter to eina_promise_then callbacks.
2016-06-03 18:15:57 -03:00
Felipe Magno de Almeida 8fec0d5139 eina: Remove unnecessary indirection to promises
Now when dealing with pointer types, we will not get pointer to
pointer semantics in callbacks and eina_promise_owner_value_set
for Eina_Promise.

It will work as expected:

Eina_Promise_Owner* promise = eina_promise_add();

void* p = malloc(sizeof(T));
eina_promise_owner_value_set(promise, p, &free);
2016-06-03 17:22:12 -03:00
Larry Jr 507bbdb054 Eina: Fix eina_promise_all refcount ordering problem
The call to eina_promise_then steals the first ref'count, so it is
possible that the promise is freed after the eina_promise_then,
so we need to eina_promise_ref before eina_promise_then.
2016-06-03 11:19:52 -03:00
Cedric BAIL 9bcad265a7 eina: don't access dead promise.
We do properly unref promise while calling all the then callback. There
is no need to check it a second time (which actually lead to a 100%
bad access).

T3759
2016-05-31 14:59:26 -07:00
Jean Guyomarc'h 092ce1f83b eina: fix warning when clockid is not defined
Unused parameter was unused...
2016-05-28 21:49:33 +02:00
Jean Guyomarc'h 9ee8ea196b eina: make eina backtrace portable
Backtrace relied on non-portable code.
Platform-specific code is now enclosed
within macros defined at configuration-time.
2016-05-28 19:18:46 +02:00
Felipe Magno de Almeida b0b8109cd5 eina: Make cancelled promises use EINA_ERROR_PROMISE_CANCELLED error code 2016-05-26 13:35:07 -03:00
Felipe Magno de Almeida b7cdcff56a eina: Use pointer directly instead of by unnecessary indirection 2016-05-26 13:35:07 -03:00
Felipe Magno de Almeida 2457d6f595 eina: Fix crashing when accessing past-the-end of the malloc'ed promise
The promise race composition was calculating its size wrongly, making
the promise's size smaller than it should, causing heap corruption.
2016-05-26 13:35:07 -03:00
Felipe Magno de Almeida 3ffe38b0c3 eina: Fix then callbacks prototypes
Eina_Error is not passed by pointer anymore, which could cause invalid
pointer access in promise compositions (all and race).

Also added Eina_Promise* to prototypes.
2016-05-26 13:35:07 -03:00
Felipe Magno de Almeida a7e5487439 eina: Add missing buffer_get function in Eina_Promise
Function buffer_get was available only in Eina_Promise_Owner, despite
being defined in both classes.
2016-05-26 13:35:07 -03:00
Carsten Haitzler 7ee4eba33f efl - new cmp "fix" code - remove one duplicated cmp 2016-05-26 12:49:58 +09:00
Carsten Haitzler 41842ca9f9 efl - fix many bounds over/underflow where we use int for ptr cmp
this addresses more things brought up in comments in

fixes T3638 commentd

@fix
2016-05-26 12:17:07 +09:00
Felipe Magno de Almeida de9be13d45 eina: Add promise parameter to then calllbacks
Added promise parameter to then callbacks so callbacks can steal
ownership of the value from the promise.
2016-05-25 21:32:03 -03:00
Carsten Haitzler 636c8b48c7 eina hash - fix stringshare key comparison function
this fixes T3638

@fix

a note... thanks so much to aerodynamik for spotting this. i'm rather
surprised coverity didn't spot this... unless someone said to "shut up
coverity you're wrong" and they should not have.

i also might have expected compilers to spot this too... and add a
warning.

anyway ... this was a seriously subtle bug that could have caused all
kinds of havoc in efl.  keys that are different may be compared to be
the same. it could get ordering wrong and sorting thus maybe insert
keys that cannot be found anymore and oh so much more besides.
2016-05-26 09:28:23 +09:00
Carsten Haitzler 2c07846b7d eina vector - fix indenting and 80 col overflow in inline header 2016-05-21 23:37:07 +09:00
Carsten Haitzler 668e6091fb eina vector inline header - replace last equal with approx macro
rthis replaces double a == double b with a macro that keeps a close
enough range using epsilon (which is the error range for a dobule).

this fixes T3245
2016-05-21 23:36:38 +09:00
Carsten Haitzler f40a452ee1 fix warnings about double/float comparisons in eina vector
this should fix T3245

this is basicall where we go double a == double b and due to precision
issues this may not always be right, but this means that the
equivalent now checks for "really close values" rather than perfectly
exact.

@fix
2016-05-20 21:46:50 +09:00
Jean Guyomarc'h 147ef32b2b efl: fix misleading indentation
GCC's -Wmisleading-indentation is complaining...
It is a warning flag introduced in GCC 6.x, and
is enabled by -Wall.
2016-05-18 21:57:02 +02:00
Jean Guyomarc'h 64ce45b9b4 eina: add missing header guards 2016-05-18 21:56:58 +02:00
Cedric BAIL 0c4880e99d efl: everyone should now rely on Eina MIN/MAX redefinition. 2016-05-09 16:58:53 -07:00
Cedric BAIL d00643fcc4 eina: add MIN/MAX redefine as we use it everywhere.
This is done on an attempt to permanently fix our Windows port. Windows
doesn't have MIN/MAX, so we should always do a ifndef/define in every
piece of code that use it. Of course we always forget and it take times
to notice and fix. We have over the year added it in many private
headers, but as the issue continue to raise again and again, I prefer
to get this fixed in our main header.
2016-05-09 16:58:53 -07:00
Felipe Magno de Almeida 1c5ce16565 eina: Add eina_promise_race composition function
Added eina_promise_race function that composes multiple
promise objects into a new promise which is fulfilled
when one of the promises are fulfilled, or fails
when one of the promises have failed.
2016-05-09 19:10:26 -03:00
Felipe Magno de Almeida 6d43adaaf4 eina: Fix memory leaks in promise 2016-05-07 13:55:18 -03:00
Jean Guyomarc'h ccbe4579a3 eina: fix typos in tmpstr doc 2016-05-06 22:18:57 +02:00
Felipe Magno de Almeida 236c13df34 eina: Add progress notify callback feature for Promise Owners
Add a way for users of the promise owner to get notified when a
promise progress is registered. Also added a convenience composition
function that creates a promise which is fulfilled when another
promise has a progress notification.
2016-05-06 12:41:42 -03:00
Cedric BAIL 588b133c19 eina: make eina rectangle an allocated thread safe structure to use.
This is a better fix than D3913.
2016-04-25 12:48:08 -07:00
Cedric Bail b4456121be eina: implement a memory cache for Eina_Rbtree_Iterator.
So it seems we are using Eina_Hash_Iterator quite a lot more than before.
This lead to a huge amount of alloc/free of Eina_Rbtree_Iterator that
was noticable in Enlightenment callgrind trace. This patch make it vanish
from the trace :-)
2016-04-22 10:58:25 -07:00
Cedric BAIL 41f68ac0d3 eina: make it possible to build the library alone. 2016-04-14 15:52:50 -07:00
Felipe Magno de Almeida 35dd5b5cab eina: Fix promise error with eina_promise_all
Fix value_set and error_set signatures which were receiving a
owner. They actually receive the promise and not the owner, this
caused wrong access to memory and were not visible by warnings because
the functions are casted.

This problem caused errors in which it seemed that promise had
actually error'ed when questioned it.
2016-04-13 14:44:19 -03:00
Felipe Magno de Almeida 62841aee3c eolian: Make promise eolian generation use macros for hooks
Modify the way hooks are defined and used by promise generation in
Eolian in the Eo API.

Instead of passing macro names as parameters to EO_FUNC_BODY macros,
just re-define the actual hooks when it is needed.
2016-04-11 01:28:50 -03:00
Carsten Haitzler 0e5fee0041 eina tmp get - support other tmp dir env vars and dont use xdg runtime
xdg runtime dir is NOT a tmp dir in the normal sense. it's not world
writable nor world readable. only for the user.  using
eina_environment_tmp_get() would imply that it is a regular tmp dir,
not a per-user private only runtime dir. that is something else
entirely.

@fix
2016-04-08 11:03:44 +09:00
Felipe Magno de Almeida dc954d8dba eolian: add Eolian support for Eina Promises
Add a promise object to allows Eolian interface to include promises
as a way to have asynchronous value return and composibility.

The usage is like this in a .eo file:

class Foo {
   methods {
      bar {
         params {
            @inout promise: Promise<int>;
         }
      }
   }
}

Which will create the following API interface:

void foo_bar(Eo* obj, Eina_Promise** promise);

and a Eina_Promise_Owner for the implementation, like this:

void _foo_bar(Eo* obj, Private_Data* pdata, Eina_Promise_Owner* promise);

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
2016-04-06 14:34:15 -07:00
Felipe Magno de Almeida 09eea7bc01 eina: add promise
Add a promise object that will allows Eolian interface to include promises
as a way to have asynchronous value return and composibility.

To understand better, let see the coming usage in a .eo file:

class Foo {
   methods {
      bar {
         params {
            @inout promise: Promise<int>;
         }
      }
   }
}

Which will create the following API interface:

void foo_bar(Eo* obj, Eina_Promise** promise);

and the equivalent declaration for implementation.

However, the API function will instantiate the Promise for the user
and the implementer of the class automatically. So the user of this
function will treat it as a @out parameter, while the developer of the
function will treat it like a @inout parameter.

So, the user will use this function like this:

Eina_Promise* promise; // No need to instantiate
foo_bar(obj, &promise);
eina_promise_then(promise, callback);

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
2016-04-05 11:35:12 -07:00
Boris Faure 214883f099 eina_file: move doc block about eina_file_path_join from inline to file.h 2016-03-19 15:57:46 +01:00
Oleksandr Shcherbina 48f75713e5 eina: fix eina vector in case output vector the same as target vector
Summary:
Use aditional temporary vector for intermedia results in case output vector
the same as target vector in functions:
eina_vector2_transform,
eina_vector2_homogeneous_direction_transform,
eina_vector3_cross_product,
eina_vector3_transform,
eina_vector3_homogeneous_direction_transform
It was in original version (in evas_vecN, module evas_3d_utils.h)
Enrich test suit for this case.

Reviewers: jpeg, cedric

Reviewed By: cedric

Differential Revision: https://phab.enlightenment.org/D3795

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
2016-03-15 11:20:55 -07:00
Jean Guyomarc'h 20df2a5d60 eina: mix possibly misleading indentation 2016-03-12 22:57:21 +01:00
Jean Guyomarc'h 8034a96108 eina: remove un-necessary tests before freeing memory
free() is specified to do nothing at all when taking NULL as input.
2016-03-12 22:57:21 +01:00
Stefan Schmidt 96bb964dd5 Revert "eina: split Makefile with files/headers in preparation for additional per sub directory compilation"
This reverts commit 7f4ea1a79c.

This reverts one of three parts of the try to get sub directory
compilation back into eina. It breaks our distcheck though and I
talked to Cedric about it and he prefers to revert these as we might
need to go another route to bring this functionality back. Details
will come to the mailing list.
2016-03-08 00:18:08 +01:00
Stefan Schmidt bb0d161d8f Revert "eina: reintroduce additional support for eina sub directory compilation."
This reverts commit 1affc60d00.

This reverts one of three parts of the try to get sub directory
compilation back into eina. It breaks our distcheck though and I
talked to Cedric about it and he prefers to revert these as we might
need to go another route to bring this functionality back. Details
will come to the mailing list.
2016-03-08 00:18:08 +01:00
Stefan Schmidt c55625aec4 Revert "eina: rely on GNU make to find file at their correct location."
This reverts commit e26fcbb1dc.

This reverts one of three parts of the try to get sub directory
compilation back into eina. It breaks our distcheck though and I
talked to Cedric about it and he prefers to revert these as we might
need to go another route to bring this functionality back. Details
will come to the mailing list.
2016-03-08 00:18:08 +01:00
Felipe Magno de Almeida d723990955 eina: Add Eina_Iterator implementation for C-array
This iterator is convenient when you already have a C-Array and you
need to pass this array to a function receiving an Eina_Iterator.

int array[] = {1, 2, 3, 4};
int* array2[] = {&array[0], &array[1], &array[2], &array[3], NULL};

Eina_Iterator* iterator = eina_carray_iterator_new((void**)array);
2016-03-06 17:24:34 -03:00
Jean Guyomarc'h 793e4e0b5a eina: fix typos in doxygen 2016-03-06 12:35:13 +01:00
Cedric Bail e26fcbb1dc eina: rely on GNU make to find file at their correct location. 2016-03-03 21:10:00 -08:00
Cedric Bail 1affc60d00 eina: reintroduce additional support for eina sub directory compilation.
This is still experimental and quite hacky. Let me know if you face issue.
It should just work with make -C src/lib/eina normally...
2016-03-03 15:10:59 -08:00
Cedric Bail 7f4ea1a79c eina: split Makefile with files/headers in preparation for additional per sub directory compilation 2016-03-03 15:10:59 -08:00
Carsten Haitzler 7920e66f29 efl - fix threadqueue spinlock destruction on openbsd - doesn't like it
so the spinlock on the threadqueue block pool it taken on shutdownn,
while the block pool is freed up then its is destroyed, but openbsd
very much doesnt like this and returns an error, so release the lock
before destroying it.

@fix
2016-03-02 10:33:40 +09:00
Jean-Philippe Andre a4270b25a3 eina log: print formatted string when log domain is invalid
Before this patch, eina_log would simply record a non-formatted
entry like:
  unknown domain -1, original message format 'proxy=%p, obj=%p'

This was not very useful as even if the log domain is invalid, the
message itself might be relevant (often those are ERR logs).

Now the message format is roughly the same as the default format,
except that the line info comes from the original message (and
doesn't refer to eina_log.c).

Backtrace printing will happen at the same level as the original
log level, in order to avoid log pollution in case DBG logs are
printed with an invalid domain (and CRI would trigger bt).

I actually wonder if the logs shouldn't actually be forwarded
to the standard log callback instead of just stderr. This may
be useful for logging with dlog or journald (atm we will simply
lose all logs without a valid domain). This would mean eina_log
itself requires a log domain.
2016-02-17 16:12:35 +09:00
se.osadchy a1584c8a5d evas: Update eina_vector, add new function.
Summary: Add direction transform for eina_vector3.

Reviewers: cedric, Hermet, jpeg

Reviewed By: jpeg

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D3692
2016-02-17 16:12:35 +09:00
Jean-Philippe Andre 32fedb1e6d eina: eina_array_free() now silently ignores NULL
This is a follow-up patch after 56a4535ada.
Also, remove now invalid documentation.
2016-02-17 13:40:43 +09:00
Mike Blumenkrantz 56a4535ada eina: accept NULL in eina_array_free() without erroring
@fix
2016-02-13 11:26:03 -05:00
Mike Blumenkrantz 6a93062b25 eina: invalidate last add/del rects when the opposite operation occurs
applying this optimization to prevent the same rectangle from being added
or removed repeatedly in succession would result in the rejecting of successive
operations of the same type when the other operation occurred in between.

as an example:

add(0, 0, 100, 100)
del(0, 0, 100, 100)
add(0, 0, 100, 100)

should yield (0, 0, 100, 100), not zero rects and a failure to add the
second rect

this fixes a serious issue in enlightenment where stacking three windows
on top of each other with the first and third windows having the same geometry
would result in the top window receiving no input geometry (oops)

@fix
2016-02-05 14:35:28 -05:00
se.osadchy b216d15fe7 eina: add eina_vector3 as static inline.
Summary: Move evas_vec3 to eina_vector3 and add documentation.

Reviewers: stefan_schmidt, jpeg, cedric

Reviewed By: cedric

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D3569

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-02-05 08:07:45 +01:00
Vincent Torri cedeb0c455 Eina_Value: do not mix declarations and code
Reviewers: cedric, jpeg

Reviewed By: jpeg

Differential Revision: https://phab.enlightenment.org/D3624
2016-02-01 12:34:48 +01:00
Jean Guyomarc'h 40f162fbc5 eina: fix invalid prototype
The prototype means "unspecified arguments". However, the implementation
specifies no parameters (void).
GCC's warning -Wstrict-prototypes complains a lots about this old-style
prototype, spamming the console when compiling more than one compiling
units including Eina.

@fix
2016-01-29 10:16:31 +01:00
Jean-Philippe Andre e472f97d96 Eina: Fix eina_file_mk[ds]temp when a path is passed
If the template is a path, mkstemp and mkdtemp would fail
miserably as they would try to create a file inside
/run/user/1000//path/to/file.XXXXXX even if the path did not
exist.

This patch fixes that by creating temp files inside the sys temp
dir iif the templatename is just a basic name without path
separator.

@fix
2016-01-19 18:18:29 +09:00
Oleksandr Shcherbina 93df8720f9 eina: Fix possible wrong value due to null in determinant of matrix
Reviewers: cedric, Hermet

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D3563
2016-01-13 14:04:35 +01:00
Stefan Schmidt 117ccbd98c eina_inline_value: use void to force empty function parameters
We have to use void in a function declaration if we want no function
parameters. Using just empty parenthesis means the function takes an
unspecified number of parameters.
2016-01-11 22:55:34 +01:00
Cedric BAIL bb921aff04 emile: move all eina_str_base64 to emile_base64. 2016-01-07 16:27:57 -08:00
Jean-Philippe Andre d488926cb6 Eina: Move vector2 to eina_inline_vector.x
For consistency.

Also, include inside Eina.h
Thanks @vtorri for the remark.
2016-01-07 19:18:35 +09:00
Jean-Philippe Andre dd05e72ab0 Eina Vector2: Move EAPI to static inline
This removes lots of unnecessary symbols
2016-01-07 18:05:44 +09:00
Srivardhan Hebbar 9de3520c87 eina: Updated documentation of strbuf_substr_get.
Summary:
Fixes T2949.
In the bug, its been mentioned about updating the documentation, so added this.

Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>

Reviewers: cedric, jpeg

Reviewed By: jpeg

Maniphest Tasks: T2949

Differential Revision: https://phab.enlightenment.org/D3462
2016-01-07 15:37:30 +09:00
Stefan Schmidt 92bab5115a eina_value: correct the since tag for new symbols
Thiese symbols are only available since after 1.16, thus the since 1.17 tag.
2016-01-06 16:21:52 +01:00
Stefan Schmidt 30a98b7bcd eina_strbuf: add missing since tag to new symbols 2016-01-06 15:55:32 +01:00
Stefan Schmidt aba7512154 eina_bezier: correct since version for two new APIs.
These are only available from 1.17 and not already from 1.16.
2016-01-06 15:31:48 +01:00
Cedric BAIL 116fe3c65c ector: initial implementation of our own Ector GL backend. 2016-01-05 15:43:44 +09:00
Srivardhan Hebbar 7ded7cb707 eina: update .h file to make decodeurl api visible.
Summary: Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>

Reviewers: jpeg, cedric

Reviewed By: cedric

Differential Revision: https://phab.enlightenment.org/D3521

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-01-04 15:42:59 -08:00
Cedric BAIL 5aa6a73b34 eina: return NULL iterator in all case, not only when safety check is turned on. 2016-01-04 15:13:06 -08:00
se.osadchy 2127547cb9 evas: create Eina_Vector2 structure and add functions.
Summary: Only copy code from evas_3d_utils, rename evas to eina and add documentation.

Reviewers: Hermet, raster, jpeg, cedric

Reviewed By: jpeg, cedric

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D3509

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-01-04 15:06:00 -08:00
Vincent Torri 47ed848a87 Evil: integrate the dlfcn code into Evil
This will remove some incompatibilities with other packages,
especially for win-builds
2015-12-29 22:13:58 +09:00
Jean-Philippe Andre cda8ccf770 Eina: Fix potential crash in eina_convert_dtoa
Infinity and NaN should probably just not be converted.

An error would happen in make check while saving evas 3d models.
2015-12-29 16:18:53 +09:00
Srivardhan Hebbar 1243b24f9b eina: API for base64url decode.
Summary:
eina_base64url_decode API.

Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>

Reviewers: jpeg, cedric

Differential Revision: https://phab.enlightenment.org/D3434
2015-12-16 16:15:44 +09:00
Jean-Philippe Andre 7fd907a132 Eina safety: Set error flag in case of safety check error
Eina_Error is almost not used at all. Meh.
2015-12-15 17:43:39 +09:00
Jean-Philippe Andre 5ad9654fbc Eina safety: Add internal function to log errors
The main reason is convenience for debugging when using GDB,
this will give a simple breakpoint for all safety check failures.

Also, this creates a more visible log domain (red).
2015-12-15 17:32:50 +09:00
Jean-Philippe Andre 1f75cfc3cf Eina log: Disable backtrace by default for dev builds
The EINA_LOG_BACKTRACE thing is aimed at production environments,
so we can extract a backtrace from a log file post-mortem, but not
for continuous development of EFL itself.

I know this should make a few people happy.
2015-12-15 16:01:51 +09:00
Jean-Philippe Andre 6bc24b4794 Eina log: Fix meaning of EINA_LOG_BACKTRACE env
Most eina log env vars mean "if loglevel <= val then print log"
but eina_log_backtrace was "if loglevel < val" which I thought
was a bit confusing. The default behaviour is unchanged.
2015-12-15 15:25:55 +09:00
Jean-Philippe Andre 2960b70340 Eina Xml: Fix clang warnings 2015-12-15 14:35:46 +09:00
Jean-Philippe Andre 9e68f0524b Eina value: Fix clang warnings (use NULL instead of bool) 2015-12-15 14:12:21 +09:00
Felipe Magno de Almeida 5d4038d74d eina: add EINA_VALUE_TYPE_OPTIONAL, a single-element container that can be empty.
Eina Value Optional can be used to create a eina value that can be set
or be empty and can be embedded in a eina_value_struct.

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-12-10 11:10:46 -08:00
Conrad Meyer 76f9739f21 eina_inline_lock_posix: Be far more careful with pthread function error returns
Summary:
Related to T2287.

Log lock errors (printf to avoid eina_log locks) and continue or abort,
conditional on EINA_HAVE_DEBUG_THREADS.

Reviewers: raster, cedric

Subscribers: stefan_schmidt, cedric, seoz

Differential Revision: https://phab.enlightenment.org/D2376

Note - fixed review comments on macro names and some formatting and
error strings too - raster.
2015-12-10 20:07:59 +09:00
Stefan Schmidt 94978a3567 eina_quaternion: fix ein matrix type comparison
Fixing a bug that I fixed before. Sadly got introduced again. See
a486671bce for the details.

CID: 1341769
2015-12-09 01:22:38 +01:00
Srivardhan Hebbar 326d0e548d eina: Adding API for base64 url encoding.
Summary:
I have put the common encoding code in the common function. The 2 API's
call them with a flag. Thinking of doing the same way to decode
function also.
T2880

Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>

Reviewers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D3414
2015-12-08 20:50:40 +09:00
se.osadchy 785f4c1a5e evas: fix mistake in descriptions of matrix
Summary: Wrong word in documentation eina_matrix.h.

Reviewers: Hermet, raster, jpeg, cedric

Reviewed By: jpeg, cedric

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D3406

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-12-07 16:51:58 -08:00
se.osadchy 82504d9d77 evas: recognize duplicated data structure with eina_quternion and ector.
Summary:
Move data structure and functionality to eina_quaternion from evas_vec4.

Reviewers: raster, Hermet, cedric

Subscribers: jpeg, Oleksander

Differential Revision: https://phab.enlightenment.org/D3327

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-12-07 16:36:16 -08:00
Srivardhan Hebbar 7d84c19bec eina: Adding API for base64 decode.
Summary:
Added eina_str_base64_decode API.

Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>

Reviewers: cedric, jpeg

Reviewed By: jpeg

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D3381

@feature
2015-12-07 19:29:36 +09:00
Vincent Torri 3b44645363 efl: add binary mode to f(re)open() calls
This allows better compatibility with Windows

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-12-05 21:04:36 +01:00
se.osadchy ce4146ec63 evas: fix bug with logic with eina_matrix in evas_3d_utils
Summary: Also need to fix logically dead code in coverity.

Reviewers: raster, Hermet, cedric

Subscribers: jpeg

Maniphest Tasks: T2832

Differential Revision: https://phab.enlightenment.org/D3346

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-12-02 14:15:01 -08:00
Vincent Torri 9e5852fcfb eina: use eina_file_path_join() and eina_environment_tmp_get() when needed
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-12-01 12:13:12 -08:00
Subhransu Mohanty 8212f2aee3 eina: add new api eina_bezier_on_interval()
I couldn't come up with a better name, if anyone has a suggestion.

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-11-30 15:40:01 -08:00
Cedric BAIL 78eb21296c eina: fix bad use of calloc. 2015-11-30 14:10:35 -08:00
Jean Guyomarc'h b6a43da447 eina: fix missing header
This caused functions from eina_util to be undefined at compile time.
The compiler would make implicit casts of return values into ints,
which had major side effects (e.g. segfault edje_cc)

@fix

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-11-30 14:08:56 -08:00
Stefan Schmidt a486671bce eina_matrix: optimize multiply and inverse calls by actually using the shortcut
We had this nice shortcuts for multiply and inverse with the identity matrix.
Pity we never used it! The EINA_MATRIX_TYPE_IDENTITY is coming from an enum
without and direct assignments to its internals. Being the first item in the
enum it is most likely will be 0 which makes the whole bitwise AND zero and thus
the optimized path will never get called. If our compiler now decides hew wants
to handle enums differently and does not assign the 0 to the first item this
bitwise operation will be even more screwed. What we really want is to check is
if the type we get for the matrix matches EINA_MATRIX_TYPE_IDENTITY. So better
do this. Made me look into matrix multply and inverse. Fun!

Thanks to smatch for poiting this out.
2015-11-27 00:13:04 +01:00
Daniel Hirt 89ef4b70b8 Eina unicode: add eina_unicode_unicode_to_utf8_range
Required some special treatment to get words (substring) out of an
input Unicode string to a utf8 one. This saves the trouble converting
the whole string: you input an offset in the Eina_Unicode array, and
provide the required length. That's is, now you can extract words and
whatnot in utf8 form.

To save code I wrapped the original one to get the whole length.
2015-11-24 14:22:57 +02:00
Anand 120305b08e eina: Applied NULL check
Summary:
In _eina_list_setup_accounting function
{
...
...
if (!list->accounting)
     goto on_error;
...
...
on_error:
   _eina_list_mempool_list_free(list);
}

_eina_list_mempool_list_free function deference the "list->accounting"
variable which is already NULL.

Reviewers: JackDanielZ, jpeg

Reviewed By: jpeg

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D3376
2015-11-24 17:50:21 +09:00
Cedric BAIL 8616e22c7e eina: always terminate the string with a '\0'. 2015-11-23 11:57:04 -08:00
Subhransu Mohanty 07bb5483b4 eina: added bounds_get api to Eina_Bezier
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-11-22 23:28:09 +01:00
Stefan Schmidt 038c4fed6c eina_thread_queue: use Eina_Bool for one-bit bitfield
Make sure we are using a unsigned var here. Best go with a Eina_Bool directly.
2015-11-13 13:31:34 +01:00
Srivardhan Hebbar 95117bc515 eina: Added API to get substring from Eina_Strbuf.
Summary:
This API is analogous to c++ substr. It returns a Eina_Strbuf with
substring of passed buf.

Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>

Reviewers: cedric

Reviewed By: cedric

Differential Revision: https://phab.enlightenment.org/D3224
2015-11-10 15:04:17 -08:00
Jean-Philippe Andre d99ca361de Eina: Micro-optimize eina_main_loop_is
This is useful when Eo calls it to get the current frame stack.
This improves the performance of this function by ~50% which meant
from ~3% total CPU time to ~1.5% CPU time (if called at each eo_do).

Now this patch is a bit irrelevant since eo uses __thread instead.

This optimization is still useful for evas_eglGetCurrentXXX.
2015-11-10 16:12:21 +09:00
Carsten Haitzler 43ef6152ed efl - fix eina after misnaming of piblic api
this fixes 3d77f55f91 which added
eina_normal3_matrix_get in the headers as the api, but the actual func
was eina_normal_matrix3_get.
2015-11-10 11:56:01 +09:00
Cedric BAIL b9913d52e8 eina: fix wrong API since documentation. 2015-11-09 15:46:25 -08:00
Srivardhan Hebbar 4af4867748 eina: add an API for base64 encoding.
Summary: Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>

Reviewers: cedric

Differential Revision: https://phab.enlightenment.org/D3228

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-11-09 15:44:09 -08:00
se.osadchy 3d77f55f91 evas: refactor duplicated data structure with eina_matrix.
Summary: Move data structure and functionality to eina_matrix from evas_mat.

Reviewers: raster, Hermet, cedric

Subscribers: Oleksander, cedric

Differential Revision: https://phab.enlightenment.org/D3020

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-11-09 15:27:26 -08:00
Shilpa Singh 0c1bb7d7b3 eina: add API eina_strftime
Summary:
Add new API eina_strftime API in eina_str

@feature

Test Plan: test case and example also updated

Reviewers: tasn, cedric

Reviewed By: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3148

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-11-09 12:42:50 -08:00
Shilpa Singh 297ea39a5c eina: add eina_tmpstr_manage_new, eina_tmpstr_manage_new_length APIs
Summary:
Add eina_tmpstr_manage_new, eina_tmpstr_manage_new_length APIs, these APIs create new tmpstr but reuse the input string memory.

@feature

Test Plan: Test case and example updated

Reviewers: tasn, cedric

Reviewed By: cedric

Differential Revision: https://phab.enlightenment.org/D3178

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-11-09 10:42:35 -08:00
Cedric BAIL e45b801577 eina: fix computation of sqrt near 1.
This is still not so good below 1.

@fix
2015-11-09 10:42:35 -08:00
Srivardhan Hebbar a356c4e3e8 eina: add API for converting strbuf to lowercase.
Summary:
This API would be used in efl_network_websocket.

Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>

Reviewers: cedric

Differential Revision: https://phab.enlightenment.org/D3200

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-11-09 10:42:35 -08:00
Vincent Torri a1243410a7 eina/efreet: open file with binary file on Windows
@fix

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-11-06 10:53:29 -08:00
Vivek Ellur 0080ee0d60 eina_quaternion: correct the API name in header file
Summary:
This is not an ABI break as we never did provide the broken name symbol, just a typo
in the header that wasn't detected until now.

@fix

Signed-off-by: Vivek Ellur <vivek.ellur@samsung.com>

Reviewers: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3248

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-10-31 02:12:06 +01:00
Cedric BAIL a089818335 eina: correctly prepare path before sanitizing it. 2015-10-28 06:45:10 +01:00
Cedric BAIL 046d806388 Revert "Eina: Fix 58b194e0ad56fe83cce3946a5deb0045ee0cbce2"
This reverts commit 22b45f220c.

eina_file_cleanup always does an eina_tmpstr_del. This is now capable of doing
double or even triple free in some case.
2015-10-28 06:38:14 +01:00
Vincent Torri 22b45f220c Eina: Fix 58b194e0ad
Fixes the windows build as it has a matching implementation for eina_file_cleanup.

Fixes T2804
2015-10-28 03:34:10 +01:00
Cedric BAIL 58b194e0ad eina: make sure to cleanup the right string. 2015-10-23 12:32:02 -07:00
Vincent Torri d8008f4625 Eina: fix memory leak in eina_file_open()
@fix
2015-10-14 09:44:48 +01:00
Vincent Torri 8854b9f727 Eina: fix eina_file_current_directory_get()
the length was not correctly computed and eina_file_path_sanitize() was
was writing beyond the limit of the string

@fix
2015-10-14 09:44:48 +01:00
Vincent Torri cfe1817315 Eina: fix spelling in eina_tmpstr documentation 2015-10-14 09:44:48 +01:00
Amitesh Singh b8ab388710 eina: util - set tmp to NULL to fix compilation warning
lib/eina/eina_util.c: In function 'eina_environment_tmp_get':
lib/eina/eina_util.c:96:7: warning: 'tmp' may be used uninitialized in this function [-Wmaybe-uninitialized]
    if (!tmp) tmp = "/tmp";
       ^
2015-10-14 09:19:35 +05:30
Chris Michael 29e87eb667 eina: Include <unistd.h> for getuid and geteuid functions
Summary: If we do not include unistd.h, we end up with implicit
declaration warnings when compiling

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-10-13 15:17:51 -04:00
Vincent Torri 2aa2b63907 eina: fix potential security issue.
This also follow the behavior of eina_file_mkstemp.

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-10-12 17:21:59 -07:00
Carsten Haitzler 8dd44c13c8 eina evlog - use CORRECT clock (monotonic) not gettimeofday if possible 2015-10-13 08:38:42 +09:00
Stefan Schmidt e6bb379ceb eina_quaternion: add since information for new APIs 2015-10-06 13:16:18 +02:00
Stefan Schmidt 242a2b2bba eina_matrix: adjust since version for new APIs in 1.16 2015-10-06 13:12:47 +02:00
Carsten Haitzler dad345e574 Revert "eina: change default log level at which we display backtrace."
This reverts commit 05c18876b3.

i endabled backtraces by DEFAULT because it is otherwise pretty damned
hard to get them from things like enlightenment, or on tizen apps as
running them on the cmdline and having them work is close to
impossible. yes it's noise. FIX THE ERRORS then. this commit is just
like turning off gcc etc. warnings because the code is too noisy in
compilation with them on. it's a bug. fix it. the bt lets you do that
without gdb or re-executing AGAIN with an env var and HOPING to find
the bug the next time around.

not to mention efl programming docs cover this backtrace and say it
is on by default and how to get useful info out of this. this makes
the elf docs a lie by removing what is documented as default.

@fix
2015-10-04 17:59:47 +09:00
Tom Hacohen b33923ceed Revert "eina_tmpstr: add eina_tmpstr_strftime"
As agreed on the ML, eina_tmpstr_strftime() should be removed.

This reverts commit abaf29cb76.
2015-10-02 09:30:49 +01:00
Cedric BAIL 6102f93304 eina: fix misleading documentation regarding enum values. 2015-10-01 14:13:51 -07:00
Shilpa Singh abaf29cb76 eina_tmpstr: add eina_tmpstr_strftime
Summary:

@feature

Test Plan:
eina_tmpstr_strftime API can be used to create a temporary string
which is updated with strftime output

eina_tmpstr_steal can be used to get actual string set in eina_tmpstr

Reviewers: cedric

Subscribers: rajeshps, cedric, govi

Differential Revision: https://phab.enlightenment.org/D3048

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-09-21 23:48:22 +02:00
ChunEon Park db95ccf4ed eina: prevent compile warning.
Inline function sometimes causes app compile warnings
which applies strict compile option.
2015-09-21 13:52:57 +09:00
Daniel Kolesa 8f62e4f7ce eina_thread: non-linux fixes following latest changes 2015-09-11 13:50:03 +01:00
Carsten Haitzler 350698bada eina - thread naming - when naming thread, cut off at 15 chars
automatically cut off at 15 chars (and add 0 byte) to ensure we get a
name, but just truncate it if it is too long.
2015-09-10 15:15:01 +09:00
Carsten Haitzler 5625aac4d4 eina thread - add wrapper for setting thread name and fix affinity
added support to set thread names for debugging. this wraps the gnu
extension to set a thread name of up to 15 chars (16 inc nul byte).
eina_thread_name_set() is the new api.
@feature

in the process i found the autofoo wasnt enabling cpu affinity support
at all in reality, so i had to fix that at the same time.
2015-09-09 12:45:47 +09:00
Amitesh Singh eab2b5af84 eina: cpu - fix a typo in eina_cpu_count API doc 2015-08-29 08:01:10 +05:30
Subodh Kumar b35d2f9762 Eina rectangle: Check for valid rectangle before taking intersection
Summary:
Check for valid rectangle

If any dst or src rectangle has zero width or height,
intersection should not return true.

@fix

Test Plan: Added test cases

Reviewers: cedric, herdsman, Hermet

Reviewed By: Hermet

Subscribers: shilpasingh, cedric

Differential Revision: https://phab.enlightenment.org/D2990
2015-08-28 16:30:29 +09:00
Cedric BAIL b6d2dc2cdf eina: fix coverity issue CID 1317154. 2015-08-22 19:52:57 +02:00
Vincent Torri 743e6a1a24 eina: use new eina_file_path_join API
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-08-21 17:10:39 +02:00
Vincent Torri 33227fc15d eina: add API to join pahs, as well as path separators
eina_str_join() is used a lot to contatenate paths, but the
separator should be '\' on Windows. So add 2 API and 2 defines for
more cross platform code

@feature

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-08-21 17:10:29 +02:00
Cedric BAIL 8228145ca9 eina: add eina_matrix4_quaternion_get and eina_quaternion_matrix4_get.
Implementation taken from pseudo code at :
http://www.w3.org/TR/css3-transforms/#decomposing-a-3d-matrix
2015-08-21 16:40:31 +02:00
Cedric BAIL abfe65e05d eina: add eina_matrix4_multiply and eina_matrix4_identity function. 2015-08-21 16:40:31 +02:00
Cedric BAIL 26f33dc6bd eina: add eina_matrix4_transpose. 2015-08-21 16:40:31 +02:00
Cedric BAIL bb926e2dc7 eina: add eina_matrix4_inverse. 2015-08-21 16:40:31 +02:00
Cedric BAIL 694149c773 eina: add eina_matrix4_normalized. 2015-08-21 16:40:31 +02:00
Cedric BAIL 4f0f81bb30 eina: add eina_matrix4_determinant. 2015-08-21 16:40:31 +02:00
Cedric BAIL c82015d062 eina: our 3x3 matrix are 2D matrix, not 3D rotation matrix. 2015-08-21 16:40:31 +02:00
Carsten Haitzler e9c5f37ab4 efl debug infra - add more event types for ability to check extended inf 2015-08-17 19:37:06 +09:00
Carsten Haitzler 956182c7c5 efl debug - add the ability to begin/end states not just call ranges 2015-08-17 11:10:26 +09:00
Cedric BAIL 05c18876b3 eina: change default log level at which we display backtrace.
We mostly use in our code base ERR in conjunction with system related error. This
doesn't require any information from who did call that function to get debugged and
is creating way to much noise with little value.
2015-08-15 12:53:00 +02:00
Cedric BAIL 7ac5b36bc5 eina: forgot to fix @since for Eina_Bezier. 2015-08-07 14:41:56 +02:00
Subhransu Mohanty ddb8515930 eina: add Eina_Bezier infrastructure for manipulating cubic bezier curves. 2015-08-07 14:33:52 +02:00
Tom Hacohen bc8f38a93f Eina strbuf: Remove unused variable.
It's never used because it's the base type and the others override the
magic anyway.
2015-08-04 11:29:34 +01:00
Tom Hacohen 73af3470fd Eina quad: Remove unused function.
It may be useful for debugging, so you keeping it in source.
This silences a clang warning.
2015-08-04 11:19:50 +01:00
Cedric BAIL a07c526460 eina: add intermediate inline function for eina_crc.
This is necessary to make my life easier when adding assembling implementation
of eina_crc.
2015-08-03 11:51:22 +02:00
Daniel Kolesa 56a5ef9d86 eina str: remove useless and wrong ifdef for FreeBSD 2015-07-29 12:35:33 +01:00
Vivek Ellur f3768834c5 eina_quaternion: add forgotten implementation of converting eina_matrix3 to eina_quaternion
Summary:
Implemenation of eina_matrix3_quaternion_get function

Signed-off-by: Vivek Ellur <vivek.ellur@samsung.com>

Reviewers: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2786

This was a function I forgot to finish implement. Thanks Vivek to take care of it.
As it comes with a test case, is self contained and fix a missing bit of code I will
push it at this point in time of our release process. Sorry everyone for that late push.

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-07-28 03:05:37 +02:00
Stefan Schmidt c78b466139 eina: Add since 1.15 tag for environment*get API additions 2015-07-23 12:19:14 +02:00
Stefan Schmidt 770f93e7d8 eina: Add since 1.15 tag for quaternion API additions 2015-07-23 12:19:14 +02:00
Stefan Schmidt 45087f0699 eina_evlog: Remove trailing whitespaces while looking at this file. 2015-07-23 12:19:14 +02:00
Stefan Schmidt b4a85c72d8 eina: Add since 1.15 tag for evlog API additions 2015-07-23 12:19:13 +02:00
Stefan Schmidt 49f2428b2a eina: Add since 1.15 tag for crc API additions 2015-07-23 12:19:13 +02:00
Daniel Kolesa 6d9fd9b47e eina, ecore_imf: fix uninitialized field warnings 2015-07-23 10:02:25 +01:00
Vincent Torri ba278bb1f7 Eina: use Eina API in documentation 2015-07-22 09:22:02 +01:00
Jean-Philippe Andre c7e0c1b340 eina_module: Raise dlopen() error messages to WRN when file exists
Failing to load a module that does not exist is indeed not an error,
but failing to load a module that exists on disk happened probably
because of an error like "symbol not found".

Considering eina_module is most likely used by EFL itself, I believe
an internal linking failure is a warning worth reporting.
2015-07-16 19:50:38 +09:00
Mike Blumenkrantz 26b35222b4 eina: make re-setting the same tiler tile size a no-op 2015-07-08 12:33:23 -04:00
Vincent Torri ffb5a1f673 Eina: include string.h on Windows as memcpy is used (fixes warning) 2015-07-03 16:23:06 +01:00
Mike Blumenkrantz 46f546c43e eina: don't return NULL silently when creating new tilers 2015-07-02 14:18:21 -04:00
Carsten Haitzler 0f4d1d6186 eina module - it is not an error to ERR log to not load a .so
it is not an error. eina_module may be used on files that don't exist
and the caller may handle that as a "does not exist" error. it is not
good to go spewing out errors for this. it's debug at best.

@fix
2015-06-25 13:15:31 +09:00
ChunEon Park d72aa3fecb eina/simple_xml_parser: don't parse the <, > in the attribute string.
The tag identifier should not be inside of the string "~".
Previous logic doesn't care that scenario,
the parser context can be corrupted and it will be no more useful.

@fix
2015-06-18 19:51:06 +09:00
perepelits.m 9bf6f14a8a eina: add eina_quaternion_set
Reviewers: cedric, raster, Hermet

Subscribers: cedric, artem.popov

Differential Revision: https://phab.enlightenment.org/D2717

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-06-17 17:52:10 +02:00
Tom Hacohen f1519f3334 Eina debug: Fix shadow warning.
This is especially obviously wrong, beacuse the original parameter is not
even used.
2015-06-10 13:07:12 +01:00
Carsten Haitzler 0e8d1c8485 eina semaphore lock - don't wake up because of signals
@fix - this fixes eina sephamore lock/wait to not return just because
of a signal sent to the process - try again if the semaphore wait is
interrupted by a signal as opposed to a semaphore wakeup.
2015-06-09 19:39:01 +09:00
Cedric BAIL bc244e7a18 eina: fix copy and paster error detected by Coverity.
CID 1302701
2015-06-08 18:04:43 +02:00
Chris Michael 50c5ce0f9f eina: Fix warning about unused paramaters
@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-05 10:12:46 -04:00
Cedric BAIL 0acf23857f eina: beginning of a generic quaternion API. 2015-05-29 17:20:29 +02:00
Cedric BAIL c937aab8c0 eina: include dependency header cleanly. 2015-05-29 17:20:28 +02:00
Cedric BAIL 9a83100a4a eina: add the beginning of an Eina_Matrix4 API. 2015-05-29 17:20:28 +02:00
Mike Blumenkrantz e5eed1b7c3 eina: change module init error message to an info message
a module deciding to return false is a valid non-error case for many modules.
the module can print an error if an error occurs
2015-05-22 13:21:52 -04:00
Youngbok Shin b9cd26c906 eina: print error message when eina_module_load() fails.
Summary:
When dlopen() fails, eina_module_load() print error information using dlerror().
But, it is printed with WRN. If EINA_LOG_LEVEL is lower than WRN,
application developer is hard to see which has a problem.

Reviewers: woohyun, Hermet, raster, cedric

Reviewed By: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2536

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-19 14:17:00 +02:00
Vincent Torri a988a8fc99 eina: use less stack on Windows for eina_environment_home_get, and no snprintf()
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-18 10:36:58 +02:00
Carsten Haitzler 56ffe74896 eina_cpu - up max number of threads to 32
this should be better for todays systems - max number of cores we can
query for now is 32.

@feature
2015-05-15 19:07:42 +09:00
Carsten Haitzler beaa9b3864 eina - cpu count - fic cpu count to count # of cores correctly
@fix

this fixes the cpu count to count the numebr of available cores
correctly. before if core 0 happened to be off, we'd get 0 cpu cores
available due to the break
2015-05-15 19:05:33 +09:00
Carsten Haitzler df999265b0 eina - add comment on evlog api stability etc. 2015-05-15 11:32:04 +09:00
Cedric BAIL 01e5432657 eina: handle fallback to HOMEDIR/HOMEPATH on WIN32. 2015-05-14 20:14:56 +02:00
Vivek Ellur 756ed9ccba eina: fix eina_inarray_search to do linear search
Summary:
Currently eina_inarray_search was using binary search to search elements
which would not work on unsorted array so modified it to work as linear search.
There is already a function eina_inarray_search_sorted to work on sorted array.

Signed-off-by: Vivek Ellur <vivek.ellur@samsung.com>

Reviewers: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2501

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-14 19:37:08 +02:00
Cedric BAIL 130cdb9513 eina: use portable environment lookup. 2015-05-14 18:41:48 +02:00
Cedric BAIL 0ed04f7681 eina: fixup. 2015-05-14 18:41:48 +02:00
Vincent Torri dbc6cbb953 eina: add crosss platforme API to retrieve tmp and home directories from environment.
@feature

No tests added as it is highly dependent on the system and it would make little sens.

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-14 18:41:48 +02:00
Vincent Torri 3a6ccab3ad eina: fix warning on Windows.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-14 18:41:48 +02:00
Vincent Torri a75155d8ba eina, efl: add copyright notice.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-14 18:41:48 +02:00
Carsten Haitzler a5635d0c01 eina evlog - fix overflow tracking 2015-05-13 22:25:09 +09:00
Jean-Philippe Andre 22ef03cd53 Eina log: Fix previous commit (ERR & CRI -> bt)
This was a < comparison, not <=
I don't totally agree on taking the bts for each error... just try
to cat a binary file in terminology and have fun.
2015-05-12 19:37:25 +09:00
Jean-Philippe Andre 65b53f4a37 Eina log: Enable backtrace only for CRI and ERR by default
Using EINA_LOG_LEVEL=4 for standard debugging has now become
absolutely horrible (and slow!). Backtraces may make sense in
case of ERR and CRI messages, but are just pollution for other
levels.

WRN could be argued over but the old env variable is still there
so just use it if you want backtraces:

$ export EINA_LOG_BACKTRACE=2
2015-05-12 19:06:00 +09:00
Carsten Haitzler b309a3e0f1 eina debug monitor - dont shadow vars 2015-05-11 14:03:44 +09:00
Carsten Haitzler b444540fe6 eina debug monitor - add types.h include 2015-05-11 14:01:32 +09:00
Carsten Haitzler 71182a57a3 eina evlog - remove stolen count - unecessary 2015-05-10 22:27:37 +09:00
Carsten Haitzler 2aeb289063 eina - begin event log infra we can get from the new debug monitor
we can down dump event logs. some ecore mainloop bits are logging at
the moment.
2015-05-10 19:05:54 +09:00
Carsten Haitzler 0ba6ddc44a eina debug - add more comments to debugd connection 2015-05-08 17:23:38 +09:00
Carsten Haitzler 7571020eb8 eina debug - add comments 2015-05-08 17:18:38 +09:00
Stefan Schmidt 5c1157d4ec eina_ddebug: Fix build for the case without all requirements for eina_debug
In eina_debug.h we only include the eina headsers when all defines are true
for backtrace, dlopen, unwind, etc. We still use Eina_Bool here when these
cases are not met. I just hit this case and failed the build.
2015-05-08 10:01:42 +02:00
Carsten Haitzler af8c4eabca eina debug - clean up protocol handling inside eina 2015-05-08 16:58:18 +09:00
Carsten Haitzler 664708b817 eina - start a much improved eina dbug infra and have eina_log use it
this makes eina_log give bt's for all error logs. this is very useful
in finding just where a problem happens. the problem int he past is
that these have not been too useful due to backtrace_symbols() being
"useless". thus use the eina_btlog tool i added too.

also started infra for a debug monitor that can use the backtrace
infra to collect runtime stats ANY TIME for a process (don't need to
run under a debugger).

@feat
2015-05-08 14:13:17 +09:00
vivek 1fdc58a580 eina: add crc hash function to eina hash module.
Summary:
Added eina_hash_crc function in eina hash module to generate hash code
using crc-32.

Signed-off-by: vivek <vivek.ellur@samsung.com>

Reviewers: Sergeant_Whitespace, cedric

Subscribers: Sergeant_Whitespace, cedric

Differential Revision: https://phab.enlightenment.org/D2273

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-07 09:53:11 +02:00
Cedric BAIL 0dfb263a28 eina: remove the need to order the header correctly for Windows. 2015-05-07 09:53:10 +02:00
vivek a2f2d942c6 eina: add CRC implementation to Eina module.
Summary:
Added eina_crc function in eina to calculate crc for the key passed and
added eina_hash_crc function for hashing using crc

Signed-off-by: vivek <vivek.ellur@samsung.com>

Reviewers: Sergeant_Whitespace, cedric

Reviewed By: cedric

Subscribers: Sergeant_Whitespace, cedric

Differential Revision: https://phab.enlightenment.org/D2260

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-05-07 09:53:09 +02:00
Cedric BAIL 32d614639f eina: in fact this is gone and won't come back.
Eo and Efl.Model are here for that task.
2015-04-29 09:47:58 +02:00
Vincent Torri c086d505a9 Eina: fix eina_file_split on Windows and update unit test
@fix

Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
2015-04-29 15:27:47 +09:00
Jean Guyomarc'h 537f11278f eina: fix eina_stringshare format warning after commit 912924a
Summary:
Since the type of 'r' changed from unsigned short to unsigned int we
need to change its format as well.

Reviewers: stefan_schmidt, raster, cedric

Reviewed By: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2446

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-04-28 23:51:00 +02:00
Carsten Haitzler 912924a634 eina stringshare - make short internal string refs ints not shorts
this should fix T2088 - at the expense of more memory but a short was
just too little here.
2015-04-28 15:10:32 +09:00
Thiep Ha 5c997ea4a3 eina: correct document for eina_hash_list_prepend/remove.
Summary:
The eina_hash_list_preprend/remove API have wrong description.
This patch fixes it.

@fix

Reviewers: Hermet, cedric

Reviewed By: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2423

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-04-25 19:34:19 +02:00
ChunEon Park 023a91dc7d eina thread_queue: fix typo in doc. 2015-04-23 11:37:16 +09:00
ChunEon Park 0d1d62a6ab eina thread_queue: fix typo in doc. 2015-04-22 23:12:57 +09:00
Tom Hacohen 811058a1ff Eina safety: remove unused error string.
At the moment there are no errors possible for safety checks.
This may change in the future (unlikely), so we have the eina_error
already exposed for that. However, there's no need for the string.

One more down towards a warningless build.
2015-04-22 13:06:16 +01:00
Jean-Philippe Andre 12b562482e Eina: Fix clang warnings
Use fabs for double values
2015-04-21 20:11:01 +09:00
Jean-Philippe Andre a3897562c5 Eina: Fix clang warnings
Remove unused static function
2015-04-21 20:11:01 +09:00
Subhransu Mohanty ee99232b36 eina: updated matrix_translate, matrix_scale and matrix_rotate implementation to do compose of the matrix in not identity matrix.
This is a late change that has been discussing on the ML as we don't want to release an API, we can't make faster.

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-04-17 10:52:16 +02:00
Jihoon Kim 0d4f4721ea eina: fix typos in doxygen 2015-04-13 19:12:28 +09:00
woochan lee dbf56936dc Delete whitespaces for header and eo files
Summary: Fix whitespaces, indentation, wrap in eina headers.

Reviewers: cedric, jeffrey.w.grimshaw, Hermet

Reviewed By: Hermet

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2303

Conflicts:

	src/lib/eina/eina_thread_queue.h
2015-04-10 14:19:10 +09:00
Jean-Philippe Andre e2022f4157 eina: Add NULL check for eina_threadqueue_free
@fix
2015-04-10 11:34:50 +09:00
Carsten Haitzler 8c8bf357ba eian threadqueue - be clearer on the message struct/format limitations
this makes the send func docs also be clear on the
Eina_Thread_Queue_Msg limitations like the wait func
2015-04-09 17:21:25 +09:00
Stefan Schmidt c3ee9ff22b eina_matrix: Add since tags to all new functions in 1.14 2015-04-08 14:39:50 +02:00
Stefan Schmidt a12c53ba7a eina_quad: Add since tags for new eina_quad*()
This needs documentation for the new functions.
2015-04-08 14:39:49 +02:00
Jaeun Choi 15e11cb05f eina: eina_unicode_utf8_next_get should return 0
when one of the parameters is NULL to avoid null pointer access.
it also corresponds to the description in doc.

@fix
2015-04-08 21:29:13 +09:00
Stefan Schmidt adbe2e864b eina: Add since tag for new eina_simple_xml_attribute_w3c_parse() 2015-04-08 14:13:57 +02:00
Stefan Schmidt 8a764d8d9c eina: Add since tag for new eina_list_data_idx()
Also fix some whitespaces while being there.
2015-04-08 14:11:44 +02:00
Cedric BAIL 78bf41b223 eina: add eina_simple_xml_attribute_w3c_parse to parse attribute value. 2015-04-03 16:22:29 +02:00
Cedric BAIL 659d3c4fd7 eina: add eina_matrix.
This code come from Enesim and was done by Jorge. I did just take care
of changing the namespace and coding style.
2015-04-03 16:12:48 +02:00
Andy Williams 128a78940b eina: include blank lines in file iterator T2237
any line that would not have been included before has length == 0
2015-03-27 21:42:45 +00:00
Andy Williams a6290f8505 eina: Change newline parsing to handle crlf better
Adjust test to demonstrate failure, existing code only worked for
windows newlines on blank line.
@fix T2236
2015-03-27 09:56:22 +00:00
Michal Jagiello 6b88246808 eina: add eina_list_data_idx().
Summary:
Now the developer has to iterate the whole list to find the
index of the first occurence of the data.
I see that it is possible to get the index of the item for
the genlist widget, but for the eina_list not.

With these APIs it will be easier to implement *index_get
functions for the rest of widgets which contain items (Elm_List,
Elm_Ctxpopup etc.).

These functions returns the index of the given data or node in the eina_list.

Reviewers: Hermet, cedric

Subscribers: raster, cedric

Differential Revision: https://phab.enlightenment.org/D2189

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-03-25 19:40:41 +01:00
Jaeun Choi 3cd2801be7 eina: safety check for NULL pointer
data should not be NULL. it is used as the source of memcpy.

@fix
2015-03-19 16:15:20 +09:00
Cedric BAIL 9d29f80eb1 eina: provide a generic eina_binbuf_manage_new.
eina_binbuf_manage_new provide the functionnality of both eina_binbuf_manage_new_length
and eina_binbuf_manage_read_only_new_length. Those function get deprecated.
2015-03-17 09:58:20 +01:00
Mykyta Biliavskyi 37c58d4397 eina: extend eina_str_escape to escape more common case.
Summary: Added new symbols, that will be escaped. There are '\"', '\t' and '\n'.

Reviewers: raster, cedric

Reviewed By: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2130

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-03-13 09:33:28 +01:00
Michelle Legrand f6d870b4c1 eina: win32 release lock in case of error
Summary:
It's better to realese the lock before returning NULL. Otherwise the program
is waiting indefinitely then crashing on Windows ("program not responding").

@fix

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-03-12 07:43:58 +01:00
Michelle Legrand b36e2fc701 eina: add more access to created file.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-03-12 07:43:58 +01:00
Carsten Haitzler 009ec26460 eina + ecore - fix main loop thread id tracking on fork
if you fork and even if you do ecore_fork_reset() a thread calling
ecore_main_loop_thread_safe_call_async(0 for example eill end up
resetting the mainloop thread id to itself (a non mainlopo thread) via
calling eina_main_loop_is() since pid changed. there is little point
in doing this so remove the pid tracking from eina and ensure mainloop
thread id is updated in ecore's fork reset.

@fix
2015-02-26 19:47:51 +09:00
vivek 2ae90fd1ff eina_str: add null check condition in eina_memdup.
Summary:
Added null check in eina_memdup function in eina_str

Signed-off-by: vivek <vivek.ellur@samsung.com>

Reviewers: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1997

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-02-20 11:42:13 +01:00
Vincent Torri 06fe2fad0e eina: remove useless eina_inline_lock_win32.x file. 2015-02-13 11:05:27 +01:00
Guilherme Lepsch 7a302f12d9 eina: Fix MacOS X build with clang 3.6.
Summary:
printf contains and erroneous format specifier and cast
missing LIBTOOLFLAGS for cocoa

Reviewers: felipealmeida, larryolj, naguirre

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1912

Signed-off-by: Nicolas Aguirre <aguirre.nicolas@gmail.com>
2015-02-12 07:55:33 +01:00
Nicolas Aguirre 3b52489368 eina: fix directory listing on windows when directory is empty.
Using of INVALID_HANDLE_VALUE and ERROR_NO_MORE_FILES to handle this properlly.

@fix
2015-02-11 17:03:39 +01:00
michelle legrand 9579624765 eina: fix Eina_Log to only try to free non deleted log.
@fix
2015-02-11 17:03:37 +01:00
Adrien Nader f71a78edcb eina: correctly handle and report Eina_File error on Windows.
@fix
2015-02-11 16:38:15 +01:00
Adrien Nader 9d1504dba1 eina: remove Eina_Counter and use provided Windows posix compatible implementation. 2015-02-11 16:38:15 +01:00
Adrien Nader 2cb0c1cadc eina: remove Windows specific thread implementation and rely on posix compliant library instead. 2015-02-11 16:38:10 +01:00
Tom Hacohen b5011fa867 Eina tmpstr: Fix tmpstr_strlen.
Weird. This is the code I had, I don't know how it got lost.

Good job to Daniel Kolesa for spotting this.
2015-02-10 09:53:29 +00:00
Tom Hacohen 8fbee3fac0 Eina tmpstr: remove usage of tmpstr_strlen(). 2015-02-09 14:02:40 +00:00
Tom Hacohen fb8dfe98cd Eina tmpstr: fix race condition.
We take a lock, search the list, and the release the lock before we
finish using the values of the list. While unlikely, the string could be
deleted in the meanwhile.
2015-02-09 13:55:13 +00:00
Tom Hacohen f7a6880d5b Eina tmpstr: deprecate tmpstr_strlen and add tmpstr_len.
Confusingly enough, strlen was actually returning strlen + 1 for
strings. The new functions behaves as expected.
2015-02-09 13:55:13 +00:00
pierre lamot 6fd31ab552 eina: fix semaphore initialisation
This patch fix the semaphore initialisation on posix plateform

there was a preconditon test which returned the semaphore
uninitialised when count_init was 1, this caused the semaphore to
be unusable on OSX plateform. Furthermore, it seems that we need to
unlink the semaphore before its initialisation on OSX as there seems
to have some kind of persistence of the semaphore accross execution.

warning, this patch change the signification of the parametter
count_init on linux plateform, this parametter is now consistent on
every plateform, with the meaning of setting the initial count value
of the semaphore.

This used to be on linux 1 -> the semaphore is shared and initialised
at 1 and 0 -> the semaphore is not initialised, thus, by side effect
not shared and initialised at 0.

This patch set on linux plateform the semaphore as systematically
shared

@fix

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-02-05 16:38:06 +01:00
vivek e1eff60c80 eina: Eina_Value - use eina_mempool_free to cleanup the memory
Summary:
The new value is allocated using Eina_Mempool, it should be freed using
eina_mempool, not using libc free.

@fix

Signed-off-by: vivek <vivek.ellur@samsung.com>

Reviewers: cedric

Reviewed By: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1940

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-02-05 15:37:15 +01:00
Daniel Hirt 7143bd7fb5 eina: fix valgrind invalid read of size in eina_file_path_sanitize.
Summary:
Apparently eina_tmpstr_strlen counts the null character as well. This
doesn't follow how strlen works, as the latter excludes it from the count.
This resulted in mistreatment of the string in _eina_file_escape, with
tmp_str paths that had "../".

This fix will do for now, but it is advised that we avoid using
eina_tmpstr_strlen, to prevent such confusions in the future.

Test Plan:
The following lines will throw a valgrind 'invalid read of size 1' error
prior this fix:
  char *path = "home/mydir/../myfile";
  Eina_Tmpstr *tmp_str = eina_tmpstr_add(path);
  char *ret_path = eina_file_path_sanitize(path);

@fix

Reviewers: cedric, stefan_schmidt

Subscribers: tasn, cedric

Differential Revision: https://phab.enlightenment.org/D1929

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-02-04 14:08:36 +01:00
Daniel Hirt 7cbf22212f Revert "eina: eina_file - fix "invalid read of size 1" in valgrind"
This reverts commit f52f562891.

This is reverted because it breaks eina_file_path_sanitize when using
  "/../" in paths, for example:
eina_file_path_sanitize("/home/../mydir/myfile")
  returns: "/mydir/myfili"

What invalid read size does this fix? Why was no test case specified?
Anyway, this change affects too much code to leave it in like this.
2015-02-02 14:41:37 +02:00
Romain Perier f52f562891 eina: eina_file - fix "invalid read of size 1" in valgrind
@fix

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-01-30 10:49:58 +01:00
Nicolas Aguirre 0e671630f1 eina: use uintptr_t for Eina_Thread storage to be the same size for the different architectures.
This should not be an ABI regression on the platform where it work (Unix). It is on Windows,
but the API was unusable at all without this change, so this is a necessary breakage to
unbreak things.

@fix

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-01-30 10:49:55 +01:00
Carsten Haitzler 6bd34e2ae9 eina mmap safety handler - fix on systems without some sibgus types
this fixes 615456aae8 to compile on
systems without MCERR sigbus types.
2015-01-14 19:16:35 +09:00
Vasyl Vavrychuk b613404452 eina: fix eina_log with journald.
Summary:
Nothing was printed to journald before because sd_journal_send_with_location
expects file and line to be of the NAME=VALUE form.

Change-Id: I382b82b665558fddebae61b7d0a8d4de87638511
Signed-off-by: Vasyl Vavrychuk <vasyl.vavrychuk@globallogic.com>

Reviewers: kuri, cedric

Reviewed By: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1865

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-01-13 16:18:24 +01:00
Carsten Haitzler 615456aae8 eina - mmap safety handler - fix to only handle sigbus's from io
@fix

this fixes the eina mmap safety handler to only  handle what comes
from actual i/o errors (not actual corrupt/hw memory faults or invalid
objects), and if it's not a sigbus eina mmap should handle then pass
it onto the previous handler before eina mmap took over.
2015-01-13 19:30:11 +09:00
Cedric BAIL 9a74e6aec4 eina: all Eina_Stringshare printf variant now return empty string as expected.
Previously Eina_Stringshare printf variant where returning NULL with ("%s", ""). This
is highly disturbing as you would have gotten "(null)", if you asked for ("s", NULL).
To clarify and make things logical, we now return "".
2015-01-08 12:36:27 +01:00
Amitesh Singh 32d52ff563 eina: fix memory leaks in eina_stringshare_printf/vprintf functions.
Summary: @Fix

Test Plan:
  CK_FORK=no valgrind --leak-check=full {UNIT_TEST_PROGRAM} "String Share"

Reviewers: cedric, seoz, Hermet, raster

Subscribers: cedric, seoz

Differential Revision: https://phab.enlightenment.org/D1857
2015-01-08 19:48:01 +09:00
Srivardhan Hebbar 1d25d6da79 eina: fix memory leak issue in Eina_Value.
Summary:
eina_inarray_free was not called. So calling it to fix the memory leak.

@fix

Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>

Reviewers: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1808

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-12-25 21:37:05 +01:00
Srivardhan Hebbar 701f7b0737 eina: add an example to demonstrate different eina insert and sort functions.
Summary:
While going through eina for understanding, wrote  a program to understand
he differences between different eina inarray functions. Thought, this might
be useful for others too, so adding the same.

Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>

Reviewers: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1803

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-12-22 15:09:59 +01:00
Tom Hacohen 5c96fd457e Eina streq: remove redundant code in eina_streq. 2014-12-16 09:23:43 +00:00
Mike Blumenkrantz 10d8199b2f +eina_memdup
for those times when three lines of code should be one

@feature
2014-12-15 14:32:42 -05:00
Mike Blumenkrantz 5cda4c1eb5 eina_streq should immediately return true if both pointers are the same 2014-12-15 14:32:42 -05:00
kabeer khan 378157ba1e eina_thread: fix memory leak
Summary: Signed-off-by: kabeer khan <kabeer.khan@samsung.com>

Reviewers: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1737
2014-12-08 09:21:03 +01:00
Tae-Hwan Kim 3b9f8b2648 eina: enhance doxygen in eina_counter.h
Summary:
Add @details for detailed description
Add @note for noted description
Add [in] & [out] for parameters
Fix indentation & Fix typeof

Reviewers: raster, cedric

Reviewed By: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1651

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-11-14 07:05:17 +01:00
Jean Guyomarc'h 5c91d7aa10 eina: fix calloc() parameters order in eina_share.
Summary: The first parameter must be the count of elements to be allocated.

Reviewers: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1660

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-11-14 06:49:59 +01:00
Jean-Philippe ANDRE d0bae13693 Eina lock: try to fix compilation for OSX
This is a quick fix.

It looks like OSX doesn't provide the same infra as linux for
cond_timedwait, but instead they provide directly a
relative time wait function. Since I don't have any build / test
environment for OSX, this is as far as I can go.

Arguably, OSX libc seems to use gettimeofday() for cond_timedwait,
so this should close T1701.

See the pthread cond implementation:
http://www.opensource.apple.com/source/Libc/Libc-167/pthreads.subproj/pthread_cond.c
2014-11-02 15:14:36 +09:00
Tae-Hwan Kim 339ae93f82 eina: enhance doxygen in eina_magic.h
Summary:
Add @brief for brief description
Add @details for detailed description
Add @note for noted description
Add [in] & [out] for parameters
Add @see more
Add links for EINA_TRUE, EINA_FALSE, etc.
Fix indentation & Fix typeof
Use @p instead of @a for the consistency

Reviewers: raster, cedric

Reviewed By: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1620

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-10-31 09:28:07 +01:00
Tae-Hwan Kim 2dad982410 eina: group eina_sched
Summary:
Schedule group is made for eina_sched_xxx.
It is grouped into Tools group.
Futher description is needed later.

Reviewers: raster, cedric

Reviewed By: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1623

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-10-31 09:26:49 +01:00
Tae-Hwan Kim 980cd1ee57 eina: enhance doxgen for Eina_Trash
Summary:
Move doxygen comments from .x file to .h file

Basic rules are below:
Arrange grouping
Add @brief for brief description
Add @details for detailed description
Add @note for noted description
Add [in] & [out] for parameters
Add @see more
Add links for EINA_TRUE, EINA_FALSE, etc.
Fix indentation & Fix typeof
Use @p instead of @a for the consistency

Reviewers: raster, cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1624

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-10-31 09:25:51 +01:00
Tae-Hwan Kim ea9130c50b eina: enhance doxygen in eina_prefix.h
Summary:
Arrange grouping
 - Move Prefix group below Tools group
Add @brief for brief description
Add @details for detailed description
Add @note for noted description
Add [in] & [out] for parameters
Add @see more
Add links for EINA_TRUE, EINA_FALSE, etc.
Fix indentation & Fix typeof
Use @p instead of @a for the consistency

Reviewers: raster, cedric

Reviewed By: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1618

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-10-31 09:24:39 +01:00
Cedric BAIL 02bcdf056e eina: clear up eina_tmpstr length information
This @fix a potential wrong return value according to documentation and
improve consistency accross this API. This should fix T1775.
2014-10-31 02:40:08 +01:00
Jean-Philippe Andre 864394e793 Eina: Fix eina_condition_timedwait once again
Much confusion with this spaghetti code of #ifdefs and clocks.
So, we can't use CPU clocks for the timedwait, this doesn't make
sense (and it's explicit in the manpage, too).

But we can use CLOCK_MONOTONIC or CLOCK_MONOTONIC_RAW which are
much better than the wall clock (because of ntp updates, etc...)

The test case tests that the cond actually waited for as long as was
requested and for not too long either.

This is hopefully a final fix for T1701.
2014-10-30 20:21:41 +09:00
Jean-Philippe Andre 03cc403228 Eina file: Fix calls to getenv
There seems to be an intent to check that UID==EUID
before calling getenv to get the temp directory.
But that was lost in commits 61478af3a6 and
then in e105abc99e.
2014-10-30 18:23:49 +09:00
Tae-Hwan Kim 24ee38f3c1 eina: enhance doxygen in eina_file.h
Summary:
Arrange grouping
Add @brief for brief description
Add @details for detailed description
Add @note for noted description
Add [in] & [out] for parameters
Add @see more
Add links for EINA_TRUE, EINA_FALSE, etc.
Fix indentation & Fix typeof
Use @p instead of @a for the consistency

Reviewers: raster, cedric

Reviewed By: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1611

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-10-30 08:49:03 +01:00
Tae-Hwan Kim 4c9995f4ee eina: enhance doxygen in eina_mempool.h
Summary:
Arrange grouping
Add @brief for brief description
Add @details for detailed description
Add @note for noted description
Add [in] & [out] for parameters
Add @see more
Add links for EINA_TRUE, EINA_FALSE, etc.
Fix indentation & Fix typeof
Use @p instead of @a for the consistency

Reviewers: raster, cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1612

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-10-30 08:47:36 +01:00
Tae-Hwan Kim 9a1ccdcdeb eina: enhance doxygen in eina_lock.h
Summary:
Arrange grouping
Add @brief for brief description
Add @details for detailed description
Add @note for noted description
Add [in] & [out] for parameters
Add @see more
Add links for EINA_TRUE, EINA_FALSE, etc.
Fix indentation & Fix typeof

Reviewers: raster, cedric

Reviewed By: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1598

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-10-29 22:40:09 +01:00
Tae-Hwan Kim a14fc0cc9e eina: enhance doxygen in eina_clist.h
Summary:
Arrange grouping
Add @brief for brief description
Add @details for detailed description
Add @note for noted description
Add [in] & [out] for parameters
Fix indentation & Fix typeof

Reviewers: raster, cedric

Reviewed By: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1601

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-10-29 22:38:11 +01:00
artem.popov 1fb06dc09b eina_unicode: fix memory allocation
Summary:
there is wrong memory allocation, Eina_Unicode has 4 bytes, allocation
is like for char
@fix

Reviewers: Hermet, seoz, raster, cedric

Reviewed By: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1609

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-10-29 22:38:11 +01:00
Stefan Schmidt e105abc99e eina_file: Give TMPDIR presedence over XDG_RUNTIME_DIR when defined
XDG_RUNTIME_DIR gives us a nice securty benefit by only allowing the
same user to read wand write files.

In some configuration this is problematic though. If one looks at the
bug report this fixes  for example you can see that there are build
scripts that use a special build user.

The way this has always worked on unix is that you can define your
own tempdir with TMPDIR. When I was making the original change towards
XDG_RUNTIME_DIR I expected some trouble with it but it worked quite
well so far.

To avoid breaking scripts out there and maybe configurations we
haven't tested yet give TMPDIR precedence over XDG_RUNTIME_DIR.

Fixes T1766
2014-10-29 15:51:11 +01:00
Stefan Schmidt 0619c757ba eina: Fix _timedwait to handle the given timeout on top of the absolute time
The pthread man page clearly states that pthread_cond_timedwait() takes an
absolute time parameter. So far we always passed it epoch plus timeout in
seconds. This would never trigger the timeout.

Making sure we fill out timespec struct with the current time before adding
the timeout as offset now. Also handling the t < 0 error case.

Various version worked up together with Jean-Philippe Andre <jp.andre@samsung.com>

This version does not use _eina_time_get directly as this is currently not a
public API of eina. If we decide to make _eina_time_get public we can remove the
extra code here.

Fixes T1701
2014-10-29 15:35:30 +01:00
Tae-Hwan Kim 7da1647167 eina: enhance doxygen in eina_error.h
Summary:
Arrange grouping
Add @brief for brief description
Add @details for detailed description
Add @note for noted description
Add [in] & [out] for parameters
Fix indentation & Fix typeof

Reviewers: raster, cedric

Reviewed By: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1588

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-10-28 21:20:39 +01:00
Cedric BAIL 76e33a2081 eina: remove reference to API that never made it to a stable release. 2014-10-28 21:19:10 +01:00
Tae-Hwan Kim 1f3dbca5d2 eina: enhance doxygen in eina_binshare.h
Summary:
Add @brief for brief description
Add @details for detailed description
Add @warning for important description
Add [in] & [out] for parameters
Fix indentation & Fix typeof

Reviewers: raster, cedric

Reviewed By: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1586

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-10-28 21:18:32 +01:00
Tae-Hwan Kim fb9476cee8 eina: enhance doxygen in eina_inarray.h
Summary:
Arrange grouping
Add @brief for brief description
Add @details for detailed description
Add @note for noted description
Add [in] & [out] for parameters
Fix indentation & Fix typeof

Reviewers: raster, cedric

Reviewed By: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1592

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-10-28 21:16:44 +01:00
Jean Guyomarc'h 6de8e3104d eina_semaphore: OSX support
Summary:
OSX only support named semaphores. Eina_Semaphore was actually broken on OSX.
Since OSX 10.10 sem_init() and sem_destroy() (were not implemented) are also marked as
"deprecated", which adds huge pollution to the output when compiling.

Reviewers: cedric, raster, stefan_schmidt

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1576

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-10-27 09:11:23 +01:00
Tae-Hwan Kim 72c576ab4e eina: enhance doxygen in eina_accessor.h
Summary:
Add @brief for brief description
Add @details for detailed description
Add [in] & [out] for parameters
Fix indentation & Fix typeof

Reviewers: raster, cedric

Reviewed By: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1580

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-10-27 09:10:18 +01:00
Tae-Hwan Kim dbe87afd63 eina: documentation enhance - add @brief tag
Summary: Add @brief for brief description

Reviewers: raster, cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1577

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-10-27 09:08:47 +01:00
Tae-Hwan Kim be9390ce8b eina: enhance doxygen for eina_counter.h
Summary:
Arrange grouping
Add @brief for brief description
Add @details for detailed description
Add [in] & [out] for parameters
Fix indentation & Fix typeof

Reviewers: raster, cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1579

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2014-10-27 09:06:21 +01:00
Stefan Schmidt 4091b4824d Revert "eina: Fix _timedwait to handle the given timeout on top of the absolute time"
Not ready yet as it uses _eina_time_get which is internal only right now. Compiling
works fine for efl alone as the private header is in teh include search part but it
blows up when compiling elementary.

Need to think a bit more about this. Maybe exposing _eina_time_get as API but that
should wait until after the release.

This reverts commit f0a02a92be.
2014-10-23 15:12:55 +02:00
Stefan Schmidt 03ca51abe7 eina: Add a note about potential use of CLOCK_MONOTONIC
Note it down so we can think about this at some later point.
2014-10-23 11:12:00 +02:00
Stefan Schmidt f0a02a92be eina: Fix _timedwait to handle the given timeout on top of the absolute time
The pthread man page clearly states that pthread_cond_timedwait() takes an
absolute time parameter. So far we always passed it epoch plus timeout in
seconds. This would never trigger the timeout.

Making sure we fill out timespec struct with the current time before adding
the timeout as offset now. Also handling the t < 0 error case.

Various version worked up together with Jean-Philippe Andre <jp.andre@samsung.com>

Fixes T1701
2014-10-23 11:01:35 +02:00
Jean-Philippe Andre 52135379df Eina: Check for errors after eina_tls_new
Fix CID 1248913.
2014-10-22 15:52:46 +09:00
Adrien Nader 020bd41505 eina document eina mempools' API.
Except for the weird _Eina_Mempool_Backend_ABI1/ABI2 work-around which is
completely internal and probably is of interest to noone (the only person
on Earth who will be interested in it in a decade will hate me for skipping
it).
2014-10-20 18:32:28 +02:00
Adrien Nader 10c4309fa7 eina: remove @addtogroup in eina_inline_mempool.x: the .h already has it.
It looks like doxygen doesn't appreciate having a group inside a group of
the same name and simply ignores any documentation coming from the parent
one.

Since the .x is included from the .h, it is always already inside the
group so simply remove the directive from the .x.

This fixes the documentation for all the functions which are declared and
documented in the .h and implemented in the .x.
2014-10-20 18:32:28 +02:00
Ghislain Loaec 604d3ae8a2 eina: Eina_Cpu / Eina_Thread API documentation 2014-10-20 18:17:14 +02:00
Ghislain Loaec 0001e36d39 eina: Eina_Fp API + Eina_Mempool TODOS 2014-10-20 18:15:35 +02:00