X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fq.h;h=58064f37d2d13785ad31a9f339cfc8abebba3e7d;hb=f0a3da08874dcfae2f3180559b208f6726702e6a;hp=52d63923cac530a14d009a4a1a41925738518732;hpb=d0814136e2d0a4261931c644e6282c480a11d62f;p=swftools.git diff --git a/lib/q.h b/lib/q.h index 52d6392..58064f3 100644 --- a/lib/q.h +++ b/lib/q.h @@ -28,7 +28,7 @@ extern "C" { #endif -#define NEW(t,y) t*y = (t*)malloc(sizeof(t));memset(y, 0, sizeof(t)); +#define NEW(t,y) t*y = (t*)rfx_calloc(sizeof(t)); /* dynamically growing mem section */ typedef struct _mem_t { @@ -203,14 +203,17 @@ struct _##x##_list { \ struct _##x##_list*next; \ }; \ typedef struct _##x##_list x##_list_t; -int list_length(void*_list); +int list_length_(void*_list); void*list_clone_(void*_list); void list_append_(void*_list, void*entry); +void list_prepend_(void*_list, void*entry); void list_free_(void*_list); #define list_new() ((void*)0) #define list_append(list, e) {sizeof((list)->next);list_append_(&(list),(e));} +#define list_prepend(list, e) {sizeof((list)->next);list_prepend_(&(list),(e));} #define list_free(list) {sizeof((list)->next);list_free_(&(list));} #define list_clone(list) (sizeof((list)->next),list_clone_(&(list))) +#define list_length(list) (sizeof((list)->next),list_length_(list)) #ifdef __cplusplus }