Commit Graph

443 Commits

Author SHA1 Message Date
Cedric BAIL 5784d74daa * eina: Add eina_cpu_count.
SVN revision: 41543
2009-07-30 16:45:15 +00:00
Cedric BAIL b02de756a6 * eina: Rename eina_module_list_delete to eina_module_list_flush.
SVN revision: 41385
2009-07-17 11:13:38 +00:00
Cedric BAIL 6ca987941f * eina: Fix declaration according to Vincent Torri review.
SVN revision: 41359
2009-07-16 12:09:29 +00:00
Carsten Haitzler 01062bf98b cast. c++ doesn't like the implied void * -> struct * cast.
SVN revision: 41358
2009-07-16 03:04:56 +00:00
Cedric BAIL a477424685 * eina: Expose an helper for memory pool as Eina_Trash data type.
SVN revision: 41350
2009-07-15 13:13:52 +00:00
Gustavo Sverzut Barbieri a6f46561e7 add missing stddef.h, required by offsetof()
SVN revision: 41327
2009-07-14 15:32:01 +00:00
Vincent Torri 7a3b2110bf * more doc
* check the returned value of eina_error_init() in eina_module_init()


SVN revision: 41218
2009-06-28 06:29:11 +00:00
Vincent Torri c94a92a174 * Remove the use of HAVE___ATTRIBUTE__ (which is defined at
configure time) in an exported header. Use only macros
   defined by the compilers, which is sufficient and simpler.
 * Add missing EINA_DEPRECATED in some cases.


SVN revision: 41199
2009-06-25 19:58:05 +00:00
Vincent Torri ebc20c2236 API BREAK: fix Eina API so that it is more consistent with the other EFL
what is modified:

eina_counter_add -> eina_counter_new
eina_counter_delete -> eina_counter_free
eina_lalloc_delete -> eina_lalloc_free
eina_mempool_new -> eina_mempool_add
eina_mempool_delete -> eina_mempool_del
eina_mempool_alloc -> eina_mempool_malloc
eina_tiler_del -> eina_tiler_free

It remains some questions: have the following API a good name:

eina_module_list_delete
eina_list_free
eina_rbtree_delete

