diff --git a/src/xpdev/link_list.c b/src/xpdev/link_list.c index ee899af2b0bd1a21adbc5e55078e67075954028a..8fef39394f96af6cfe8705cf43e1c6062bcfe2fa 100644 --- a/src/xpdev/link_list.c +++ b/src/xpdev/link_list.c @@ -39,8 +39,10 @@ #include <string.h> /* memset */ #include "link_list.h" -link_list_t* listInit(link_list_t* list, unsigned long flags) +link_list_t* listInit(link_list_t* list) { + unsigned long flags=0; + if(flags&LINK_LIST_MALLOC || list==NULL) { if((list=(link_list_t*)malloc(sizeof(link_list_t)))==NULL) return(NULL); diff --git a/src/xpdev/link_list.h b/src/xpdev/link_list.h index 9cb107dc349cbcbbc702d9cfd6c740224d60776b..e152356746c5b0648e39783eb0e53d3ebc806d8a 100644 --- a/src/xpdev/link_list.h +++ b/src/xpdev/link_list.h @@ -59,12 +59,12 @@ typedef struct list_node { typedef struct { list_node_t* first; /* first node in list (or NULL) */ list_node_t* last; /* last node in list (or NULL) */ - unsigned long flags; /* flags passed to listInit() */ + unsigned long flags; /* private use flags */ long count; /* number of nodes in list */ } link_list_t; /* Initialization, Allocation, and Freeing of Lists and Nodes */ -link_list_t* listInit(link_list_t*, unsigned long flags); +link_list_t* listInit(link_list_t* /* NULL to auto-allocate */); link_list_t* listFree(link_list_t*); void listFreeNodes(link_list_t*); void listFreeNodeData(list_node_t* node);