Go to file
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
legacy eina: Fix EINA_INLIST_FOREACH_SAFE macro 2012-09-04 22:20:25 +00:00