Avoid SCT_TYPE_MAX, use ARRAY_SIZE() instead
authorMarkus Armbruster <armbru@pond.sub.org>
Sat, 26 Dec 2020 05:27:18 +0000 (06:27 +0100)
committerMarkus Armbruster <armbru@pond.sub.org>
Sun, 17 Jan 2021 20:24:28 +0000 (21:24 +0100)
The next commit will get rid of SCT_TYPE_MAX.  Prepare.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
include/update.h
src/lib/commands/budg.c
src/lib/subs/maps.c

index 830367a49ac0fe0540409b22e7b22a03faffb905..ef0dc7dfba93ce05c74c73198e4e1e2e59bcfbea 100644 (file)
@@ -28,7 +28,7 @@
  *
  *  Known contributors to this file:
  *     Ville Virrankoski, 1995
- *     Markus Armbruster, 2004-2016
+ *     Markus Armbruster, 2004-2020
  */
 
 #ifndef UPDATE_H
@@ -59,7 +59,7 @@ struct budg_item {
 /* A nation's budget for an update */
 struct budget {
     /* production by sector type */
-    struct budg_item prod[SCT_TYPE_MAX + 1];
+    struct budg_item prod[ARRAY_SIZE(dchr) - 1];
     /* level production output */
     float level[4];
     /* building and maintenance */
index 00cb8f89e4f46f906035ae9a87c966a28dac996f..028133dc401fd8386a9c906824a3ef981b14fee4 100644 (file)
@@ -30,7 +30,7 @@
  *     Thomas Ruschak, 1992
  *     Ville Virrankoski, 1995
  *     Steve McClure, 1997-2000
- *     Markus Armbruster, 2004-2016
+ *     Markus Armbruster, 2004-2020
  */
 
 #include <config.h>
@@ -61,7 +61,7 @@ budg(void)
        { "Sector building", "sector" },
        { "Sector maintenance", "sector" }
     };
-    int i;
+    unsigned i;
     struct budget *budget;
     int income, expenses, taxes;
     struct natstr *np;
@@ -76,7 +76,7 @@ budg(void)
     income = expenses = 0;
 
     pr("Sector Type\t\t\tProduction\t\t\t    Cost\n");
-    for (i = 0; i <= SCT_TYPE_MAX; i++) {
+    for (i = 0; i < ARRAY_SIZE(budget->prod); i++) {
        if (!budget->prod[i].money)
            continue;
        pr("%-17s\t\t", dchr[i].d_name);
index 1f7528dcbd636b9041a07185d3e3acb5d9142838..df7eedad529c61b6dc629be9a1a310a3ab7fd37a 100644 (file)
@@ -29,7 +29,7 @@
  *  Known contributors to this file:
  *     Ken Stevens, 1995
  *     Steve McClure, 1998
- *     Markus Armbruster, 2004-2011
+ *     Markus Armbruster, 2004-2020
  *     Ron Koenderink, 2006
  */
 
@@ -358,7 +358,8 @@ bmnxtsct(struct nstr_sect *np)
 static char
 map_char(int type, natid own, int owner_or_god)
 {
-    if (CANT_HAPPEN(type > SCT_TYPE_MAX || !dchr[type].d_mnem))
+    if (CANT_HAPPEN((unsigned)type >= ARRAY_SIZE(dchr) - 1
+                   || !dchr[type].d_mnem))
        return '?';
     if (owner_or_god
        || type == SCT_WATER || type == SCT_MOUNT || type == SCT_WASTE