diff options
author | 2004-05-05 09:10:47 +0000 | |
---|---|---|
committer | 2004-05-05 09:10:47 +0000 | |
commit | 55491c7578fb876c6c35a0ced3197fff3b7d5397 (patch) | |
tree | f8e0109447e3442f8282e49347e3cd7d3bdc910f | |
parent | regen (diff) | |
download | wireguard-openbsd-55491c7578fb876c6c35a0ced3197fff3b7d5397.tar.xz wireguard-openbsd-55491c7578fb876c6c35a0ced3197fff3b7d5397.zip |
constify char *.
Add lookup functions for suffixes and transforms, and stat them.
okay otto@
-rw-r--r-- | usr.bin/make/stats.c | 7 | ||||
-rw-r--r-- | usr.bin/make/stats.h | 9 | ||||
-rw-r--r-- | usr.bin/make/suff.c | 94 | ||||
-rw-r--r-- | usr.bin/make/suff.h | 12 |
4 files changed, 66 insertions, 56 deletions
diff --git a/usr.bin/make/stats.c b/usr.bin/make/stats.c index 37edb4c6df1..8d57044780c 100644 --- a/usr.bin/make/stats.c +++ b/usr.bin/make/stats.c @@ -1,5 +1,5 @@ /* $OpenPackages$ */ -/* $OpenBSD: stats.c,v 1.7 2004/04/07 13:11:36 espie Exp $ */ +/* $OpenBSD: stats.c,v 1.8 2004/05/05 09:10:47 espie Exp $ */ /* * Copyright (c) 1999 Marc Espie. @@ -106,6 +106,11 @@ print_stats(void) #ifdef STATS_GN_CREATION fprintf(stderr, "Average GN: %f\n", average_runs(STAT_GN_COUNT)); #endif +#ifdef STATS_SUFF + fprintf(stderr, "Average Suffix lookup: %f, transforms: %f\n", + average_runs(STAT_SUFF_LOOKUP_NAME), + average_runs(STAT_TRANSFORM_LOOKUP_NAME)); +#endif #ifdef STATS_BUF fprintf(stderr, "Buf tot: %f, def: %f, exp %f, weird %f, bad %f\n", average_runs(STAT_TOTAL_BUFS), diff --git a/usr.bin/make/stats.h b/usr.bin/make/stats.h index e6083dbe8b1..f1f8520889c 100644 --- a/usr.bin/make/stats.h +++ b/usr.bin/make/stats.h @@ -1,7 +1,7 @@ #ifndef STAT_H #define STAT_H /* $OpenPackages$ */ -/* $OpenBSD: stats.h,v 1.3 2001/06/12 22:44:22 espie Exp $ */ +/* $OpenBSD: stats.h,v 1.4 2004/05/05 09:10:47 espie Exp $ */ /* * Copyright (c) 1999 Marc Espie. @@ -36,7 +36,8 @@ defined(STATS_GN_CREATION) || \ defined(STATS_BUF) || \ defined(STATS_HASH) || \ - defined(STATS_GROW) + defined(STATS_GROW) || \ + defined(STATS_SUFF) #define HAS_STATS #endif @@ -73,8 +74,10 @@ extern unsigned long *statarray; #define STAT_VAR_GHASH_MAXSIZE statarray[26] #define STAT_VAR_POWER statarray[27] #define STAT_GROWARRAY statarray[28] +#define STAT_SUFF_LOOKUP_NAME statarray[29] +#define STAT_TRANSFORM_LOOKUP_NAME statarray[30] -#define STAT_NUMBER 30 +#define STAT_NUMBER 32 #else #define Init_Stats() diff --git a/usr.bin/make/suff.c b/usr.bin/make/suff.c index f25620b63d9..834f7b9916c 100644 --- a/usr.bin/make/suff.c +++ b/usr.bin/make/suff.c @@ -1,5 +1,5 @@ /* $OpenPackages$ */ -/* $OpenBSD: suff.c,v 1.51 2004/04/07 13:11:36 espie Exp $ */ +/* $OpenBSD: suff.c,v 1.52 2004/05/05 09:10:47 espie Exp $ */ /* $NetBSD: suff.c,v 1.13 1996/11/06 17:59:25 christos Exp $ */ /* @@ -104,6 +104,7 @@ #include "memory.h" #include "gnode.h" #include "make.h" +#include "stats.h" static LIST sufflist; /* Lst of suffixes */ #ifdef CLEANUP @@ -165,9 +166,9 @@ static Suff *emptySuff; /* The empty suffix required for POSIX static char *SuffStrIsPrefix(const char *, const char *); static char *SuffSuffIsSuffix(Suff *, const char *); static int SuffSuffIsSuffixP(void *, const void *); -static int SuffSuffHasNameP(void *, const void *); static int SuffSuffIsPrefix(void *, const void *); -static int SuffGNHasNameP(void *, const void *); +static int SuffHasNameP(void *, const void *); +static int GNodeHasNameP(void *, const void *); static void SuffUnRef(Lst, Suff *); #ifdef CLEANUP static void SuffFree(void *); @@ -191,6 +192,9 @@ static void SuffPrintName(void *); static void SuffPrintSuff(void *); static void SuffPrintTrans(void *); +static LstNode suff_find_by_name(const char *); +static LstNode transform_find_by_name(const char *); + #ifdef DEBUG_SRC static void PrintAddr(void *); #endif @@ -261,22 +265,35 @@ SuffSuffIsSuffixP(void *s, const void *str) return !SuffSuffIsSuffix((Suff *)s, (const char *)str); } -/*- - *----------------------------------------------------------------------- - * SuffSuffHasNameP -- - * Callback procedure for finding a suffix based on its name. Used by - * Suff_GetPath. - * - * Results: - * 0 if the suffix is of the given name. non-zero otherwise. - *----------------------------------------------------------------------- - */ static int -SuffSuffHasNameP(void *s, const void *sname) +SuffHasNameP(void *s, const void *sname) { return strcmp((const char *)sname, ((Suff *)s)->name); } +static LstNode +suff_find_by_name(const char *name) +{ +#ifdef STATS_SUFF + STAT_SUFF_LOOKUP_NAME++; +#endif + return Lst_FindConst(&sufflist, SuffHasNameP, name); +} + +static int +GNodeHasNameP(void *gn, const void *name) +{ + return strcmp((const char *)name, ((GNode *)gn)->name); +} + +static LstNode +transform_find_by_name(const char *name) +{ +#ifdef STATS_SUFF + STAT_TRANSFORM_LOOKUP_NAME++; +#endif + return Lst_FindConst(&transforms, GNodeHasNameP, name); +} /*- *----------------------------------------------------------------------- * SuffSuffIsPrefix -- @@ -295,21 +312,6 @@ SuffSuffIsPrefix(void *s, const void *str) return SuffStrIsPrefix(((Suff *)s)->name, (const char *)str) == NULL ? 1 : 0; } -/*- - *----------------------------------------------------------------------- - * SuffGNHasNameP -- - * See if the graph node has the desired name - * - * Results: - * 0 if it does. non-zero if it doesn't - *----------------------------------------------------------------------- - */ -static int -SuffGNHasNameP(void *gn, const void *name) -{ - return strcmp((const char *)name, ((GNode *)gn)->name); -} - /*********** Maintenance Functions ************/ static void @@ -486,7 +488,7 @@ SuffParseTransform( single = src; singleLn = srcLn; } else { - targLn = Lst_FindConst(&sufflist, SuffSuffHasNameP, str2); + targLn = suff_find_by_name(str2); if (targLn != NULL) { *srcPtr = src; *targPtr = (Suff *)Lst_Datum(targLn); @@ -536,7 +538,7 @@ Suff_AddTransform(const char *line) *t; /* target suffix */ LstNode ln; /* Node for existing transformation */ - ln = Lst_FindConst(&transforms, SuffGNHasNameP, line); + ln = transform_find_by_name(line); if (ln == NULL) { /* * Make a new graph node for the transformation. It will be filled in @@ -652,7 +654,7 @@ SuffRebuildGraph( /* First see if it is a transformation from this suffix. */ cp = SuffStrIsPrefix(s->name, transform->name); if (cp != NULL) { - ln = Lst_FindConst(&sufflist, SuffSuffHasNameP, cp); + ln = suff_find_by_name(cp); if (ln != NULL) { /* Found target. Link in and return, since it can't be anything * else. */ @@ -668,7 +670,7 @@ SuffRebuildGraph( if (cp != NULL) { /* Null-terminate the source suffix in order to find it. */ *cp = '\0'; - ln = Lst_FindConst(&sufflist, SuffSuffHasNameP, transform->name); + ln = suff_find_by_name(transform->name); /* Replace the start of the target suffix. */ *cp = s->name[0]; if (ln != NULL) { @@ -692,12 +694,12 @@ SuffRebuildGraph( *----------------------------------------------------------------------- */ void -Suff_AddSuffix(char *str) +Suff_AddSuffix(const char *str) { Suff *s; /* new suffix descriptor */ LstNode ln; - ln = Lst_FindConst(&sufflist, SuffSuffHasNameP, str); + ln = suff_find_by_name(str); if (ln == NULL) { s = emalloc(sizeof(Suff)); @@ -730,12 +732,12 @@ Suff_AddSuffix(char *str) *----------------------------------------------------------------------- */ Lst -Suff_GetPath(char *sname) +Suff_GetPath(const char *sname) { LstNode ln; Suff *s; - ln = Lst_FindConst(&sufflist, SuffSuffHasNameP, sname); + ln = suff_find_by_name(sname); if (ln == NULL) { return NULL; } else { @@ -810,12 +812,12 @@ Suff_DoPaths(void) *----------------------------------------------------------------------- */ void -Suff_AddInclude(char *sname) /* Name of suffix to mark */ +Suff_AddInclude(const char *sname) /* Name of suffix to mark */ { LstNode ln; Suff *s; - ln = Lst_FindConst(&sufflist, SuffSuffHasNameP, sname); + ln = suff_find_by_name(sname); if (ln != NULL) { s = (Suff *)Lst_Datum(ln); s->flags |= SUFF_INCLUDE; @@ -835,12 +837,12 @@ Suff_AddInclude(char *sname) /* Name of suffix to mark */ *----------------------------------------------------------------------- */ void -Suff_AddLib(char *sname) /* Name of suffix to mark */ +Suff_AddLib(const char *sname) /* Name of suffix to mark */ { LstNode ln; Suff *s; - ln = Lst_FindConst(&sufflist, SuffSuffHasNameP, sname); + ln = suff_find_by_name(sname); if (ln != NULL) { s = (Suff *)Lst_Datum(ln); s->flags |= SUFF_LIBRARY; @@ -1100,7 +1102,7 @@ SuffFindCmds( /* The node matches the prefix ok, see if it has a known * suffix. */ LstNode ln2; - ln2 = Lst_FindConst(&sufflist, SuffSuffHasNameP, &cp[prefLen]); + ln2 = suff_find_by_name(&cp[prefLen]); if (ln2 != NULL) { /* * It even has a known suffix, see if there's a transformation @@ -1379,7 +1381,7 @@ SuffApplyTransform( } /* Locate the transformation rule itself. */ tname = Str_concat(s->name, t->name, 0); - ln = Lst_FindConst(&transforms, SuffGNHasNameP, tname); + ln = transform_find_by_name(tname); free(tname); if (ln == NULL) @@ -1881,7 +1883,7 @@ SuffFindDeps(GNode *gn, Lst slst) LstNode ln; Suff *s; - ln = Lst_FindConst(&sufflist, SuffSuffHasNameP, LIBSUFF); + ln = suff_find_by_name(LIBSUFF); if (ln != NULL) { gn->suffix = s = (Suff *)Lst_Datum(ln); Arch_FindLib(gn, &s->searchPath); @@ -1913,12 +1915,12 @@ SuffFindDeps(GNode *gn, Lst slst) *----------------------------------------------------------------------- */ void -Suff_SetNull(char *name) +Suff_SetNull(const char *name) { Suff *s; LstNode ln; - ln = Lst_FindConst(&sufflist, SuffSuffHasNameP, name); + ln = suff_find_by_name(name); if (ln != NULL) { s = (Suff *)Lst_Datum(ln); if (suffNull != NULL) { diff --git a/usr.bin/make/suff.h b/usr.bin/make/suff.h index d15b3f37bc4..977b839a0c1 100644 --- a/usr.bin/make/suff.h +++ b/usr.bin/make/suff.h @@ -1,7 +1,7 @@ #ifndef SUFF_H #define SUFF_H /* $OpenPackages$ */ -/* $OpenBSD: suff.h,v 1.1 2001/05/23 12:34:50 espie Exp $ */ +/* $OpenBSD: suff.h,v 1.2 2004/05/05 09:10:48 espie Exp $ */ /* * Copyright (c) 2001 Marc Espie. @@ -32,13 +32,13 @@ extern void Suff_ClearSuffixes(void); extern bool Suff_IsTransform(const char *); extern GNode *Suff_AddTransform(const char *); extern void Suff_EndTransform(void *); -extern void Suff_AddSuffix(char *); -extern Lst Suff_GetPath(char *); +extern void Suff_AddSuffix(const char *); +extern Lst Suff_GetPath(const char *); extern void Suff_DoPaths(void); -extern void Suff_AddInclude(char *); -extern void Suff_AddLib(char *); +extern void Suff_AddInclude(const char *); +extern void Suff_AddLib(const char *); extern void Suff_FindDeps(GNode *); -extern void Suff_SetNull(char *); +extern void Suff_SetNull(const char *); extern void Suff_Init(void); #ifdef CLEANUP extern void Suff_End(void); |