summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/search.h3
-rw-r--r--lib/libc/stdlib/tdelete.c16
-rw-r--r--lib/libc/stdlib/tsearch.32
3 files changed, 13 insertions, 8 deletions
diff --git a/include/search.h b/include/search.h
index 75f59bf..f0ef443 100644
--- a/include/search.h
+++ b/include/search.h
@@ -44,7 +44,8 @@ __BEGIN_DECLS
int hcreate(size_t);
void hdestroy(void);
ENTRY *hsearch(ENTRY, ACTION);
-void *tdelete(const void *, void **, int (*)(const void *, const void *));
+void *tdelete(const void *__restrict, void **__restrict,
+ int (*)(const void *, const void *));
void *tfind(const void *, void **, int (*)(const void *, const void *));
void *tsearch(const void *, void **, int (*)(const void *, const void *));
void twalk(const void *, void (*)(const void *, VISIT, int));
diff --git a/lib/libc/stdlib/tdelete.c b/lib/libc/stdlib/tdelete.c
index 32dc298..5729bd5 100644
--- a/lib/libc/stdlib/tdelete.c
+++ b/lib/libc/stdlib/tdelete.c
@@ -25,16 +25,20 @@ __FBSDID("$FreeBSD$");
#include <stdlib.h>
-/* delete node with given key */
+/*
+ * delete node with given key
+ *
+ * vkey: key to be deleted
+ * vrootp: address of the root of the tree
+ * compar: function to carry out node comparisons
+ */
void *
-tdelete(vkey, vrootp, compar)
- const void *vkey; /* key to be deleted */
- void **vrootp; /* address of the root of tree */
- int (*compar)(const void *, const void *);
+tdelete(const void *__restrict vkey, void **__restrict vrootp,
+ int (*compar)(const void *, const void *))
{
node_t **rootp = (node_t **)vrootp;
node_t *p, *q, *r;
- int cmp;
+ int cmp;
if (rootp == NULL || (p = *rootp) == NULL)
return NULL;
diff --git a/lib/libc/stdlib/tsearch.3 b/lib/libc/stdlib/tsearch.3
index 87a2571..06ff720 100644
--- a/lib/libc/stdlib/tsearch.3
+++ b/lib/libc/stdlib/tsearch.3
@@ -36,7 +36,7 @@
.Sh SYNOPSIS
.In search.h
.Ft void *
-.Fn tdelete "const void *key" "void **rootp" "int (*compar) (const void *, const void *)"
+.Fn tdelete "const void *restrict key" "void **restrict rootp" "int (*compar) (const void *, const void *)"
.Ft void *
.Fn tfind "const void *key" "void **rootp" "int (*compar) (const void *, const void *)"
.Ft void *
OpenPOWER on IntegriCloud