Implement twalk(3), add unit tests.

I've also added insque(3) and remque(3) (from NetBSD because the OpenBSD
ones are currently broken for non-circular lists).

I've not added the three hash table functions that should be in this header
because they operate on a single global hash table and thus aren't likely
to be useful.

Bug: https://code.google.com/p/android/issues/detail?id=73719

(cherry picked from commit 3e424d0a24)

Change-Id: I5882a6b48c80fea8ac6b9c27e7b9de10b202b4ff
This commit is contained in:
Elliott Hughes
2014-07-23 16:02:26 -07:00
parent 5ade7e3f6b
commit b902641d73
14 changed files with 534 additions and 213 deletions

View File

@@ -19,7 +19,7 @@
#include <stdlib.h>
// Destroy a tree and free all allocated resources.
// This is a GNU extension, not available from NetBSD.
// This is a GNU extension, not available from BSD.
void tdestroy(void* root, void (*destroy_func)(void*)) {
node_t* root_node = (node_t*) root;
if (root_node == NULL) {