cedric [Wed, 18 Mar 2009 15:00:52 +0000 (15:00 +0000)]
* eina_list: Add a eina_list_search_sorted_near_list. Usefull if you want to build
a sorted list.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@39550
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Wed, 18 Mar 2009 13:29:36 +0000 (13:29 +0000)]
* eina_list: Add eina_list_search_sorted_list and eina_list_search_unsorted_list.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@39546
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Tue, 17 Mar 2009 13:05:02 +0000 (13:05 +0000)]
add missing prototype.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@39516
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Tue, 17 Mar 2009 12:52:38 +0000 (12:52 +0000)]
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.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@39515
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Fri, 13 Mar 2009 11:32:56 +0000 (11:32 +0000)]
inlist: add count.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@39465
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Fri, 13 Mar 2009 10:53:07 +0000 (10:53 +0000)]
1. cygwin fixes from booleanlabel@gmail.com
2. these are just generic fixes - so also fix 1 doc example too.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@39464
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Fri, 13 Mar 2009 10:24:45 +0000 (10:24 +0000)]
strict-aliasing is gcc 3+ - apply to CFLAGS for libeina.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@39462
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
turran [Sun, 1 Mar 2009 12:35:30 +0000 (12:35 +0000)]
+ Fix the precision when multiplying two fixed point numbers
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@39307
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Fri, 27 Feb 2009 16:32:22 +0000 (16:32 +0000)]
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.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@39267
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Wed, 25 Feb 2009 20:19:32 +0000 (20:19 +0000)]
Add reverse iterator macros for eina list.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@39218
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Wed, 25 Feb 2009 16:24:00 +0000 (16:24 +0000)]
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.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@39210
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Wed, 25 Feb 2009 10:46:14 +0000 (10:46 +0000)]
* eina/src/lib/eina_list.c: Use less code.
* eina/src/lib/eina_error.c: Add a way to abord on any error message.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@39196
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Fri, 20 Feb 2009 16:44:26 +0000 (16:44 +0000)]
* eina/src/include/eina_list.h: Add a macro for freeing each element of an Eina_List.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@39109
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Thu, 19 Feb 2009 19:48:03 +0000 (19:48 +0000)]
set correctly the relative path of the extern directory,
so that it fits the one used in the tutorial.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@39099
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Tue, 17 Feb 2009 14:18:14 +0000 (14:18 +0000)]
* eina/m4/efl_pthread.m4,
* eina/src/modules/mp/chained_pool/Makefile.am,
* eina/src/modules/mp/chained_pool/eina_chained_mempool.c: Now chained mempool are thread safe.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@39058
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Tue, 17 Feb 2009 12:58:09 +0000 (12:58 +0000)]
* eina/src/lib/eina_module.c: After deleting all members, we should flush the array.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@39057
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Tue, 3 Feb 2009 13:20:30 +0000 (13:20 +0000)]
* eina/src/lib/eina_array.c: Fix small typo.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38921
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Sun, 1 Feb 2009 20:21:56 +0000 (20:21 +0000)]
* fix logic in efl_doxygen.m4
* allow aclocal to check for modifications of the m4 macros in m4/
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38892
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Thu, 29 Jan 2009 23:16:23 +0000 (23:16 +0000)]
* more doc in the tutorial of the array data type
* minor formatting
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38853
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
turran [Thu, 29 Jan 2009 13:06:46 +0000 (13:06 +0000)]
+ Remove unlikely macro debug
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38840
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
turran [Wed, 28 Jan 2009 20:01:42 +0000 (20:01 +0000)]
+ Make the tiler functions static
+ Make the iterator actually work: keep track of current node
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38833
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Wed, 28 Jan 2009 18:00:20 +0000 (18:00 +0000)]
force the files that are in the _DATA primary to be
distributed in the tarball
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38832
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Tue, 27 Jan 2009 16:59:06 +0000 (16:59 +0000)]
formatting
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38815
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Tue, 27 Jan 2009 16:44:45 +0000 (16:44 +0000)]
* formatting: new lines are good for reading code
* remove comma after EINA_MAGIC (compilation with Visual Studio)
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38814
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Tue, 27 Jan 2009 16:38:06 +0000 (16:38 +0000)]
add source and header files to Visual Studio project files
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38813
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
rephorm [Tue, 27 Jan 2009 05:11:16 +0000 (05:11 +0000)]
don't leak
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38806
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
turran [Mon, 26 Jan 2009 19:35:12 +0000 (19:35 +0000)]
+ Fix for 64 bit asm
+ Fix for MinGW
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38799
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
turran [Mon, 26 Jan 2009 16:27:00 +0000 (16:27 +0000)]
+ Add eina_cpu subsystem: just query cpu simd operations for now.
+ Add eina_tiler subsystem: initially abstraction and import of gustavo's splitter code.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38793
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
turran [Mon, 26 Jan 2009 16:23:07 +0000 (16:23 +0000)]
+ Fix some english typos
+ Fix some macros that need an expression and there are no attributes support, just pass the expression as is
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38792
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Mon, 26 Jan 2009 14:46:02 +0000 (14:46 +0000)]
Add new set of usefull fonctions for eina list.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38791
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Fri, 23 Jan 2009 18:24:35 +0000 (18:24 +0000)]
fix warnings with vc++
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38744
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Fri, 23 Jan 2009 16:44:25 +0000 (16:44 +0000)]
add eina_main.h in vc project
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38742
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Fri, 23 Jan 2009 16:43:14 +0000 (16:43 +0000)]
put macro after declarations, otherwise vc++ is not happy
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38741
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Fri, 23 Jan 2009 16:11:45 +0000 (16:11 +0000)]
* minor formatting
* add some doc in eina_array
* in eina_main.c, include only the necessary headers
* fix some warnings (size_t <-> int)
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38740
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Fri, 23 Jan 2009 14:46:56 +0000 (14:46 +0000)]
put eina_init() and eina_shutdown() in their own header file
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38738
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Tue, 20 Jan 2009 16:47:19 +0000 (16:47 +0000)]
* eina/src/include/eina_private.h: better use do {} while(0);
* eina/src/lib/eina_array.c: Use gcc attribute to shutdown llvm warning.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38666
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Tue, 20 Jan 2009 16:14:36 +0000 (16:14 +0000)]
too much alloca declarations :-)
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38665
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Tue, 20 Jan 2009 15:56:48 +0000 (15:56 +0000)]
* 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.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38663
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Tue, 20 Jan 2009 15:44:52 +0000 (15:44 +0000)]
* eina/src/include/eina_private.h,
* eina/src/lib/eina_array.c: Remove potential error detected by llvm in eina_array.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38662
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Tue, 20 Jan 2009 15:42:34 +0000 (15:42 +0000)]
Remove warning.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38661
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Tue, 20 Jan 2009 15:40:36 +0000 (15:40 +0000)]
Fix wrong order and useless double include.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38660
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Tue, 20 Jan 2009 08:29:41 +0000 (08:29 +0000)]
* fix warning (missing alloca declaration)
* formatting
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38657
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
tilman [Sat, 17 Jan 2009 17:13:03 +0000 (17:13 +0000)]
Fixed two trivial const correctness issues.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38621
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Wed, 14 Jan 2009 08:36:16 +0000 (08:36 +0000)]
update ac_attribute.m4
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38579
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Tue, 13 Jan 2009 06:19:47 +0000 (06:19 +0000)]
The problem of the detection of __attribute__ on mac os x comes
from the fact that we put a definition of a function in the
body of main(). Moving it outside fixes it. In addition, the
extra flag i added in configure.ac is useless.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38565
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Sun, 11 Jan 2009 09:25:47 +0000 (09:25 +0000)]
mac os x port of gcc has problems with __attribute__ and thinks that
there are nested functions. -fnested-functions must be passed to the
compiler to allow the compilation on that platform.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38544
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
quaker [Fri, 9 Jan 2009 16:33:51 +0000 (16:33 +0000)]
Added debian/rules files with a new permissions set(755).
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38519
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
quaker [Fri, 9 Jan 2009 16:31:51 +0000 (16:31 +0000)]
prepare debian rules files for new chmod permissions.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38518
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
quaker [Thu, 1 Jan 2009 11:35:17 +0000 (11:35 +0000)]
Added new set of debian subdirs.
BROKEN/etox
e
ecore
e_dbus
edje
edje_editor
edje_viewer
eet
efreet
eina
elicit
elitaire
embryo
E-MODULES-EXTRA
emotion
emphasis
empower
emprint
enhance
enity
entrance
ephoto
epsilon
esmart
estickies
etk
etk_extra
evas
evolve
ewl
exhibit
exml
expedite
imlib2
imlib2_loaders
MISC/engage
OLD/eclair
OLD/engrave
OLD/enotes
OLD/entrance_edit_gui
OLD/e_utils
OLD/evoak
OLD/examine
OLD/iconbar
PROTO/etk_server
PROTO/exchange
PROTO/extrackt
rage
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38399
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
quaker [Thu, 1 Jan 2009 11:25:05 +0000 (11:25 +0000)]
Removed debian subfolders - prepared for a new set of debian subdirs.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38398
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Thu, 1 Jan 2009 03:09:48 +0000 (03:09 +0000)]
naruto takahashi's fix for gcc3 patch
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38397
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
handyande [Wed, 31 Dec 2008 11:51:37 +0000 (11:51 +0000)]
Make eina compile on OSX
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38382
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
sachiel [Tue, 30 Dec 2008 15:38:11 +0000 (15:38 +0000)]
Let's see if the number of people asking what Eina is remains the same.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38354
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Mon, 29 Dec 2008 12:41:46 +0000 (12:41 +0000)]
Don't generate warning in some little case.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38348
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Mon, 29 Dec 2008 11:49:35 +0000 (11:49 +0000)]
Don't display useless warning.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38346
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Mon, 29 Dec 2008 08:53:19 +0000 (08:53 +0000)]
Fix a little mistake.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38339
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Mon, 29 Dec 2008 08:53:01 +0000 (08:53 +0000)]
Use correct type.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38338
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Fri, 26 Dec 2008 19:14:57 +0000 (19:14 +0000)]
oops, it's EINA_SAFETY_CHECKS, not just SAFETY_CHECKS.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38328
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Fri, 26 Dec 2008 18:31:14 +0000 (18:31 +0000)]
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.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38327
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Fri, 26 Dec 2008 13:17:51 +0000 (13:17 +0000)]
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.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38323
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Tue, 23 Dec 2008 20:05:44 +0000 (20:05 +0000)]
fix possible errors with pointer/offset calculation.
it works on gcc, but maybe it would break in other compilers, so make
it safe.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38302
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Tue, 23 Dec 2008 19:17:55 +0000 (19:17 +0000)]
remove dead stores and reduce some variable scope.
from clang report.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38294
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Tue, 23 Dec 2008 17:23:35 +0000 (17:23 +0000)]
Use float instead of double.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38292
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Tue, 23 Dec 2008 13:33:11 +0000 (13:33 +0000)]
Make it compile on Solaris.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38290
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Tue, 23 Dec 2008 13:23:10 +0000 (13:23 +0000)]
Remove now uneeded header.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38289
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Tue, 23 Dec 2008 13:12:06 +0000 (13:12 +0000)]
Remove PATH_MAX use.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38288
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Tue, 23 Dec 2008 10:04:46 +0000 (10:04 +0000)]
Make code understandable by Visual Studio.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38287
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Tue, 23 Dec 2008 10:02:27 +0000 (10:02 +0000)]
Declaration should be done before any code.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38286
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
dm [Mon, 22 Dec 2008 23:20:52 +0000 (23:20 +0000)]
Eina Win32 VS8 project added
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38282
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Sun, 21 Dec 2008 06:45:09 +0000 (06:45 +0000)]
oops, eina_stringshare_strlen() should never account '\0'.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38260
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Fri, 19 Dec 2008 17:55:57 +0000 (17:55 +0000)]
Fix EINA_ARRAY_ITER_NEXT off by one bug. With this fix you can no longer push
NULL pointer inside an array.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38232
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Wed, 17 Dec 2008 13:03:00 +0000 (13:03 +0000)]
Update ac_attribute macro and remove __UNUSED__ declaration from eina.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38179
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Tue, 16 Dec 2008 16:49:29 +0000 (16:49 +0000)]
Add small bucket support.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38168
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Tue, 16 Dec 2008 16:49:00 +0000 (16:49 +0000)]
Add include to remove warning.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38167
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Thu, 11 Dec 2008 13:54:59 +0000 (13:54 +0000)]
Manipulating NULL iterator should be concidered as a defined behaviour as it
give the possibility to write small code like :
it = eina_hash_iterator_tuple_new(hash);
eina_iterator_foreach(it, do_something_cb, NULL);
eina_iterator_free(it);
If hash is empty, but valid it will return a NULL iterator for this
example.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38104
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Thu, 11 Dec 2008 13:47:58 +0000 (13:47 +0000)]
If we set the data free callback of a hash, we expect it to be called when
calling all eina_hash_del functions.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38102
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Tue, 9 Dec 2008 17:39:48 +0000 (17:39 +0000)]
Only allocate hash bucket when needed.
Make eina_hash_del_by_key really different from eina_hash_del.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38064
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Tue, 9 Dec 2008 14:59:30 +0000 (14:59 +0000)]
All eina_hash_find* functions should not report problem when hash or key is NULL.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38059
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Tue, 9 Dec 2008 14:30:54 +0000 (14:30 +0000)]
Remove uneeded included.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38058
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Tue, 9 Dec 2008 14:24:08 +0000 (14:24 +0000)]
eina_hash_find should not complain when hash or key is NULL.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38057
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Tue, 9 Dec 2008 13:58:04 +0000 (13:58 +0000)]
Add a visual feedback to counte test.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38056
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Tue, 9 Dec 2008 13:55:10 +0000 (13:55 +0000)]
Change eina_counter_dump to return a string so it could work easily on windows.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38055
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Tue, 9 Dec 2008 13:52:09 +0000 (13:52 +0000)]
eina_hash_del must honor the data parameter when the key is passed. Propagate
it correctly.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38054
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Tue, 9 Dec 2008 13:06:17 +0000 (13:06 +0000)]
It's cleaner to first include private header as they could define macro
differently than public interface.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38050
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Tue, 9 Dec 2008 13:05:33 +0000 (13:05 +0000)]
Prevent warning from Eina Magic when hash population is 0.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38049
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Tue, 9 Dec 2008 11:01:12 +0000 (11:01 +0000)]
__UNUSED__ macro is not exported by eina.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38045
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Mon, 8 Dec 2008 17:31:55 +0000 (17:31 +0000)]
Add integer and pointer hash table helper.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38026
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Mon, 8 Dec 2008 10:51:51 +0000 (10:51 +0000)]
Fix include related to previous Eina Magic patch.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38017
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Mon, 8 Dec 2008 10:18:05 +0000 (10:18 +0000)]
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.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@38014
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Sun, 7 Dec 2008 13:28:29 +0000 (13:28 +0000)]
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.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@37982
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Sat, 6 Dec 2008 06:58:56 +0000 (06:58 +0000)]
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.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@37962
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Sat, 6 Dec 2008 06:53:14 +0000 (06:53 +0000)]
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".
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@37961
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Sat, 6 Dec 2008 06:17:11 +0000 (06:17 +0000)]
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.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@37960
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Sat, 6 Dec 2008 06:13:55 +0000 (06:13 +0000)]
grow array only when required, use step properly.
We need to grow when we reach total amount, not when current + step > total.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@37959
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Sat, 6 Dec 2008 06:12:30 +0000 (06:12 +0000)]
Force dummy_symbol to be visible.
"make check" was failing with -fvisibility=hidden.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@37958
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Sat, 6 Dec 2008 06:11:39 +0000 (06:11 +0000)]
do not segv on NULL inlist.
this was exposed by "make check", counter had no tests and it was failing.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@37957
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Sat, 6 Dec 2008 03:41:03 +0000 (03:41 +0000)]
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.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@37956
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Sat, 6 Dec 2008 03:02:30 +0000 (03:02 +0000)]
shut up gcc warning, with comment.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@37953
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Sat, 6 Dec 2008 02:51:04 +0000 (02:51 +0000)]
fix list accounting on sort! bad - how did this hide for so long?
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@37951
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Sat, 6 Dec 2008 02:21:17 +0000 (02:21 +0000)]
Fix namespace: Eina_Foreach -> Eina_Hash_Foreach.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@37950
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33