efl/legacy/eina
Lucas De Marchi 45a791dfa1 eina: Fix EINA_INLIST_FOREACH_SAFE macro
EINA_INLIST_FOREACH_SAFE is very broken and it only works by luck, depending on
the __inlist field being the first one in the struct. Until now.

This commit makes the following snippet to work:


	#include <Eina.h>

	typedef struct _data {
	   char *name;
	   EINA_INLIST;
	} data;

	int
	main()
	{
	   Eina_Inlist *inlist = NULL, *inlist_safe;
	   data *reg, *d;

	   reg = malloc(sizeof(data));
	   inlist = eina_inlist_append(inlist, EINA_INLIST_GET(reg));

	   EINA_INLIST_FOREACH_SAFE(inlist, inlist_safe, d)
	     {
		printf("%p\n", d);
		inlist = eina_inlist_remove(inlist, EINA_INLIST_GET(d));
		free(d);
	     }

	   return 0;
	}


 Patch-by: José Roberto de Souza <zehortigoza@profusion.mobi>



SVN revision: 76150
2012-09-04 22:20:25 +00:00
..
doc Make old doxygen versions able to find eina example files. 2012-07-05 14:30:45 +00:00
m4 Eina: fix CFLAGS value when --enable-assert is used 2012-07-01 13:34:34 +00:00
src eina: Fix EINA_INLIST_FOREACH_SAFE macro 2012-09-04 22:20:25 +00:00
.gitignore eet, eina, eio, embryo, ethumb, evas, expedite: Updated .gitignore 2012-04-03 13:43:31 +00:00
AUTHORS just spent waaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaay too long working on eina_str_split/full. never again. 2012-06-08 23:28:11 +00:00
COPYING fix COPYING to say 2011. 2011-09-05 07:15:41 +00:00
ChangeLog ChangeLog: back in time. 2012-08-30 11:26:00 +00:00
INSTALL Update configure as we now need automake 1.10. 2008-09-29 09:46:27 +00:00
Makefile.am Eina: remove --enable-coverage option. 2012-07-01 11:48:06 +00:00
NEWS eina: news + changelog 2012-08-14 21:11:53 +00:00
README and up ver to 1.7.99 now in svn. nack to svnrev num at end. 2012-08-30 10:34:01 +00:00
autogen.sh Eina: put m4 files in their own subdir 2012-01-21 08:02:54 +00:00
configure.ac Eina bench: Added eina-bench-cmp to compare benchmarks. 2012-09-02 07:14:20 +00:00
eina.pc.in Eina: add nice m4 macro to check function. Will be usable easily in the merge, per EFL lib 2012-06-28 06:45:12 +00:00
eina.spec.in Since the SVN revision is now included in %{version}, it's redundant 2011-06-16 20:36:43 +00:00

README

Eina 1.7.99

******************************************************************************

 FOR ANY ISSUES PLEASE EMAIL:
 enlightenment-devel@lists.sourceforge.net

******************************************************************************

Requirements:
-------------
Must have:
 libc (pthread or windows threading support, iconv support)

Eina is a library providing data structure utilities for EFL that are meant
to be lean, efficient and tailored to EFL's needs. This saves each
library implementing its own custom datatype handling and duplicating
the code. Some of the datatypes handles are:
  Arrays (variable sized, including inline members)
  Hash tables
  Inlined linked lists
  Linked lists
  Matricies
  Quadtrees
  Red/black trees
  Stringbuffers (expandable string buffers)

In addition Eina supports shared string token hashes with Stringshare
and Unistringshare (standard ascii/utf8 strings and full unicode
strings). It has a Trash pointer collector for deferring freeing until
work is complete on a dataset, Unicode string wrapping and handling,
UTF8 string parsing, 2D tile structure handling and rectangle
utilities, module loading wrapper, Memory pools for faster allocation
and less fragmentation of the heap, Output logging and selective
aborting on critical enough states, fixed point math functions, CPU
feature detection (like MMX, SSE, VFP, NEON etc.), Counters, binary
token sharing and more.

------------------------------------------------------------------------------
COMPILING AND INSTALLING:

  ./configure
  make
(do this as root unless you are installing in your users directories):
  make install