Page MenuHomeFreeBSD

D31666.diff
No OneTemporary

D31666.diff

diff --git a/lib/libc/string/strcspn.c b/lib/libc/string/strcspn.c
--- a/lib/libc/string/strcspn.c
+++ b/lib/libc/string/strcspn.c
@@ -34,40 +34,24 @@
#include <string.h>
#define IDX(c) ((u_char)(c) / LONG_BIT)
-#define BIT(c) ((u_long)1 << ((u_char)(c) % LONG_BIT))
+#define BIT(c) (1UL << ((u_char)(c) % LONG_BIT))
size_t
strcspn(const char *s, const char *charset)
{
- /*
- * NB: idx and bit are temporaries whose use causes gcc 3.4.2 to
- * generate better code. Without them, gcc gets a little confused.
- */
const char *s1;
- u_long bit;
- u_long tbl[(UCHAR_MAX + 1) / LONG_BIT];
- int idx;
- if(*s == '\0')
+ if (*s == '\0')
return (0);
-#if LONG_BIT == 64 /* always better to unroll on 64-bit architectures */
- tbl[0] = 1;
- tbl[3] = tbl[2] = tbl[1] = 0;
-#else
- for (tbl[0] = idx = 1; idx < sizeof(tbl) / sizeof(tbl[0]); idx++)
- tbl[idx] = 0;
-#endif
+ u_long tbl[(UCHAR_MAX + 1) / LONG_BIT] = {1}; // Rest of array is 0s
+
for (; *charset != '\0'; charset++) {
- idx = IDX(*charset);
- bit = BIT(*charset);
- tbl[idx] |= bit;
+ tbl[IDX(*charset)] |= BIT(*charset);
}
- for(s1 = s; ; s1++) {
- idx = IDX(*s1);
- bit = BIT(*s1);
- if ((tbl[idx] & bit) != 0)
+ for (s1 = s; ; s1++) {
+ if ((tbl[IDX(*s1)] & BIT(*s1)) != 0)
break;
}
return (s1 - s);
diff --git a/lib/libc/string/strspn.c b/lib/libc/string/strspn.c
--- a/lib/libc/string/strspn.c
+++ b/lib/libc/string/strspn.c
@@ -34,39 +34,24 @@
#include <string.h>
#define IDX(c) ((u_char)(c) / LONG_BIT)
-#define BIT(c) ((u_long)1 << ((u_char)(c) % LONG_BIT))
+#define BIT(c) (1UL << ((u_char)(c) % LONG_BIT))
size_t
strspn(const char *s, const char *charset)
{
- /*
- * NB: idx and bit are temporaries whose use causes gcc 3.4.2 to
- * generate better code. Without them, gcc gets a little confused.
- */
const char *s1;
- u_long bit;
- u_long tbl[(UCHAR_MAX + 1) / LONG_BIT];
- int idx;
- if(*s == '\0')
+ if (*s == '\0')
return (0);
-#if LONG_BIT == 64 /* always better to unroll on 64-bit architectures */
- tbl[3] = tbl[2] = tbl[1] = tbl[0] = 0;
-#else
- for (idx = 0; idx < sizeof(tbl) / sizeof(tbl[0]); idx++)
- tbl[idx] = 0;
-#endif
+ u_long tbl[(UCHAR_MAX + 1) / LONG_BIT] = {0};
+
for (; *charset != '\0'; charset++) {
- idx = IDX(*charset);
- bit = BIT(*charset);
- tbl[idx] |= bit;
+ tbl[IDX(*charset)] |= BIT(*charset);
}
- for(s1 = s; ; s1++) {
- idx = IDX(*s1);
- bit = BIT(*s1);
- if ((tbl[idx] & bit) == 0)
+ for (s1 = s; ; s1++) {
+ if ((tbl[IDX(*s1)] & BIT(*s1)) == 0)
break;
}
return (s1 - s);
diff --git a/sys/libkern/fnmatch.c b/sys/libkern/fnmatch.c
--- a/sys/libkern/fnmatch.c
+++ b/sys/libkern/fnmatch.c
@@ -50,21 +50,22 @@
#define RANGE_NOMATCH 0
#define RANGE_ERROR (-1)
-static int rangematch(const char *, char, int, char **);
+static int rangematch(const char *, char, const int, const char **);
int
fnmatch(const char *pattern, const char *string, int flags)
{
const char *stringstart;
- char *newp;
+ const char *newp;
char c, test;
for (stringstart = string;;)
switch (c = *pattern++) {
case EOS:
- if ((flags & FNM_LEADING_DIR) && *string == '/')
+ if (*string == EOS || (*string == '/' &&
+ (flags & FNM_LEADING_DIR)))
return (0);
- return (*string == EOS ? 0 : FNM_NOMATCH);
+ return (FNM_NOMATCH);
case '?':
if (*string == EOS)
return (FNM_NOMATCH);
@@ -88,26 +89,27 @@
return (FNM_NOMATCH);
/* Optimize for pattern with * at end or before /. */
- if (c == EOS)
+ if (c == EOS) {
if (flags & FNM_PATHNAME)
return ((flags & FNM_LEADING_DIR) ||
strchr(string, '/') == NULL ?
0 : FNM_NOMATCH);
- else
- return (0);
- else if (c == '/' && flags & FNM_PATHNAME) {
+
+ return (0);
+ }
+
+ if (c == '/' && flags & FNM_PATHNAME) {
if ((string = strchr(string, '/')) == NULL)
return (FNM_NOMATCH);
break;
}
/* General case, use recursion. */
- while ((test = *string) != EOS) {
+ for (; (test = *string) != EOS; ++string) {
if (!fnmatch(pattern, string, flags & ~FNM_PERIOD))
return (0);
- if (test == '/' && flags & FNM_PATHNAME)
+ if (test == '/' && (flags & FNM_PATHNAME))
break;
- ++string;
}
return (FNM_NOMATCH);
case '[':
@@ -133,9 +135,10 @@
break;
case '\\':
if (!(flags & FNM_NOESCAPE)) {
- if ((c = *pattern++) == EOS) {
+ if ((c = *pattern) == EOS) {
c = '\\';
- --pattern;
+ } else {
+ ++pattern;
}
}
/* FALLTHROUGH */
@@ -149,14 +152,14 @@
;
else
return (FNM_NOMATCH);
- string++;
+ ++string;
break;
}
/* NOTREACHED */
}
static int
-rangematch(const char *pattern, char test, int flags, char **newp)
+rangematch(const char *pattern, char test, const int flags, const char **newp)
{
int negate, ok;
char c, c2;
@@ -210,6 +213,6 @@
ok = 1;
} while ((c = *pattern++) != ']');
- *newp = (char *)(uintptr_t)pattern;
+ *newp = pattern;
return (ok == negate ? RANGE_NOMATCH : RANGE_MATCH);
}
diff --git a/sys/libkern/strcspn.c b/sys/libkern/strcspn.c
--- a/sys/libkern/strcspn.c
+++ b/sys/libkern/strcspn.c
@@ -34,40 +34,23 @@
#include <sys/limits.h>
#define IDX(c) ((u_char)(c) / LONG_BIT)
-#define BIT(c) ((u_long)1 << ((u_char)(c) % LONG_BIT))
+#define BIT(c) (1UL << ((u_char)(c) % LONG_BIT))
size_t
strcspn(const char *s, const char *charset)
{
- /*
- * NB: idx and bit are temporaries whose use causes gcc 3.4.2 to
- * generate better code. Without them, gcc gets a little confused.
- */
const char *s1;
- u_long bit;
- u_long tbl[(UCHAR_MAX + 1) / LONG_BIT];
- int idx;
- if(*s == '\0')
+ if (*s == '\0')
return (0);
-#if LONG_BIT == 64 /* always better to unroll on 64-bit architectures */
- tbl[0] = 1;
- tbl[3] = tbl[2] = tbl[1] = 0;
-#else
- for (tbl[0] = idx = 1; idx < sizeof(tbl) / sizeof(tbl[0]); idx++)
- tbl[idx] = 0;
-#endif
+ u_long tbl[(UCHAR_MAX + 1) / LONG_BIT] = {1}; // Rest of array is zeroes
for (; *charset != '\0'; charset++) {
- idx = IDX(*charset);
- bit = BIT(*charset);
- tbl[idx] |= bit;
+ tbl[IDX(*charset)] |= BIT(*charset);
}
for(s1 = s; ; s1++) {
- idx = IDX(*s1);
- bit = BIT(*s1);
- if ((tbl[idx] & bit) != 0)
+ if ((tbl[IDX(*s1)] & BIT(*s1)) != 0)
break;
}
return (s1 - s);
diff --git a/sys/libkern/strspn.c b/sys/libkern/strspn.c
--- a/sys/libkern/strspn.c
+++ b/sys/libkern/strspn.c
@@ -34,39 +34,24 @@
#include <sys/types.h>
#define IDX(c) ((u_char)(c) / LONG_BIT)
-#define BIT(c) ((u_long)1 << ((u_char)(c) % LONG_BIT))
+#define BIT(c) (1UL << ((u_char)(c) % LONG_BIT))
size_t
strspn(const char *s, const char *charset)
{
- /*
- * NB: idx and bit are temporaries whose use causes gcc 3.4.2 to
- * generate better code. Without them, gcc gets a little confused.
- */
const char *s1;
- u_long bit;
- u_long tbl[(UCHAR_MAX + 1) / LONG_BIT];
- int idx;
- if(*s == '\0')
+ if (*s == '\0')
return (0);
-#if LONG_BIT == 64 /* always better to unroll on 64-bit architectures */
- tbl[3] = tbl[2] = tbl[1] = tbl[0] = 0;
-#else
- for (idx = 0; idx < sizeof(tbl) / sizeof(tbl[0]); idx++)
- tbl[idx] = 0;
-#endif
+ u_long tbl[(UCHAR_MAX + 1) / LONG_BIT] = {0};
+
for (; *charset != '\0'; charset++) {
- idx = IDX(*charset);
- bit = BIT(*charset);
- tbl[idx] |= bit;
+ tbl[IDX(*charset)] |= BIT(*charset);
}
- for(s1 = s; ; s1++) {
- idx = IDX(*s1);
- bit = BIT(*s1);
- if ((tbl[idx] & bit) == 0)
+ for (s1 = s; ; s1++) {
+ if ((tbl[IDX(*s1)] & BIT(*s1)) == 0)
break;
}
return (s1 - s);
diff --git a/sys/netgraph/ng_socket.c b/sys/netgraph/ng_socket.c
--- a/sys/netgraph/ng_socket.c
+++ b/sys/netgraph/ng_socket.c
@@ -428,7 +428,7 @@
}
if (sap == NULL) {
- len = 0; /* Make compiler happy. */
+ goto noaddress;
} else {
if (sap->sg_len > NG_NODESIZ +
offsetof(struct sockaddr_ng, sg_data)) {
@@ -442,7 +442,8 @@
* If the user used any of these ways to not specify an address
* then handle specially.
*/
- if ((sap == NULL) || (len <= 0) || (*sap->sg_data == '\0')) {
+ if ((len <= 0) || (*sap->sg_data == '\0')) {
+noaddress:
if (NG_NODE_NUMHOOKS(pcbp->sockdata->node) != 1) {
error = EDESTADDRREQ;
goto release;
diff --git a/sys/netinet/tcp_lro.c b/sys/netinet/tcp_lro.c
--- a/sys/netinet/tcp_lro.c
+++ b/sys/netinet/tcp_lro.c
@@ -524,9 +524,8 @@
uint16_t len;
csum = -th->th_sum; /* exclude checksum field */
- len = th->th_off;
ptr = (const uint16_t *)th;
- while (len--) {
+ for (len = th->th_off; len != 0; len--) {
csum += *ptr;
ptr++;
csum += *ptr;
@@ -708,7 +707,7 @@
{
uint32_t csum;
uint16_t tlen;
- uint16_t temp[5] = {};
+ uint16_t temp[5] = {0};
switch (pa->data.lro_type) {
case LRO_TYPE_IPV4_TCP:
@@ -1418,58 +1417,57 @@
uint32_t x;
uint32_t y;
-repeat:
- /* for small arrays insertion sort is faster */
- if (size <= 12) {
- for (x = 1; x < size; x++) {
- temp = parray[x];
- for (y = x; y > 0 && temp.seq < parray[y - 1].seq; y--)
- parray[y] = parray[y - 1];
- parray[y] = temp;
+ for (;;) {
+ /* for small arrays insertion sort is faster */
+ if (size <= 12) {
+ for (x = 1; x < size; x++) {
+ temp = parray[x];
+ for (y = x; y > 0 && temp.seq < parray[y - 1].seq; y--)
+ parray[y] = parray[y - 1];
+ parray[y] = temp;
+ }
+ return;
}
- return;
- }
- /* compute sequence bits which are constant */
- ones = 0;
- zeros = 0;
- for (x = 0; x != size; x++) {
- ones |= parray[x].seq;
- zeros |= ~parray[x].seq;
- }
+ /* compute sequence bits which are constant */
+ ones = 0;
+ zeros = 0;
+ for (x = 0; x != size; x++) {
+ ones |= parray[x].seq;
+ zeros |= ~parray[x].seq;
+ }
- /* compute bits which are not constant into "ones" */
- ones &= zeros;
- if (ones == 0)
- return;
+ /* compute bits which are not constant into "ones" */
+ ones &= zeros;
+ if (ones == 0)
+ return;
- /* pick the most significant bit which is not constant */
- ones = tcp_lro_msb_64(ones);
+ /* pick the most significant bit which is not constant */
+ ones = tcp_lro_msb_64(ones);
- /*
- * Move entries having cleared sequence bits to the beginning
- * of the array:
- */
- for (x = y = 0; y != size; y++) {
- /* skip set bits */
- if (parray[y].seq & ones)
- continue;
- /* swap entries */
- temp = parray[x];
- parray[x] = parray[y];
- parray[y] = temp;
- x++;
- }
+ /*
+ * Move entries having cleared sequence bits to the beginning
+ * of the array:
+ */
+ for (x = y = 0; y != size; x++, y++) {
+ /* skip set bits */
+ if (parray[y].seq & ones)
+ continue;
+ /* swap entries */
+ temp = parray[x];
+ parray[x] = parray[y];
+ parray[y] = temp;
+ }
- KASSERT(x != 0 && x != size, ("Memory is corrupted\n"));
+ KASSERT(x != 0 && x != size, ("Memory is corrupted\n"));
- /* sort zeros */
- tcp_lro_sort(parray, x);
+ /* sort zeros */
+ tcp_lro_sort(parray, x);
- /* sort ones */
- parray += x;
- size -= x;
- goto repeat;
+ /* sort ones */
+ parray += x;
+ size -= x;
+ }
}
void
diff --git a/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmpmap.c b/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmpmap.c
--- a/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmpmap.c
+++ b/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmpmap.c
@@ -503,14 +503,15 @@
if (snmptoolctx == NULL || snmptoolctx->mappings == NULL ||
entry == NULL)
- return(-1);
+ return (-1);
if ((prev = SLIST_FIRST(&snmptoolctx->snmp_tablelist)) == NULL ||
asn_compare_oid(&(entry->var), &(prev->var)) < 0) {
SLIST_INSERT_HEAD(&snmptoolctx->snmp_tablelist, entry, link);
return (1);
- } else
- rc = -1; /* Make the compiler happy. */
+ }
+
+ rc = -1;
SLIST_FOREACH(temp, &snmptoolctx->snmp_tablelist, link) {
if ((rc = asn_compare_oid(&(entry->var), &(temp->var))) <= 0)

File Metadata

Mime Type
text/plain
Expires
Tue, Jan 27, 7:26 AM (9 h, 33 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28036878
Default Alt Text
D31666.diff (11 KB)

Event Timeline