(see ticket #286)

If you find any problem, please report in that thread


SVN revision: 41187
2009-06-24 16:56:49 +00:00
Cedric BAIL 0c9aead634 Evas_Rectangle are gone. We now use Eina_Rectangle and memory pool is
shared accross the application.


SVN revision: 41170
2009-06-23 13:57:27 +00:00
Vincent Torri 9110d8d574 fix a bit the documentation, but there are still
a lot of doc to write...


SVN revision: 41164
2009-06-22 20:03:58 +00:00
Cedric BAIL af1e7f5dc9 * eina: Fix API naming for eina_rectangle and add a global allocator.
SVN revision: 41155
2009-06-22 13:16:51 +00:00
Cedric BAIL 7a18ab5ebc * eina: Add an eina_hash_stringshare_new.
SVN revision: 41112
2009-06-19 14:44:23 +00:00
Vincent Torri 5bd14d2a05 * modify the way eina_config.h is built (see eina_config.h.in
and configure.ac)
 * include eina_config.h explicitely in files where the macros
   of eina_config.h are used
 * define eina_magic_string_init()  and eina_magic_string_shutdown()
   even when the mugle option is set (magic disabled)
 * formatting and fix in configure.ac


SVN revision: 40962
2009-06-08 08:27:33 +00:00
Vincent Torri 46836c875f fix documentation
SVN revision: 40914
2009-06-06 03:55:32 +00:00
Cedric BAIL c38a387a05 * eina: Patch from Albin Tonnerre that add a new accessor for Inlist container.
SVN revision: 40726
2009-05-18 14:49:57 +00:00
Gustavo Sverzut Barbieri ebeabe3735 enable adding just part of a string.
this allows us to add stringshare from a larger buffer that cannot be
modified.


SVN revision: 40516
2009-05-06 04:11:01 +00:00
Cedric BAIL 5016004597 * eina_rectangle: Use a mempool to reduce memory allocation.
SVN revision: 39909
2009-04-09 15:51:32 +00:00
Carsten Haitzler 1c00a019e9 new -> news. people with g++ using eina in their c++ stuff will be most
un-amused by the use of a variable called "new".



SVN revision: 39905
2009-04-09 05:55:51 +00:00
Gustavo Sverzut Barbieri 2e9a9a9700 eina_stringshare_replace() gets in!
I was replicating this code in many places, it should go into eina itself.

It's the right way to change strings that you don't know are
stringshared before, since it will first add a reference and then
remove, making it impossible to have references to go 0 and string
being released before adding new references, fixing the following
possible problem:

   x = eina_stringshare_add("x");
   replace(x, x);

   then:
   incorrect_replace(const char **b, const char *a) {
      eina_stringshare_del(*b); /* reference gets to 0 */
      eina_stringshare_add(a); /* BUG!!! */
      *b = a;
   }




SVN revision: 39903
2009-04-08 18:25:02 +00:00
Gustavo Sverzut Barbieri 78f4f011d0 export vargs version of eina_error_print().
SVN revision: 39879
2009-04-06 12:41:50 +00:00
Gustavo Sverzut Barbieri 124e0c4a1b deprecated attribute
SVN revision: 39597
2009-03-20 01:00:35 +00:00
Gustavo Sverzut Barbieri 21f6be2f66 constness++
SVN revision: 39596
2009-03-20 01:00:04 +00:00
Cedric BAIL e027bb8a6e * eina_list: Add a eina_list_search_sorted_near_list. Usefull if you want to build
a sorted list.


SVN revision: 39550
2009-03-18 15:00:52 +00:00
Cedric BAIL 9fab9595b5 * eina_list: Add eina_list_search_sorted_list and eina_list_search_unsorted_list.
SVN revision: 39546
2009-03-18 13:29:36 +00:00
Gustavo Sverzut Barbieri bd6ef0cce1 add missing prototype.
SVN revision: 39516
2009-03-17 13:05:02 +00:00
Gustavo Sverzut Barbieri 56d1e979ce fix docs and add clone and reversed iterator calls.
* docs: be clear if it's a copy or in-place.

 * clone: add some apis to create a copy while operates, sort should
   do the same.

 * reversed iterator: new call to walk the list reversed, will make
   life easier in some cases.



SVN revision: 39515
2009-03-17 12:52:38 +00:00
Gustavo Sverzut Barbieri 750bdfce3d inlist: add count.
SVN revision: 39465
2009-03-13 11:32:56 +00:00
Jorge Luis Zapata Muga 07235befaa + Fix the precision when multiplying two fixed point numbers
SVN revision: 39307
2009-03-01 12:35:30 +00:00
Gustavo Sverzut Barbieri e3cce7b79d New macros, documentation and consistency for iterators and accessors.
EINA_ITERATOR_FOREACH() and EINA_ACCESSOR_FOREACH() are new macros to
help us forget about nasty C details (like cast to (void **)).

Document most iterators and accessors.

All iterators now set EINA_ERROR_OUT_OF_MEMORY if it's the case.



SVN revision: 39267
2009-02-27 16:32:22 +00:00
Gustavo Sverzut Barbieri aff2f5ebcf Add reverse iterator macros for eina list.
SVN revision: 39218
2009-02-25 20:19:32 +00:00
Gustavo Sverzut Barbieri 27f001875b Fix EINA_INLIST_GET() macro.
now EINA_INLIST_GET(bla)->next will work, before it was like

 &bla->__in_list->next

which is wrong, since __in_list is not a pointer, rather the memory itself.



SVN revision: 39210
2009-02-25 16:24:00 +00:00
Cedric BAIL b496774e9e * eina/src/include/eina_list.h: Add a macro for freeing each element of an Eina_List.
SVN revision: 39109
2009-02-20 16:44:26 +00:00
Vincent Torri cda565a38e * more doc in the tutorial of the array data type
* minor formatting


SVN revision: 38853
2009-01-29 23:16:23 +00:00
Vincent Torri 8cb92a2ca4 force the files that are in the _DATA primary to be
distributed in the tarball


SVN revision: 38832
2009-01-28 18:00:20 +00:00
Vincent Torri c02331ab22 formatting
SVN revision: 38815
2009-01-27 16:59:06 +00:00
Vincent Torri e9908d6e42 * formatting: new lines are good for reading code
* remove comma after EINA_MAGIC (compilation with Visual Studio)


SVN revision: 38814
2009-01-27 16:44:45 +00:00
Jorge Luis Zapata Muga 75299a9fa3 + Add eina_cpu subsystem: just query cpu simd operations for now.
+ Add eina_tiler subsystem: initially abstraction and import of gustavo's splitter code.

SVN revision: 38793
2009-01-26 16:27:00 +00:00
Jorge Luis Zapata Muga 40d9cab09a + Fix some english typos
+ Fix some macros that need an expression and there are no attributes support, just pass the expression as is

SVN revision: 38792
2009-01-26 16:23:07 +00:00
Cedric BAIL 1caa0562ad Add new set of usefull fonctions for eina list.
SVN revision: 38791
2009-01-26 14:46:02 +00:00
Vincent Torri da4cbd5c95 put eina_init() and eina_shutdown() in their own header file
SVN revision: 38738
2009-01-23 14:46:56 +00:00
Cedric BAIL f0096a167c * eina/src/include/eina_private.h: better use do {} while(0);
* eina/src/lib/eina_array.c: Use gcc attribute to shutdown llvm warning.


SVN revision: 38666
2009-01-20 16:47:19 +00:00
Cedric BAIL 0dda30daf6 * eina/src/include/eina_array.h,
* eina/src/include/eina_f16p16.h,
	* eina/src/include/eina_accessor.h,
	* eina/src/include/eina_list.h,
	* eina/src/include/eina_iterator.h,
	* eina/src/lib/eina_rectangle.c,
	* eina/src/lib/eina_list.c,
	* eina/src/lib/eina_array.c,
	* eina/src/lib/eina_hash.c,
	* eina/src/lib/eina_module.c,
	* eina/src/lib/eina_stringshare.c,
	* eina/src/lib/eina_benchmark.c: Fix for windows compilation.



SVN revision: 38663
2009-01-20 15:56:48 +00:00
Cedric BAIL 8a380803a7 * eina/src/include/eina_private.h,
* eina/src/lib/eina_array.c: Remove potential error detected by llvm in eina_array.


SVN revision: 38662
2009-01-20 15:44:52 +00:00
handyande c2bab4e388 Make eina compile on OSX
SVN revision: 38382
2008-12-31 11:51:37 +00:00
Gustavo Sverzut Barbieri ab95d9183d eina safety checks.
safety checks will report null pointers and other error conditions on
public api's and can be disabled by compile time check.

note that in order to have these checks working we need to make
EINA_ARG_NONNULL() void, otherwise GCC can remove these checks since
they're known to be false.

This commit also make two minor changes:

  * list and hash accessors and iterators are created even for empty
    entities. This is correct in my point of view since NULL should
    indicate error. Having these in were an optimziation, but not
    worth it, these are not the most common case and hitting this path
    is not of much cost.

 * unmarked some parameters as nonnull, mainly on list and inlist.



SVN revision: 38327
2008-12-26 18:31:14 +00:00
Gustavo Sverzut Barbieri b0ee5696a6 eina gets lots of gcc attributes to its api.
this should help with optimizations and code correctness, please see
"info gcc" for detailed explanation on these.

if you experience some functions not working as expected, please
double check if they're not marked with EINA_PURE or EINA_CONST, maybe
I misused them. Remove the macro and try again.

brief explanation:

 * EINA_WARN_UNUSED_RESULT: if you forgot to use the return of some
   function, it will emit a warning (and -Werror will make it an
   error). This way it will be harder to miss the attribution
   "l = eina_list_append(l, v)".

 * EINA_ARG_NONNULL(index, index...): if you give it an explicit NULL
   argument, or some tool (ie: clang) finds it could get a NULL but
   this is not accepted by API, then a warning will be emitted.  This
   will help those that still use eina_hash_add() as if it is
   evas_hash_add().

 * EINA_MALLOC: any non-NULL pointer it returns cannot alias any other
   pointer valid when function returns.

 * EINA_PURE: function have no effects other than the return and this
   return just depend on parameters and/or globals. You might call
   this function in a loop a thousand times and it will return the
   same value, thus you may move this function outside the loop and
   remove it.

 * EINA_CONST: stricter version of EINA_PURE, it will not check for
   global parameters, that is, you cannot consider pointer
   arguments. Use it for math things like "int sqrt(int)".

 * EINA_PRINTF(fmt, arg): will check format parameter specified in
   position "fmt" and passed arguments starting at position "arg", it
   will check for things like giving integers where short or strings
   were expected.

 * EINA_SCANF(fmt, arg): similar to eina_printf().

 * EINA_FORMAT(fmt): for use with things like dgettext(), it will get
   a printf-like format string and modifies it.

Please review and test it with your software, make sure you make clean
before you install the new version so it has any effect.

If you find some functions are missing EINA_WARN_UNUSED_RESULT and
EINA_ARG_NONNULL or others, please add them.



SVN revision: 38323
2008-12-26 13:17:51 +00:00
Cedric BAIL fb238897e5 Use float instead of double.
SVN revision: 38292
2008-12-23 17:23:35 +00:00
Cedric BAIL 889d40abf8 Remove PATH_MAX use.
SVN revision: 38288
2008-12-23 13:12:06 +00:00
Cedric BAIL 5383cabf2b Fix EINA_ARRAY_ITER_NEXT off by one bug. With this fix you can no longer push
NULL pointer inside an array.


SVN revision: 38232
2008-12-19 17:55:57 +00:00
Cedric BAIL 3d41b74146 Update ac_attribute macro and remove __UNUSED__ declaration from eina.
SVN revision: 38179
2008-12-17 13:03:00 +00:00
Cedric BAIL c80a55ee14 Add small bucket support.
SVN revision: 38168
2008-12-16 16:49:29 +00:00
Cedric BAIL 9b9f752379 Only allocate hash bucket when needed.
Make eina_hash_del_by_key really different from eina_hash_del.


SVN revision: 38064
2008-12-09 17:39:48 +00:00
Cedric BAIL 8ee267ec0d Remove uneeded included.
SVN revision: 38058
2008-12-09 14:30:54 +00:00
Cedric BAIL 24c1995b68 Change eina_counter_dump to return a string so it could work easily on windows.
SVN revision: 38055
2008-12-09 13:55:10 +00:00
Cedric BAIL af30207725 eina_hash_del must honor the data parameter when the key is passed. Propagate
it correctly.


SVN revision: 38054
2008-12-09 13:52:09 +00:00
Cedric BAIL 55d9c97446 __UNUSED__ macro is not exported by eina.
SVN revision: 38045
2008-12-09 11:01:12 +00:00
Cedric BAIL 5358b1f84f Add integer and pointer hash table helper.
SVN revision: 38026
2008-12-08 17:31:55 +00:00
Cedric BAIL c7b0e0a6b3 Fix include related to previous Eina Magic patch.
SVN revision: 38017
2008-12-08 10:51:51 +00:00
Cedric BAIL 199f900908 Application and library using Eina Magic API should be able to decide if they
want to check magic or not. This should not be forced by Eina config.


SVN revision: 38014
2008-12-08 10:18:05 +00:00
Gustavo Sverzut Barbieri 8ea28f64b7 hash: better handling of NULL, add magic checking.
* evas: if we automatically destroy hash, check for NULL before
   handling it to eina api, which expect elements to be created with
   eina_hash_new() and thus will fail on NULL.
 * eina: add magic checking for eina_hash and eina_hash_iterator, this will
   help spot when NULL is used.
 * eina_hash_foreach: do not try to create the iterator if hash is NULL.



SVN revision: 37982
2008-12-07 13:28:29 +00:00
Gustavo Sverzut Barbieri b21c687f61 refactor eina_hash_del*, expose simpler functions and avoid GCC hack.
By using simpler functions for hash element deletion we can avoid the
hack to shut up GCC warking about hash_num not being used. As these
simple functions are more often needed than the catch-all, expose them
as well.



SVN revision: 37962
2008-12-06 06:58:56 +00:00
Gustavo Sverzut Barbieri 09924b54e5 Let valgrind help with EINA_MAGIC.
Keep EINA_MAGIC at the end of the structure (WHEN POSSIBLE! Watch out
flexible arrays like char str[] at the end!)

this way if parts use EINA_MAGIC and others do not, it will possible overflow and valgrind can help us.

WARNING: make uninstall before update! Then make clean and make install, check if everything is working with "make check".



SVN revision: 37961
2008-12-06 06:53:14 +00:00
Gustavo Sverzut Barbieri 5939d76d9c Fix couple of issues with MAGIC handling.
eina_magic.h MUST include eina_config.h, otherwise it will not
consider EINA_MAGIC stuff. Worse than that, some files were including
that directly and were considering EINA_MAGIC attribute even if the
file that alloc'ed the memory were not!

Also add missing EINA_MAGIC_SET() to iterators and accessors.



SVN revision: 37960
2008-12-06 06:17:11 +00:00
Gustavo Sverzut Barbieri 08832b519b grow array only when required, use step properly.
We need to grow when we reach total amount, not when current + step > total.



SVN revision: 37959
2008-12-06 06:13:55 +00:00
Gustavo Sverzut Barbieri 6203f4b6be do not segv on NULL inlist.
this was exposed by "make check", counter had no tests and it was failing.



SVN revision: 37957
2008-12-06 06:11:39 +00:00
Gustavo Sverzut Barbieri a00eaac6a6 Make it possible to create iterators outside Eina.
Many places in EFL we just create walk something, create a list with
walked data, return, then the user walks it again and then deletes
(which will walk again). For such cases it's way better to define
iterators or accessors.

I'm not moving any EFL code to it now, but if people are interested,
things like evas_render_method_list(), evas_font_available_list(),
evas_objects_at_xy_get(), evas_objects_in_rectangle_get(),
evas_object_smart_members_get() are good candidates. If the subject is
already using Eina list, then you can just use
eina_list_iterator_new() and return it, otherwise you can define your
own iterator, which is very easy.



SVN revision: 37956
2008-12-06 03:41:03 +00:00
Gustavo Sverzut Barbieri f8868ffa96 Fix namespace: Eina_Foreach -> Eina_Hash_Foreach.
SVN revision: 37950
2008-12-06 02:21:17 +00:00
Gustavo Sverzut Barbieri 03fca99e56 Add safe Eina list walk function.
SVN revision: 37949
2008-12-06 02:13:01 +00:00
Chidambar Zinnoury 5c2c6049f1 Use includedir instead of prefix/include to install Eina headers.
SVN revision: 37925
2008-12-04 16:25:40 +00:00
Cedric BAIL 5257321d9a Fix some constness.
SVN revision: 37576
2008-11-10 16:23:56 +00:00
Cedric BAIL e8ed3963c8 Add eina_array_data_set.
SVN revision: 37475
2008-11-05 17:16:07 +00:00
Cedric BAIL e63dde947d Fix documentation.
SVN revision: 37474
2008-11-05 16:20:37 +00:00
Gustavo Sverzut Barbieri 9e80a086f6 Add and use eina_stringshare_ref().
This is a faster "add", if we know we're using a shared string we know
the node without any need to search it, just increment reference and
exit.



SVN revision: 37458
2008-11-04 16:25:12 +00:00
Vincent Torri c8e2f1f51f small doc fix
SVN revision: 37407
2008-11-02 09:41:14 +00:00
Cedric BAIL 437c220266 Add dladdr and env code for eina_module from Vincent Torri.
SVN revision: 37374
2008-11-01 15:39:53 +00:00
Gustavo Sverzut Barbieri 72ae858dac fix _GET macros.
SVN revision: 37276
2008-10-28 16:37:32 +00:00
Cedric BAIL e243e4408a Make Eina_Rectangle_Pool more usable.
SVN revision: 37275
2008-10-28 15:28:46 +00:00
Gustavo Sverzut Barbieri 24ee564949 Cheap way to get strlen of a shared string.
it's not safe, but it's faster and can help for large strings, maximum
cost is 4 comparisons plus one pointer access.



SVN revision: 37257
2008-10-28 00:31:09 +00:00
Cedric BAIL 72e45419ec Add Eina_Rectangle_Pool support. Typically help for font handling in OpenGL or
any case where you need to split a rectangle in many differents small rectangle.


SVN revision: 37252
2008-10-27 20:24:12 +00:00
Carsten Haitzler 089b8ac181 add a stringshare dumper so we can examine what's in there and improve usage.
SVN revision: 37186
2008-10-27 00:36:22 +00:00
Carsten Haitzler 7d0d0aaf7f handle some bizarre build issues...
SVN revision: 37048
2008-10-24 10:57:00 +00:00
Sebastian Dransfeld a8c2834987 modules most export init and shutdown as EAPI
SVN revision: 37042
2008-10-24 06:24:08 +00:00
Cedric BAIL b114ef85de Really return Eina_Bool.
SVN revision: 37022
2008-10-23 12:50:33 +00:00
Cedric BAIL 4bb02bdf37 Add more error information during eina module load.
SVN revision: 36955
2008-10-22 08:56:19 +00:00
Gustavo Sverzut Barbieri 93a280b7d7 eina_bool is now an unsigned char.
This makes clear what size and if we have a signal or not in our type,
so no compilers have the right to choose different for us (like they
do with enum).

Also fixes compile of C++ programs with eina_rectangle.h, that
contains some inline code, the expression evaluates a boolean
expression and compiler does not know how to convert that to old
Eina_Bool.



SVN revision: 36939
2008-10-21 15:21:37 +00:00
Cedric BAIL 430fb672cd Rename EINA_LIST_ITER_NEXT to EINA_LIST_FOREACH.
SVN revision: 36930
2008-10-21 12:49:29 +00:00
Cedric BAIL 68d377afe6 Rename EINA_INLIST_ITER_NEXT/EINA_INLIST_ITER_LAST to EINA_INLIST_FOREACH/
EINA_INLIST_REVERSE_FOREACH so it best match is behaviour. Asked by Gustavo.



SVN revision: 36928
2008-10-21 12:19:57 +00:00
Cedric BAIL 1950725606 Add merge function to list data type.
SVN revision: 36922
2008-10-21 11:28:38 +00:00
Cedric BAIL c9779e876f Actually include eina_convert in the main header.
SVN revision: 36860
2008-10-20 15:01:01 +00:00
Cedric BAIL a52cc857fa Put the mempool backend structure with other structure.
SVN revision: 36855
2008-10-20 13:23:18 +00:00
Carsten Haitzler 31727e370d actually compile!
SVN revision: 36849
2008-10-20 12:08:16 +00:00
Cedric BAIL 4953eb74fe Apps can now provide their own mempool.
SVN revision: 36847
2008-10-20 11:40:01 +00:00
Cedric BAIL a61ba1c35a Fix some warning.
SVN revision: 36563
2008-10-10 09:33:40 +00:00
Cedric BAIL 5cddd1f760 Remove dead code.
SVN revision: 36493
2008-10-07 11:07:03 +00:00
Cedric BAIL 195b2da188 Give more choice to eina_list mempool.
SVN revision: 36479
2008-10-06 14:47:09 +00:00
Cedric BAIL 36b46ca065 Remove dead declaration.
SVN revision: 36399
2008-10-02 16:23:27 +00:00
Cedric BAIL 439401682d Reduce code size, and improve sort speed.
SVN revision: 36382
2008-10-01 16:30:30 +00:00
Cedric BAIL 7c47066009 Change module API to use Eina_Array as we want to use mempool and module for Eina_List.
Fix at the same time a closing bug in eina_module.c.



SVN revision: 36312
2008-09-29 13:28:42 +00:00
Vincent Torri 79375f9123 * fix clean and dist rules
* create eina-$(maj_version).pc.in file automatically


SVN revision: 36292
2008-09-28 12:43:21 +00:00
Cedric BAIL 8b33d245e6 Inlined functions require NULL, so including stdlib.h is required.
SVN revision: 36266
2008-09-26 15:26:36 +00:00
Cedric BAIL 6f5b3584dd Store build information inside eina_config.h, and fix magic use.
SVN revision: 36263
2008-09-26 11:41:55 +00:00
Cedric BAIL 42d39725b4 Last part of quarium patch.
SVN revision: 36257
2008-09-25 14:46:48 +00:00
Cedric BAIL 8b85ce70d4 Patch from quarium.
Add magic to array and list.

Need to patch autotools to generate something like eina_config.h.



SVN revision: 36256
2008-09-25 14:46:16 +00:00
Cedric BAIL e8b25fb405 Add a sort benchmark.
SVN revision: 36250
2008-09-25 12:41:49 +00:00
Cedric BAIL 040e5573d9 Patch from Arnaud de Turckheim "quarium" <quarium@gmail.com>.
Use magic inside stringshare without slowdown of benchmark.
Fix magic when not in DEBUG mode.



SVN revision: 36246
2008-09-25 09:02:41 +00:00
Cedric BAIL 550ebc9ab1 Add hash and rbtree delete callback, cleanup the code and improve performance (hash as a new internal structure).
We still need a hash function for removing a node from the hash and destroying it at the same time.



SVN revision: 36222
2008-09-24 17:14:29 +00:00
Cedric BAIL bf418729d2 Group all rbtree functions.
SVN revision: 36209
2008-09-24 12:58:31 +00:00
Jorge Luis Zapata Muga c9f08f6124 New module API. Port this API to the mempool subsystem and the tests.
Now the modules can define a default function that will be called when the module is loaded and unloaded.

SVN revision: 36207
2008-09-24 12:55:31 +00:00
Cedric BAIL 8acad8a50e Add rbtree destructor without tree reorder and use it.
SVN revision: 36188
2008-09-23 16:07:48 +00:00
Vincent Torri 476222cc6c add main doc for eina_convert
SVN revision: 36187
2008-09-23 15:57:57 +00:00
Vincent Torri 4313d2b084 * fix list doc
* minor other doc fixes
 * link the mempool modules statically to libeina when requested
 * don't compile static lib of mempool when they are built as shared lib


SVN revision: 36178
2008-09-23 05:17:49 +00:00
Cedric BAIL 3fc07d2aac Add helper for inlined red black tree manipulation.
SVN revision: 36164
2008-09-22 13:02:08 +00:00
Cedric BAIL 710354bd96 Change eina_benchmark_register API as it can fail in many occasion.
SVN revision: 36097
2008-09-19 12:32:24 +00:00
Vincent Torri f50feadeae * add benchmark and file documentation
* reorganize a bit more. it's not finished
 * fix spellingg and formatting 
 * gnuplot file names generated by our bechmarks tests have an
   absolute time description and not H:M:S description, as this
   breaks the check out of the repo on Windows.


SVN revision: 36090
2008-09-19 05:22:43 +00:00
Cedric BAIL 8bda22fced Add some type checking to Inlined List.
SVN revision: 36084
2008-09-18 14:22:48 +00:00
Cedric BAIL 80e138df1b Remove moved declaration.
SVN revision: 36082
2008-09-18 14:21:38 +00:00
Cedric BAIL 4423005ab4 Avoid some dereferencing and provide inline for mempool alloc/free/realloc.
SVN revision: 36078
2008-09-18 14:16:47 +00:00
Cedric BAIL ce16573cb3 Add init/shutdown to benchmark and fix its users.
SVN revision: 36073
2008-09-18 10:04:46 +00:00
Cedric BAIL 9d54723060 Add forgotten declaration.
SVN revision: 36069
2008-09-18 10:01:45 +00:00
Vincent Torri 54de28cc68 * add doc for counter and convert modules
* minor spelling, formatting and doxygen fixes


SVN revision: 36057
2008-09-17 18:55:54 +00:00
Cedric BAIL f7d92d57a4 Add statistics, gc support to mempool and a workaround path lookup for module.
SVN revision: 36051
2008-09-17 15:20:35 +00:00
Vincent Torri 7fd7cc717c * update the doc of stringshre
* fix minor warnings from doxygen


SVN revision: 36004
2008-09-15 19:58:36 +00:00
Vincent Torri 78c9527052 * add documentation. The tutorial needs to be written, though
* rename eina_arra_count() to eina_array_count_get() and
   eina_arra_get() to eina_array_data_get()


SVN revision: 36003
2008-09-15 19:17:15 +00:00
Cedric BAIL e3e2afca18 Don't compute string length when not really needed.
SVN revision: 36001
2008-09-15 13:38:42 +00:00
Cedric BAIL 9979edd82a Don't limite the range of the hash function. It's the dutty of the caller.
SVN revision: 35998
2008-09-15 12:35:27 +00:00
Cedric BAIL c52f7b7b62 Make inline only usefull function.
Return information about potential error during eina_array_remove.



SVN revision: 35888
2008-09-08 12:19:15 +00:00
Vincent Torri b73180cd01 * add array doc
* eina_array_push() returns now a bool
 * fix compilation


SVN revision: 35871
2008-09-07 19:12:49 +00:00
Vincent Torri 557107790a * add accessor doc
* fix and add some links


SVN revision: 35865
2008-09-07 07:19:19 +00:00
Vincent Torri 0b6f01fec5 * add doc for iterators
* add table of content on the main page


SVN revision: 35864
2008-09-07 05:44:00 +00:00
Vincent Torri ae2e95969f * add documentation and a tutorial for the error module
* change api (eina_error_register to eina_error_msg_register)


SVN revision: 35838
2008-09-05 07:58:38 +00:00
Cedric BAIL 991867bd7b Share eina_benchmark to other libs also.
SVN revision: 35832
2008-09-04 15:06:26 +00:00
Cedric BAIL a257cf02f3 Add a routine to extract path information.
SVN revision: 35814
2008-09-03 14:40:12 +00:00
Cedric BAIL 345242f6c3 Update copyright credit correctly.
SVN revision: 35774
2008-09-01 12:42:16 +00:00
Cedric BAIL 3e562ccfc2 Add a context to the callback.
SVN revision: 35719
2008-08-28 16:33:40 +00:00
Cedric BAIL f6bcf421ce Forgotten declaration.
SVN revision: 35718
2008-08-28 16:28:35 +00:00
Cedric BAIL 9494785cb7 Inline red black tree lookup.
SVN revision: 35716
2008-08-28 14:37:26 +00:00
Cedric BAIL f2a6fcb19c Add needed minimal header.
SVN revision: 35708
2008-08-28 11:12:23 +00:00
Cedric BAIL 2c38b1df51 Add more type description and include all the headers.
SVN revision: 35707
2008-08-28 10:05:22 +00:00
Vincent Torri dafd079639 * move standard header files from eina_private.h to source files
* minor formatting


SVN revision: 35705
2008-08-28 07:46:42 +00:00
Vincent Torri 4485f06f66 fix a bit list documentation. Not finished yet.
SVN revision: 35702
2008-08-28 06:31:18 +00:00
Vincent Torri 9824a1a86c Update documentation:
* run 'make doc' to generate the documentation. Hence
   gendoc disappear. Doxyfile is moved to doc/
 * update main page and doc of hash table, but it has to
   be filled.



SVN revision: 35692
2008-08-27 13:34:04 +00:00
Cedric BAIL 394c787dde Add Red Black tree API. Right now only insertion, lookup and iterator work.
The current implementation choose to move the node allocation outside of eina
control like eina_inlist. They currently have the same memory footprint as
eina_inlist and the implementation of insertion and lookup are iterative
making it quite fast. This should make them a good competitor of eina_inlist
for eina_hash and eina_stringshare.



SVN revision: 35689
2008-08-27 10:07:12 +00:00
Cedric BAIL 4390a37a70 Add eina_array_pop and rename eina_array_append by eina_array_push.
SVN revision: 35679
2008-08-26 10:23:45 +00:00
Jorge Luis Zapata Muga 7ae301f601 Place pre-conditions where they belong
Remove unused rectangle functions

SVN revision: 35634
2008-08-23 19:50:21 +00:00
Cedric BAIL 4bc094c45a As we are heavy user of int to string and double to string in the EFL, provide a fast and portable one.
SVN revision: 35604
2008-08-21 14:20:41 +00:00
Cedric BAIL da8c3be66f Add a proposal for a module/plugins API that should match every requirement I
received. It's a little huge right now, but work quite nicely.

It support "static" module, version, recursive lookup and should be able to
replace the module/plugins support in evas and ecore.


SVN revision: 35534
2008-08-18 08:18:16 +00:00
Cedric BAIL ee5f9b2d75 Use the right type name.
SVN revision: 35458
2008-08-13 09:25:22 +00:00
Cedric BAIL 13e1ab352d Constness++
SVN revision: 35457
2008-08-13 09:24:49 +00:00
Cedric BAIL 911cd4deda Add iterator/accessor to eina list.
Change list size type to unsigned int.


SVN revision: 35454
2008-08-13 09:19:34 +00:00
Cedric BAIL bd76226a8f Expose Iterator/Accessor API for Inlist.
SVN revision: 35447
2008-08-12 16:02:09 +00:00
Cedric BAIL 9c1d8d3d95 Change function name to match its new behaviour. jumpt_at -> get_at.
SVN revision: 35444
2008-08-12 08:41:39 +00:00
Cedric BAIL a46c20d137 Easier API and follow gustavo's remark.
SVN revision: 35440
2008-08-11 17:22:36 +00:00
Cedric BAIL 43cc2dca6f Add first try for an accessor and iterator API, comment welcome (lack inlist and list currently).
Rewrite EINA_ARRAY_ITER_NEXT, still fast, need one more parameter, but no more EINA_ARRAY_ITER_END.


SVN revision: 35438
2008-08-11 16:30:16 +00:00
Cedric BAIL ea0fb7d1b5 Cleanup.
SVN revision: 35437
2008-08-11 16:21:51 +00:00
Cedric BAIL c1959429af Add some meaningfull const.
SVN revision: 35436
2008-08-11 16:21:19 +00:00
Cedric BAIL 79fb88b08e Just some alignment.
SVN revision: 35411
2008-08-08 15:56:17 +00:00
Cedric BAIL 6eacc6aa2d After benchmarking, providing inline does impact performance of list and array user.
SVN revision: 35407
2008-08-08 14:25:37 +00:00
Cedric BAIL ce23f3c2a9 After benchmarking, providing inline does impact performance of list and array user.
SVN revision: 35406
2008-08-08 14:20:11 +00:00
Jorge Luis Zapata Muga ee54713d9d Allow user provided functions for printing messages
Make the stdout print mgs function exportable
Add a FILE * print msg function (useful for logging)


SVN revision: 35404
2008-08-08 10:39:47 +00:00
Cedric BAIL cf5bc3129d Use the common out of memory error.
SVN revision: 35379
2008-08-07 13:11:13 +00:00
Cedric BAIL f193096aa8 Add eina_list test suite. Cleanup list implementation and share out of memory error.
SVN revision: 35378
2008-08-07 13:09:09 +00:00
Cedric BAIL ddaa7d4d8f License changes (BSD -> LGPL)
SVN revision: 35360
2008-08-06 18:15:24 +00:00
Cedric BAIL 693f0eca8d Build new API.
SVN revision: 35354
2008-08-06 15:53:03 +00:00
Cedric BAIL d8ee8aee6c Fix eina_stringshare_shutdown to return value like all eine shutdown funtion.
Cleanup hash function call.


SVN revision: 35352
2008-08-06 15:49:50 +00:00
Cedric BAIL 69945bf4ec Major cleanup. Eina_Hash now support other key than string. All code except
allocation failure and foreach is covered by the test.


SVN revision: 35351
2008-08-06 15:46:57 +00:00
Cedric BAIL a9c6722814 Cleanup inline.
SVN revision: 35350
2008-08-06 15:42:33 +00:00
Cedric BAIL ff9f4d3502 Cleanup headers.
SVN revision: 35349
2008-08-06 15:41:47 +00:00
Cedric BAIL 0300d7019f Add global init/shutdown API to Eina. Include eina_counter header.
SVN revision: 35345
2008-08-06 15:37:29 +00:00
Cedric BAIL 4b2812b7e0 Add a counter API, usefull for benchmarking.
SVN revision: 35344
2008-08-06 15:35:56 +00:00
Cedric BAIL 5f85aa8a80 Hide the type.
SVN revision: 35321
2008-08-04 17:00:30 +00:00
Cedric BAIL ba49a3fee1 Cover lazy allocator at 100%. Add error checking capability.
SVN revision: 35320
2008-08-04 16:50:03 +00:00
Cedric BAIL 5f783f52d8 Add eina inlist tests suite, remove dead code and cleanup iterator.
SVN revision: 35302
2008-08-01 15:44:53 +00:00
Cedric BAIL 645db96755 Fix error get/set.
SVN revision: 35300
2008-08-01 14:26:13 +00:00
Cedric BAIL bf68fa183c Fix macro.
SVN revision: 35299
2008-08-01 14:25:20 +00:00
Cedric BAIL d04e063cb7 Remove DEBUG macro from header.
SVN revision: 35298
2008-08-01 14:24:41 +00:00
Cedric BAIL a7cb2d3d9d Fix iterator.
SVN revision: 35296
2008-08-01 14:23:11 +00:00
Cedric BAIL 8d43a6fc88 Update the mempool API header.
SVN revision: 35290
2008-08-01 12:29:15 +00:00
Cedric BAIL 67d2b46784 Fix and improvement for stringshare and array, thanks to the tests suite.
SVN revision: 35288
2008-08-01 12:26:35 +00:00
Cedric BAIL 9321fbbfdc Fix a typo.
SVN revision: 35276
2008-07-31 16:58:22 +00:00
Cedric BAIL 162f31877f Forgotten declaration.
SVN revision: 35275
2008-07-31 16:55:29 +00:00
Cedric BAIL 2964bdd9b3 Cleanup.
SVN revision: 35271
2008-07-31 15:08:47 +00:00
Cedric BAIL e04f59c7b0 Export a magic API.
SVN revision: 35270
2008-07-31 15:08:19 +00:00
Cedric BAIL 7473953e3e Add the __UNUSED__ macro.
SVN revision: 35269
2008-07-31 14:59:23 +00:00
Cedric BAIL a8aac59e01 Fix namespace.
SVN revision: 35268
2008-07-31 14:58:23 +00:00
Cedric BAIL ea2d7be8ec Include new headers too.
SVN revision: 35258
2008-07-30 16:40:15 +00:00
Cedric BAIL edce92f017 Add array and cleanup lalloc namespace.
SVN revision: 35257
2008-07-30 16:34:54 +00:00
Peter Wehrfritz 0eefad12bd - add init() and shutdown() functions
- add doxy


SVN revision: 35256
2008-07-30 14:42:37 +00:00
Cedric BAIL 86f58ba639 Use only the needed headers per file and remove some warning.
SVN revision: 35253
2008-07-30 13:35:49 +00:00
doursse 16b95f91c9 install headers in $prefix/include/eina-$VERSION_MAJOR to allow parralel
installations between different major versions


SVN revision: 35251
2008-07-30 13:16:09 +00:00
Cedric BAIL 3b7fb95c9d Add .cvsignore.
SVN revision: 35250
2008-07-30 13:09:03 +00:00
Cedric BAIL 6e74d01030 Adding stringshare from evas inside eina.
SVN revision: 35249
2008-07-30 13:05:13 +00:00
Cedric BAIL a92e3d6c83 Adding turran work to unify EFL data types and functions.
SVN revision: 35248
2008-07-30 12:46:55 +00:00