git: a6c20ddd4a9e - main - switch from short to int for lookup table
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 05 Feb 2022 08:45:15 UTC
The branch main has been updated by wosch:
URL: https://cgit.FreeBSD.org/src/commit/?id=a6c20ddd4a9e60aa14c0756fdb9bd72e2921506c
commit a6c20ddd4a9e60aa14c0756fdb9bd72e2921506c
Author: Wolfram Schneider <wosch@FreeBSD.org>
AuthorDate: 2022-02-05 08:44:35 +0000
Commit: Wolfram Schneider <wosch@FreeBSD.org>
CommitDate: 2022-02-05 08:44:35 +0000
switch from short to int for lookup table
This simplifies the code, less casting is needed.
---
usr.bin/locate/code/locate.code.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/usr.bin/locate/code/locate.code.c b/usr.bin/locate/code/locate.code.c
index f352cb2e6f6e..abac253a9237 100644
--- a/usr.bin/locate/code/locate.code.c
+++ b/usr.bin/locate/code/locate.code.c
@@ -107,9 +107,8 @@ u_char buf2[LOCATE_PATH_MAX];
u_char bigrams[BGBUFSIZE + 1] = { 0 };
/* use a lookup array instead a function, 3x faster than linear search */
+int big [UCHAR_MAX + 1][UCHAR_MAX + 1];
#define BGINDEX(x) (big[(u_char)*x][(u_char)*(x + 1)])
-typedef short bg_t;
-bg_t big[UCHAR_MAX + 1][UCHAR_MAX + 1];
void usage(void);
@@ -148,10 +147,10 @@ main(int argc, char *argv[])
/* init lookup table */
for (i = 0; i < UCHAR_MAX + 1; i++)
for (j = 0; j < UCHAR_MAX + 1; j++)
- big[i][j] = (bg_t)-1;
+ big[i][j] = -1;
for (cp = bigrams, i = 0; *cp != '\0'; i += 2, cp += 2)
- big[(u_char)*cp][(u_char)*(cp + 1)] = (bg_t)i;
+ big[(u_char)*cp][(u_char)*(cp + 1)] = i;
oldpath = buf1;
path = buf2;
@@ -189,7 +188,7 @@ main(int argc, char *argv[])
while (*cp != '\0') {
/* print *two* characters */
- if ((code = BGINDEX(cp)) != (bg_t)-1) {
+ if ((code = BGINDEX(cp)) != -1) {
/*
* print *one* as bigram
* Found, so mark byte with