diff --git a/src/xpdev/link_list.c b/src/xpdev/link_list.c index 9c449199325447e235f53f30dbebe75386a0adce..248439d14d465855d73b6d6c1b103889e004b536 100644 --- a/src/xpdev/link_list.c +++ b/src/xpdev/link_list.c @@ -29,7 +29,7 @@ #define free(ptr) HeapFree(GetProcessHeap(), /* flags: */ 0, ptr) #endif -link_list_t* listInit(link_list_t* list, long flags) +link_list_t* listInit(link_list_t* list, int flags) { if (list == NULL) return NULL; @@ -63,7 +63,7 @@ bool listFreeNodeData(list_node_t* node) return false; } -long listFreeNodes(link_list_t* list) +int listFreeNodes(link_list_t* list) { list_node_t* node; list_node_t* next; @@ -126,7 +126,7 @@ bool listFree(link_list_t* list) return true; } -long listAttach(link_list_t* list) +int listAttach(link_list_t* list) { if (list == NULL) return -1; @@ -138,7 +138,7 @@ long listAttach(link_list_t* list) return list->refs; } -long listDettach(link_list_t* list) +int listDettach(link_list_t* list) { int refs; @@ -206,7 +206,7 @@ bool listSemTryWait(link_list_t* list) return sem_trywait(&list->sem) == 0; } -bool listSemTryWaitBlock(link_list_t* list, unsigned long timeout) +bool listSemTryWaitBlock(link_list_t* list, unsigned int timeout) { if (list == NULL || !(list->flags & LINK_LIST_SEMAPHORE)) return false; @@ -249,9 +249,9 @@ bool listUnlock(link_list_t* list) return ret == 0; } -long listCountNodes(link_list_t* list) +int listCountNodes(link_list_t* list) { - long count = 0; + int count = 0; list_node_t* node; if (list == NULL) @@ -295,10 +295,10 @@ list_node_t* listFindNode(link_list_t* list, const void* data, size_t length) return node; } -ulong listCountMatches(link_list_t* list, const void* data, size_t length) +uint listCountMatches(link_list_t* list, const void* data, size_t length) { list_node_t* node; - ulong matches = 0; + uint matches = 0; if (list == NULL) return 0; @@ -348,9 +348,9 @@ str_list_t listStringList(link_list_t* list) return str_list; } -str_list_t listSubStringList(const list_node_t* node, long max) +str_list_t listSubStringList(const list_node_t* node, int max) { - long count; + int count; str_list_t str_list; link_list_t* list; @@ -414,9 +414,9 @@ list_node_t* listLastNode(link_list_t* list) return last; } -long listNodeIndex(link_list_t* list, list_node_t* find_node) +int listNodeIndex(link_list_t* list, list_node_t* find_node) { - long i = 0; + int i = 0; list_node_t* node; if (list == NULL) @@ -436,9 +436,9 @@ long listNodeIndex(link_list_t* list, list_node_t* find_node) return i; } -list_node_t* listNodeAt(link_list_t* list, long index) +list_node_t* listNodeAt(link_list_t* list, int index) { - long i = 0; + int i = 0; list_node_t* node; if (list == NULL || index < 0) @@ -569,7 +569,7 @@ static list_node_t* list_add_node(link_list_t* list, list_node_t* node, list_nod return node; } -list_node_t* listAddNodeWithFlags(link_list_t* list, void* data, list_node_tag_t tag, long flags, list_node_t* after) +list_node_t* listAddNodeWithFlags(link_list_t* list, void* data, list_node_tag_t tag, int flags, list_node_t* after) { list_node_t* node; @@ -592,9 +592,9 @@ list_node_t* listAddNode(link_list_t* list, void* data, list_node_tag_t tag, lis return listAddNodeWithFlags(list, data, tag, 0, after); } -long listAddNodes(link_list_t* list, void** data, list_node_tag_t* tag, list_node_t* after) +int listAddNodes(link_list_t* list, void** data, list_node_tag_t* tag, list_node_t* after) { - long i; + int i; list_node_t* node = NULL; if (data == NULL) @@ -645,9 +645,9 @@ list_node_t* listAddNodeString(link_list_t* list, const char* str, list_node_tag #ifndef NO_STR_LIST_SUPPORT -long listAddStringList(link_list_t* list, str_list_t str_list, list_node_tag_t* tag, list_node_t* after) +int listAddStringList(link_list_t* list, str_list_t str_list, list_node_tag_t* tag, list_node_t* after) { - long i; + int i; list_node_t* node = NULL; if (str_list == NULL) @@ -662,9 +662,9 @@ long listAddStringList(link_list_t* list, str_list_t str_list, list_node_tag_t* #endif -long listAddNodeList(link_list_t* list, const link_list_t* src, list_node_t* after) +int listAddNodeList(link_list_t* list, const link_list_t* src, list_node_t* after) { - long count = 0; + int count = 0; list_node_t* node = NULL; list_node_t* src_node; @@ -679,9 +679,9 @@ long listAddNodeList(link_list_t* list, const link_list_t* src, list_node_t* aft return count; } -long listMerge(link_list_t* list, const link_list_t* src, list_node_t* after) +int listMerge(link_list_t* list, const link_list_t* src, list_node_t* after) { - long count = 0; + int count = 0; list_node_t* node = NULL; list_node_t* src_node; @@ -695,9 +695,9 @@ long listMerge(link_list_t* list, const link_list_t* src, list_node_t* after) return count; } -link_list_t* listExtract(link_list_t* dest_list, const list_node_t* node, long max) +link_list_t* listExtract(link_list_t* dest_list, const list_node_t* node, int max) { - long count; + int count; link_list_t* list; if (node == NULL || node->list == NULL) @@ -785,10 +785,10 @@ void* listRemoveTaggedNode(link_list_t* list, list_node_tag_t tag, bool free_dat return data; } -long listRemoveNodes(link_list_t* list, list_node_t* node, long max, bool free_data) +int listRemoveNodes(link_list_t* list, list_node_t* node, int max, bool free_data) { list_node_t *next_node; - long count; + int count; if (list == NULL) return -1; @@ -899,11 +899,11 @@ void listReverse(link_list_t* list) listUnlock(list); } -long listVerify(link_list_t* list) +int listVerify(link_list_t* list) { list_node_t* node; list_node_t* prev = NULL; - long result = 0; + int result = 0; if (list == NULL) return -1; @@ -942,7 +942,7 @@ long listVerify(link_list_t* list) int main(int arg, char** argv) { int i; - long result; + int result; char* p; char str[32]; link_list_t list; diff --git a/src/xpdev/link_list.h b/src/xpdev/link_list.h index 3a12ffc0f5f7af34bcd0809e801195099b910a63..901c73f358d2949b171fa855cb203a0945c454aa 100644 --- a/src/xpdev/link_list.h +++ b/src/xpdev/link_list.h @@ -49,7 +49,7 @@ extern "C" { /* in case the default tag type is not sufficient for your needs, you can over-ride */ #if !defined(list_node_tag_t) -typedef long list_node_tag_t; +typedef int list_node_tag_t; #endif #if !defined(LIST_NODE_TAG_DEFAULT) #define LIST_NODE_TAG_DEFAULT 0 @@ -60,18 +60,18 @@ typedef struct list_node { struct list_node* next; /* next node in list (or NULL) */ struct list_node* prev; /* previous node in list (or NULL) */ struct link_list* list; - unsigned long flags; /* private use flags (by this library) */ + unsigned int flags; /* private use flags (by this library) */ list_node_tag_t tag; /* application use value */ } list_node_t; typedef struct link_list { list_node_t* first; /* first node in list (or NULL) */ list_node_t* last; /* last node in list (or NULL) */ - unsigned long flags; /* private use flags (by this library) */ - long count; /* number of nodes in list */ + unsigned int flags; /* private use flags (by this library) */ + int count; /* number of nodes in list */ void* private_data; /* for use by the application/caller */ - long refs; /* reference counter (attached clients) */ - long locks; /* recursive lock counter */ + int refs; /* reference counter (attached clients) */ + int locks; /* recursive lock counter */ #if defined(LINK_LIST_THREADSAFE) pthread_mutex_t mutex; sem_t sem; @@ -79,20 +79,20 @@ typedef struct link_list { } link_list_t; /* Initialization, Allocation, and Freeing of Lists and Nodes */ -DLLEXPORT link_list_t* listInit(link_list_t* /* NULL to auto-allocate */, long flags); +DLLEXPORT link_list_t* listInit(link_list_t* /* NULL to auto-allocate */, int flags); DLLEXPORT bool listFree(link_list_t*); -DLLEXPORT long listFreeNodes(link_list_t*); +DLLEXPORT int listFreeNodes(link_list_t*); DLLEXPORT bool listFreeNodeData(list_node_t* node); /* Increment/decrement reference counter (and auto-free when zero), returns -1 on error */ -DLLEXPORT long listAttach(link_list_t*); -DLLEXPORT long listDetach(link_list_t*); +DLLEXPORT int listAttach(link_list_t*); +DLLEXPORT int listDetach(link_list_t*); #if defined(LINK_LIST_THREADSAFE) DLLEXPORT bool listSemPost(link_list_t*); DLLEXPORT bool listSemWait(link_list_t*); DLLEXPORT bool listSemTryWait(link_list_t*); -DLLEXPORT bool listSemTryWaitBlock(link_list_t*, unsigned long timeout); +DLLEXPORT bool listSemTryWaitBlock(link_list_t*, unsigned int timeout); #endif /* Lock/unlock linked lists (works best for mutex-protected lists) */ @@ -103,8 +103,8 @@ DLLEXPORT bool listIsLocked(const link_list_t*); #define listForceUnlock(list) while (listUnlock(list) == TRUE) /* Return count or index of nodes, or -1 on error */ -DLLEXPORT long listCountNodes(link_list_t*); -DLLEXPORT long listNodeIndex(link_list_t*, list_node_t*); +DLLEXPORT int listCountNodes(link_list_t*); +DLLEXPORT int listNodeIndex(link_list_t*, list_node_t*); /* Get/Set list private data */ DLLEXPORT void* listSetPrivateData(link_list_t*, void*); @@ -114,24 +114,24 @@ DLLEXPORT void* listGetPrivateData(link_list_t*); DLLEXPORT str_list_t listStringList(link_list_t*); /* Return an allocated string list (which must be freed), subset of strings in linked list */ -DLLEXPORT str_list_t listSubStringList(const list_node_t*, long max); +DLLEXPORT str_list_t listSubStringList(const list_node_t*, int max); /* Free a string list returned from either of the above functions */ DLLEXPORT void* listFreeStringList(str_list_t); /* Extract subset (up to max number of nodes) in linked list (src_node) and place into dest_list */ /* dest_list == NULL, then allocate a return a new linked list */ -DLLEXPORT link_list_t* listExtract(link_list_t* dest_list, const list_node_t* src_node, long max); +DLLEXPORT link_list_t* listExtract(link_list_t* dest_list, const list_node_t* src_node, int max); /* Simple search functions returning found node or NULL on error */ -DLLEXPORT list_node_t* listNodeAt(link_list_t*, long index); +DLLEXPORT list_node_t* listNodeAt(link_list_t*, int index); /* Find a specific node by data or tag */ /* Pass length of 0 to search by data pointer rather than by data content comparison (memcmp) */ DLLEXPORT list_node_t* listFindNode(link_list_t*, const void* data, size_t length); /* Find a specific node by its tag value */ #define listFindTaggedNode(list, tag) listFindNode(list, NULL, tag) /* Pass length of 0 to search by data pointer rather than by data content comparison (memcmp) */ -DLLEXPORT ulong listCountMatches(link_list_t*, const void* data, size_t length); +DLLEXPORT uint listCountMatches(link_list_t*, const void* data, size_t length); /* Convenience functions */ DLLEXPORT list_node_t* listFirstNode(link_list_t*); @@ -149,11 +149,11 @@ DLLEXPORT bool listNodeIsLocked(const list_node_t*); DLLEXPORT list_node_t* listAddNode(link_list_t*, void* data, list_node_tag_t, list_node_t * after /* NULL=insert */); /* Add node to list with flags, returns pointer to new node or NULL on error */ -DLLEXPORT list_node_t* listAddNodeWithFlags(link_list_t*, void* data, list_node_tag_t, long flags, list_node_t * after /* NULL=insert */); +DLLEXPORT list_node_t* listAddNodeWithFlags(link_list_t*, void* data, list_node_tag_t, int flags, list_node_t * after /* NULL=insert */); /* Add array of node data to list, returns number of nodes added (or negative on error) */ /* tag array may be NULL */ -DLLEXPORT long listAddNodes(link_list_t*, void** data, list_node_tag_t*, list_node_t* after /* NULL=insert */); +DLLEXPORT int listAddNodes(link_list_t*, void** data, list_node_tag_t*, list_node_t* after /* NULL=insert */); /* Add node to list, allocating and copying the data for the node */ DLLEXPORT list_node_t* listAddNodeData(link_list_t*, const void* data, size_t length, list_node_tag_t, list_node_t * after); @@ -163,17 +163,17 @@ DLLEXPORT list_node_t* listAddNodeString(link_list_t*, const char* str, list_nod /* Add a list of strings to the linked list, allocating and copying each */ /* tag array may be NULL */ -DLLEXPORT long listAddStringList(link_list_t*, str_list_t, list_node_tag_t*, list_node_t * after); +DLLEXPORT int listAddStringList(link_list_t*, str_list_t, list_node_tag_t*, list_node_t * after); /* Add a list of nodes from a source linked list */ -DLLEXPORT long listAddNodeList(link_list_t*, const link_list_t* src, list_node_t* after); +DLLEXPORT int listAddNodeList(link_list_t*, const link_list_t* src, list_node_t* after); /* Merge a source linked list into the destination linked list */ /* after merging, the nodes in the source linked list should not be modified or freed */ -DLLEXPORT long listMerge(link_list_t* dest, const link_list_t* src, list_node_t* after); +DLLEXPORT int listMerge(link_list_t* dest, const link_list_t* src, list_node_t* after); /* Swap the data pointers and flags for 2 nodes (possibly in separate lists) */ -DLLEXPORT bool listSwapNodes(list_node_t* node1, list_node_t* node2); +DLLEXPORT bool listSwapNodes(list_node_t* node1, list_node_t* node2); /* Convenience macros for pushing, popping, and inserting nodes */ #define listPushNode(list, data) listAddNode(list, data, LIST_NODE_TAG_DEFAULT, LAST_NODE) @@ -192,13 +192,13 @@ DLLEXPORT void* listRemoveNode(link_list_t*, list_node_t* /* NULL=first */, bool DLLEXPORT void* listRemoveTaggedNode(link_list_t*, list_node_tag_t, bool free_data); /* Remove multiple nodes from list, returning the number of nodes removed */ -DLLEXPORT long listRemoveNodes(link_list_t*, list_node_t* /* NULL=first */, long count, bool free_data); +DLLEXPORT int listRemoveNodes(link_list_t*, list_node_t* /* NULL=first */, int count, bool free_data); /* Reverse the nodes in a list */ DLLEXPORT void listReverse(link_list_t*); /* Return >= 0 (count of nodes) if list is valid, negative otherwise */ -DLLEXPORT long listVerify(link_list_t*); +DLLEXPORT int listVerify(link_list_t*); #if defined(__cplusplus) }