svn commit: r232007 - head/lib/libc/gen
Jilles Tjoelker
jilles at FreeBSD.org
Wed Feb 22 21:47:51 UTC 2012
Author: jilles
Date: Wed Feb 22 21:47:50 2012
New Revision: 232007
URL: http://svn.freebsd.org/changeset/base/232007
Log:
libc: Eliminate some relative relocations in fmtmsg().
Modified:
head/lib/libc/gen/fmtmsg.c
Modified: head/lib/libc/gen/fmtmsg.c
==============================================================================
--- head/lib/libc/gen/fmtmsg.c Wed Feb 22 21:46:15 2012 (r232006)
+++ head/lib/libc/gen/fmtmsg.c Wed Feb 22 21:47:50 2012 (r232007)
@@ -45,10 +45,6 @@ static const char
*sevinfo(int);
static int validmsgverb(const char *);
-static const char *validlist[] = {
- "label", "severity", "text", "action", "tag", NULL
-};
-
int
fmtmsg(long class, const char *label, int sev, const char *text,
const char *action, const char *tag)
@@ -205,14 +201,18 @@ sevinfo(int sev)
static int
validmsgverb(const char *msgverb)
{
+ const char *validlist = "label\0severity\0text\0action\0tag\0";
char *msgcomp;
- int i, equality;
+ size_t len1, len2;
+ const char *p;
+ int equality;
equality = 0;
while ((msgcomp = nextcomp(msgverb)) != NULL) {
equality--;
- for (i = 0; validlist[i] != NULL; i++) {
- if (strcmp(msgcomp, validlist[i]) == 0)
+ len1 = strlen(msgcomp);
+ for (p = validlist; (len2 = strlen(p)) != 0; p += len2 + 1) {
+ if (len1 == len2 && memcmp(msgcomp, p, len1) == 0)
equality++;
}
}
More information about the svn-src-head
mailing list