Add code to check good generation with intrusive list.
This commit is contained in:
1 parent
d6ee3c6329
commit
7be58b4a97
1 file changed
+12
-16
+12
-16
@@ -22,9 +22,13 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "m-list.h"
|
#include "m-list.h"
|
||||||
|
#include "m-i-list.h"
|
||||||
|
|
||||||
LIST_DEF(dbl, double)
|
LIST_DEF(dbl, double)
|
||||||
|
|
||||||
|
void f_push_back(list_dbl_t list);
|
||||||
|
double f_iterator(list_dbl_t list);
|
||||||
|
|
||||||
void f_push_back(list_dbl_t list)
|
void f_push_back(list_dbl_t list)
|
||||||
{
|
{
|
||||||
list_dbl_push_back(list, 2.0);
|
list_dbl_push_back(list, 2.0);
|
||||||
@@ -39,24 +43,16 @@ double f_iterator(list_dbl_t list)
|
|||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct tata {
|
struct itest {
|
||||||
int x;
|
int n;
|
||||||
};
|
ILIST_INTERFACE (list, struct itest);
|
||||||
struct tutu {
|
|
||||||
void (* const init) (void);
|
|
||||||
void (* const add) (int *t);
|
|
||||||
struct tata *data;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
int f(int p)
|
ILIST_DEF(list, struct itest)
|
||||||
|
|
||||||
|
extern void f_init(ilist_list_t l);
|
||||||
|
void f_init(ilist_list_t l)
|
||||||
{
|
{
|
||||||
struct tata el_data;
|
ilist_list_init(l);
|
||||||
inline void __attribute__((always_inline)) el_init (void) { el_data.x = 0; };
|
|
||||||
inline void __attribute__((always_inline)) el_add (int *t) { el_data.x += *t; };
|
|
||||||
const struct tutu el = { .init = el_init, .add = el_add, .data = &el_data };
|
|
||||||
|
|
||||||
el.init();
|
|
||||||
el.add (&p);
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Reference in new issue
Block a user