usr.bin/make typedef function pointer types to clarify paramters.
Max Okumoto
okumoto at ucsd.edu
Wed Dec 1 16:00:24 PST 2004
Use typedefs for the types of the functions that are passed as arguments
to the list functions for better readability.
Max
---------------------
PatchSet 383
Date: 2004/11/29 12:17:12
Author: harti
Log:
Use typedefs for the types of the functions that are passed as arguments
to the list functions for better readability.
Submitted by: Max Okumoto <okumoto at xxxxxxxx>
Members:
for.c:1.21->1.22
lst.h:1.16->1.17
main.c:1.100->1.101
parse.c:1.58->1.59
lst.lib/lstDestroy.c:1.14->1.15
lst.lib/lstDupl.c:1.14->1.15
lst.lib/lstFind.c:1.13->1.14
lst.lib/lstFindFrom.c:1.14->1.15
lst.lib/lstForEach.c:1.12->1.13
lst.lib/lstForEachFrom.c:1.14->1.15
Index: for.c
===================================================================
RCS file: /usr/home/okumoto/Work/make/fbsd-cvs/src/usr.bin/make/for.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- for.c 10 Mar 2004 21:51:06 -0000 1.21
+++ for.c 29 Nov 2004 12:17:12 -0000 1.22
@@ -293,6 +293,6 @@
Lst_ForEach(arg.lst, ForExec, (void *) &arg);
free(arg.var);
- Lst_Destroy(arg.lst, (void (*)(void *)) free);
+ Lst_Destroy(arg.lst, free);
Buf_Destroy(arg.buf, TRUE);
}
Index: lst.h
===================================================================
RCS file: /usr/home/okumoto/Work/make/fbsd-cvs/src/usr.bin/make/lst.h,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- lst.h 29 Nov 2004 08:38:16 -0000 1.16
+++ lst.h 29 Nov 2004 12:17:12 -0000 1.17
@@ -93,13 +93,18 @@
};
typedef struct Lst *Lst;
+typedef int CompareProc(void *, void *);
+typedef int DoProc(void *, void *);
+typedef void *DuplicateProc(void *);
+typedef void FreeProc(void *);
+
/*
* NOFREE can be used as the freeProc to Lst_Destroy when the elements are
* not to be freed.
* NOCOPY performs similarly when given as the copyProc to Lst_Duplicate.
*/
-#define NOFREE ((void (*)(void *)) 0)
-#define NOCOPY ((void * (*)(void *)) 0)
+#define NOFREE ((FreeProc *)NULL)
+#define NOCOPY ((DuplicateProc *)NULL)
#define LST_CONCNEW 0 /* create new LstNode's when using Lst_Concat */
#define LST_CONCLINK 1 /* relink LstNode's when using Lst_Concat */
@@ -110,9 +115,9 @@
/* Create a new list */
Lst Lst_Init(Boolean);
/* Duplicate an existing list */
-Lst Lst_Duplicate(Lst, void * (*)(void *));
+Lst Lst_Duplicate(Lst, DuplicateProc *);
/* Destroy an old one */
-void Lst_Destroy(Lst, void (*)(void *));
+void Lst_Destroy(Lst, FreeProc *);
/*
* Functions to modify a list
@@ -148,22 +153,22 @@
* Functions for entire lists
*/
/* Find an element in a list */
-LstNode Lst_Find(Lst, void *, int (*)(void *, void *));
+LstNode Lst_Find(Lst, void *, CompareProc *);
/* Find an element starting from somewhere */
-LstNode Lst_FindFrom(Lst, LstNode, void *, int (*cProc)(void *, void *));
+LstNode Lst_FindFrom(Lst, LstNode, void *, CompareProc *);
/*
* See if the given datum is on the list. Returns the LstNode containing
* the datum
*/
LstNode Lst_Member(Lst, void *);
/* Apply a function to all elements of a lst */
-void Lst_ForEach(Lst, int (*)(void *, void *), void *);
+void Lst_ForEach(Lst, DoProc *, void *);
/*
* Apply a function to all elements of a lst starting from a certain point.
* If the list is circular, the application will wrap around to the
* beginning of the list again.
*/
-void Lst_ForEachFrom(Lst, LstNode, int (*)(void *, void *), void *);
+void Lst_ForEachFrom(Lst, LstNode, DoProc *, void *);
/*
* these functions are for dealing with a list as a table, of sorts.
* An idea of the "current element" is kept and used by all the functions
Index: main.c
===================================================================
RCS file: /usr/home/okumoto/Work/make/fbsd-cvs/src/usr.bin/make/main.c,v
retrieving revision 1.100
retrieving revision 1.101
diff -u -r1.100 -r1.101
--- main.c 25 Nov 2004 12:50:16 -0000 1.100
+++ main.c 29 Nov 2004 12:17:12 -0000 1.101
@@ -874,7 +874,7 @@
Lst_Destroy(variables, NOFREE);
Lst_Destroy(makefiles, NOFREE);
- Lst_Destroy(create, (void (*) (void *)) free);
+ Lst_Destroy(create, free);
/* print the graph now it's been processed if the user requested it */
if (DEBUG(GRAPH2))
Index: parse.c
===================================================================
RCS file: /usr/home/okumoto/Work/make/fbsd-cvs/src/usr.bin/make/parse.c,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -r1.58 -r1.59
--- parse.c 17 Nov 2004 11:32:46 -0000 1.58
+++ parse.c 29 Nov 2004 12:17:12 -0000 1.59
@@ -2536,7 +2536,7 @@
void
Parse_End (void)
{
- Lst_Destroy(targCmds, (void (*) (void *)) free);
+ Lst_Destroy(targCmds, free);
if (targets)
Lst_Destroy(targets, NOFREE);
Lst_Destroy(sysIncPath, Dir_Destroy);
Index: lst.lib/lstDestroy.c
===================================================================
RCS file: /usr/home/okumoto/Work/make/fbsd-cvs/src/usr.bin/make/lst.lib/lstDestroy.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- lst.lib/lstDestroy.c 29 Nov 2004 08:38:16 -0000 1.14
+++ lst.lib/lstDestroy.c 29 Nov 2004 12:17:13 -0000 1.15
@@ -65,7 +65,7 @@
*-----------------------------------------------------------------------
*/
void
-Lst_Destroy(Lst list, void (*freeProc)(void *))
+Lst_Destroy(Lst list, FreeProc *freeProc)
{
LstNode ln;
LstNode tln = NULL;
Index: lst.lib/lstDupl.c
===================================================================
RCS file: /usr/home/okumoto/Work/make/fbsd-cvs/src/usr.bin/make/lst.lib/lstDupl.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- lst.lib/lstDupl.c 29 Nov 2004 08:38:16 -0000 1.14
+++ lst.lib/lstDupl.c 29 Nov 2004 12:17:13 -0000 1.15
@@ -68,7 +68,7 @@
*-----------------------------------------------------------------------
*/
Lst
-Lst_Duplicate(Lst list, void *(*copyProc)(void *))
+Lst_Duplicate(Lst list, DuplicateProc *copyProc)
{
Lst nl;
LstNode ln;
Index: lst.lib/lstFind.c
===================================================================
RCS file: /usr/home/okumoto/Work/make/fbsd-cvs/src/usr.bin/make/lst.lib/lstFind.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- lst.lib/lstFind.c 29 Nov 2004 08:38:16 -0000 1.13
+++ lst.lib/lstFind.c 29 Nov 2004 12:17:13 -0000 1.14
@@ -64,7 +64,7 @@
*-----------------------------------------------------------------------
*/
LstNode
-Lst_Find(Lst l, void *d, int (*cProc)(void *, void *))
+Lst_Find(Lst l, void *d, CompareProc *cProc)
{
return (Lst_FindFrom (l, Lst_First(l), d, cProc));
Index: lst.lib/lstFindFrom.c
===================================================================
RCS file: /usr/home/okumoto/Work/make/fbsd-cvs/src/usr.bin/make/lst.lib/lstFindFrom.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- lst.lib/lstFindFrom.c 29 Nov 2004 08:38:16 -0000 1.14
+++ lst.lib/lstFindFrom.c 29 Nov 2004 12:17:13 -0000 1.15
@@ -65,7 +65,7 @@
*-----------------------------------------------------------------------
*/
LstNode
-Lst_FindFrom(Lst l, LstNode ln, void *d, int (*cProc)(void *, void *))
+Lst_FindFrom(Lst l, LstNode ln, void *d, CompareProc *cProc)
{
LstNode tln;
Boolean found = FALSE;
Index: lst.lib/lstForEach.c
===================================================================
RCS file: /usr/home/okumoto/Work/make/fbsd-cvs/src/usr.bin/make/lst.lib/lstForEach.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- lst.lib/lstForEach.c 29 Nov 2004 08:38:16 -0000 1.12
+++ lst.lib/lstForEach.c 29 Nov 2004 12:17:13 -0000 1.13
@@ -65,7 +65,7 @@
*-----------------------------------------------------------------------
*/
void
-Lst_ForEach(Lst l, int (*proc)(void *, void *), void *d)
+Lst_ForEach(Lst l, DoProc *proc, void *d)
{
Lst_ForEachFrom(l, Lst_First(l), proc, d);
Index: lst.lib/lstForEachFrom.c
===================================================================
RCS file: /usr/home/okumoto/Work/make/fbsd-cvs/src/usr.bin/make/lst.lib/lstForEachFrom.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- lst.lib/lstForEachFrom.c 29 Nov 2004 08:38:16 -0000 1.14
+++ lst.lib/lstForEachFrom.c 29 Nov 2004 12:17:13 -0000 1.15
@@ -66,7 +66,7 @@
*-----------------------------------------------------------------------
*/
void
-Lst_ForEachFrom(Lst list, LstNode ln, int (*proc)(void *, void *), void *d)
+Lst_ForEachFrom(Lst list, LstNode ln, DoProc *proc, void *d)
{
LstNode next;
Boolean done;
More information about the Submit
mailing list