Commit Graph

143 Commits

Author SHA1 Message Date
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