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++;
                }
        }
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to