changeset 2228:02d17784fdef

Variables -> struct cleanup.
author Matti Hamalainen <ccr@tnsp.org>
date Fri, 14 Jun 2019 18:33:10 +0300
parents 5046458d6c34
children 72e15cc14927
files tools/fanalyze.c
diffstat 1 files changed, 25 insertions(+), 31 deletions(-) [+]
line wrap: on
line diff
--- a/tools/fanalyze.c	Fri Jun 14 18:32:45 2019 +0300
+++ b/tools/fanalyze.c	Fri Jun 14 18:33:10 2019 +0300
@@ -229,12 +229,11 @@
 {
     const char *specsep = strchr(arg, ':');
     char *vspec, *vstr, *vsep;
-    int vdisp = DMGS_HEX, vtype = -1, ret = DMERR_OK, nvalues;
+    DMGrepValue val;
+    int ret = DMERR_OK;
     BOOL more;
-    Uint32 vvalues[SET_MAX_GREPLIST];
-    BOOL vwildcards[SET_MAX_GREPLIST];
 
-    memset(vwildcards, 0, sizeof(vwildcards));
+    memset(&val, 0, sizeof(val));
 
     if (setMode != FA_ANALYZE && setMode != mode)
     {
@@ -277,19 +276,19 @@
         // Get value bit size
         if (strncmp(vtmp, "8", 1) == 0)
         {
-            vtype = DMGV_UINT8;
+            val.type = DMGV_UINT8;
             vtmp += 1;
         }
         else
         if (strncmp(vtmp, "16", 2) == 0)
         {
-            vtype = vendianess ? DMGV_UINT16_LE : DMGV_UINT16_BE;
+            val.type = vendianess ? DMGV_UINT16_LE : DMGV_UINT16_BE;
             vtmp += 2;
         }
         else
         if (strncmp(vtmp, "32", 2) == 0)
         {
-            vtype = vendianess ? DMGV_UINT32_LE : DMGV_UINT32_BE;
+            val.type = vendianess ? DMGV_UINT32_LE : DMGV_UINT32_BE;
             vtmp += 2;
         }
         else
@@ -303,11 +302,11 @@
         switch (tolower(*vtmp))
         {
             case 'd':
-                vdisp = DMGS_DEC;
+                val.disp = DMGS_DEC;
                 break;
 
             case 'x': case 'h':
-                vdisp = DMGS_HEX;
+                val.disp = DMGS_HEX;
                 break;
 
             case 0:
@@ -323,10 +322,9 @@
 
     // Get list of values
     char *vtmp = vstr;
-    nvalues = 0;
     do
     {
-        if (nvalues >= SET_MAX_GREPLIST)
+        if (val.nvalues >= SET_MAX_GREPLIST)
         {
             ret = dmError(DMERR_BOUNDS,
                 "Too many greplist values specified '%s'.\n",
@@ -344,7 +342,7 @@
 
         if (vtmp[0] == '#' || vtmp[0] == '?')
         {
-            vwildcards[nvalues] = TRUE;
+            val.vwildcards[val.nvalues] = TRUE;
             if (mode == FA_OFFSET)
             {
                 ret = dmError(DMERR_INVALID_ARGS,
@@ -353,7 +351,7 @@
             }
         }
         else
-        if (!dmGetIntVal(vtmp, &vvalues[nvalues], NULL))
+        if (!dmGetIntVal(vtmp, &val.values[val.nvalues], NULL))
         {
             ret = dmError(DMERR_INVALID_ARGS,
                 "Not a valid integer value '%s'.\n",
@@ -361,13 +359,13 @@
             goto out;
         }
 
-        nvalues++;
+        val.nvalues++;
 
         if (more)
             vtmp = vsep + 1;
     } while (more);
 
-    if (vwildcards[0])
+    if (val.vwildcards[0])
     {
         ret = dmError(DMERR_INVALID_ARGS,
             "First grep value can not be a wildcard.\n");
@@ -377,17 +375,17 @@
     if (mode == FA_GREP)
     {
         // Check if we need to guess size
-        if (vtype < 0)
+        if (val.type < 0)
         {
             for (int n = DMGV_last; n >= 0; n--)
             {
                 const DMGrepType *def = &dmGrepTypes[n];
-                if (vvalues[0] <= def->nmax)
-                    vtype = n;
+                if (val.values[0] <= def->nmax)
+                    val.type = n;
             }
         }
 
-        if (vtype < 0)
+        if (val.type < 0)
         {
             ret = dmError(DMERR_INVALID_ARGS,
                 "Could not guess value type for '%s'.\n",
@@ -396,12 +394,13 @@
         }
 
         // Check range
-        for (int n = 0; n < nvalues; n++)
-        if (!vwildcards[n] && vvalues[n] > dmGrepTypes[vtype].nmax)
+        for (int n = 0; n < val.nvalues; n++)
+        if (!val.vwildcards[n] && val.values[n] > dmGrepTypes[val.type].nmax)
         {
             ret = dmError(DMERR_INVALID_ARGS,
                 "Integer value %d <= %d <= %d out of range for type %s.\n",
-                vvalues[n], 0, dmGrepTypes[vtype].nmax, dmGrepTypes[vtype].name);
+                val.values[n], 0, dmGrepTypes[val.type].nmax,
+                dmGrepTypes[val.type].name);
 
             goto out;
         }
@@ -409,22 +408,17 @@
     else
     if (mode == FA_OFFSET)
     {
-        if (vtype < 0)
-            vtype = DMGV_UINT8;
+        if (val.type < 0)
+            val.type = DMGV_UINT8;
     }
 
     if (nsetGrepValues < SET_MAX_VALUES)
     {
         DMGrepValue *node = &setGrepValues[nsetGrepValues++];
-
-        node->type = vtype;
-        node->disp = vdisp;
-        node->nvalues = nvalues;
-        memcpy(node->values, vvalues, sizeof(vvalues[0]) * nvalues);
-        memcpy(node->vwildcards, vwildcards, sizeof(vwildcards[0]) * nvalues);
+        memcpy(node, &val, sizeof(val));
 
         dmMsg(1, "Grep %ss : ",
-            dmGrepTypes[vtype].name);
+            dmGrepTypes[val.type].name);
 
         dmPrintGrepValueList(node, FALSE, NULL, 0);
     }