Author: ed
Date: Tue Apr  9 16:16:34 2013
New Revision: 249311
URL: http://svnweb.freebsd.org/changeset/base/249311

Log:
  Add static/const keywords to the arrays.
  
  This theoretically allows a compiler to optimize (parts of) the array
  away if unused.
  
  While there, make the array size implicit and use a _Static_assert() to
  ensure that the definition matches up with the number of elements in the
  list.

Modified:
  head/include/protocols/timed.h
  head/sys/sys/syslog.h
  head/sys/sys/ttydefaults.h

Modified: head/include/protocols/timed.h
==============================================================================
--- head/include/protocols/timed.h      Tue Apr  9 15:35:26 2013        
(r249310)
+++ head/include/protocols/timed.h      Tue Apr  9 16:16:34 2013        
(r249311)
@@ -90,11 +90,13 @@ struct tsp {
 #define        TSPTYPENUMBER           25
 
 #ifdef TSPTYPES
-const char *tsptype[TSPTYPENUMBER] =
+static char const * const tsptype[] =
   { "ANY", "ADJTIME", "ACK", "MASTERREQ", "MASTERACK", "SETTIME", "MASTERUP",
   "SLAVEUP", "ELECTION", "ACCEPT", "REFUSE", "CONFLICT", "RESOLVE", "QUIT",
   "DATE", "DATEREQ", "DATEACK", "TRACEON", "TRACEOFF", "MSITE", "MSITEREQ",
   "TEST", "SETDATE", "SETDATEREQ", "LOOP" };
+_Static_assert(sizeof(tsptype) / sizeof(const char *) == TSPTYPENUMBER,
+    "Size of tsptype does not match TSPTYPENUMBER");
 #endif
 
 #endif /* !_TIMED_H_ */

Modified: head/sys/sys/syslog.h
==============================================================================
--- head/sys/sys/syslog.h       Tue Apr  9 15:35:26 2013        (r249310)
+++ head/sys/sys/syslog.h       Tue Apr  9 16:16:34 2013        (r249311)
@@ -69,7 +69,7 @@ typedef struct _code {
        int             c_val;
 } CODE;
 
-CODE prioritynames[] = {
+static const CODE prioritynames[] = {
        { "alert",      LOG_ALERT,      },
        { "crit",       LOG_CRIT,       },
        { "debug",      LOG_DEBUG,      },
@@ -122,7 +122,7 @@ CODE prioritynames[] = {
 #define        LOG_FAC(p)      (((p) & LOG_FACMASK) >> 3)
 
 #ifdef SYSLOG_NAMES
-CODE facilitynames[] = {
+static const CODE facilitynames[] = {
        { "auth",       LOG_AUTH,       },
        { "authpriv",   LOG_AUTHPRIV,   },
        { "console",    LOG_CONSOLE,    },

Modified: head/sys/sys/ttydefaults.h
==============================================================================
--- head/sys/sys/ttydefaults.h  Tue Apr  9 15:35:26 2013        (r249310)
+++ head/sys/sys/ttydefaults.h  Tue Apr  9 16:16:34 2013        (r249311)
@@ -95,10 +95,17 @@
  * #define TTYDEFCHARS to include an array of default control characters.
  */
 #ifdef TTYDEFCHARS
-static cc_t    ttydefchars[NCCS] = {
-       CEOF,   CEOL,   CEOL,   CERASE, CWERASE, CKILL, CREPRINT,
-       CERASE2, CINTR, CQUIT,  CSUSP,  CDSUSP, CSTART, CSTOP,  CLNEXT,
-       CDISCARD, CMIN, CTIME,  CSTATUS, _POSIX_VDISABLE
+
+#include <sys/cdefs.h>
+#include <sys/_termios.h>
+
+static const cc_t ttydefchars[] = {
+       CEOF, CEOL, CEOL, CERASE, CWERASE, CKILL, CREPRINT, CERASE2, CINTR,
+       CQUIT, CSUSP, CDSUSP, CSTART, CSTOP, CLNEXT, CDISCARD, CMIN, CTIME,
+       CSTATUS, _POSIX_VDISABLE
 };
+_Static_assert(sizeof(ttydefchars) / sizeof(cc_t) == NCCS,
+    "Size of ttydefchars does not match NCCS");
+
 #undef TTYDEFCHARS
-#endif
+#endif /* TTYDEFCHARS */
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to