]> granicus.if.org Git - recode/commitdiff
names.c: fix FIXME: retype to avoid ugly casts for argmatch use
authorReuben Thomas <rrt@sc3d.org>
Fri, 26 Jan 2018 21:27:33 +0000 (21:27 +0000)
committerReuben Thomas <rrt@sc3d.org>
Sun, 28 Jan 2018 22:41:22 +0000 (22:41 +0000)
src/names.c
src/outer.c
src/recodext.h

index 46f7b2161e5c587fe958212eeb66d54b1813d3df..f2a1aaf2885146ffa00abdd302a0ea841bae3ceb 100644 (file)
@@ -205,32 +205,22 @@ disambiguate_name (RECODE_OUTER outer,
       abort ();
 
     case ALIAS_FIND_AS_CHARSET:
-      /* FIXME: How to avoid those ugly casts?  */
-      ordinal = argmatch (hashname,
-                         (const char *const *) outer->argmatch_charset_array,
-                         NULL, 0);
+      ordinal = argmatch (hashname, outer->argmatch_charset_array, NULL, 0);
       result = ordinal < 0 ? NULL : outer->realname_charset_array[ordinal];
       break;
 
     case ALIAS_FIND_AS_SURFACE:
-      ordinal = argmatch (hashname,
-                         (const char *const *) outer->argmatch_surface_array,
-                         NULL, 0);
+      ordinal = argmatch (hashname, outer->argmatch_surface_array, NULL, 0);
       result = ordinal < 0 ? NULL : outer->realname_surface_array[ordinal];
       break;
 
     case ALIAS_FIND_AS_EITHER:
-      ordinal = argmatch (hashname,
-                         (const char *const *) outer->argmatch_charset_array,
-                         NULL, 0);
+      ordinal = argmatch (hashname, outer->argmatch_charset_array, NULL, 0);
       if (ordinal >= 0)
        result = outer->realname_charset_array[ordinal];
       else
        {
-         ordinal = argmatch (hashname,
-                             (const char *const *)
-                             outer->argmatch_surface_array,
-                             NULL, 0);
+         ordinal = argmatch (hashname, outer->argmatch_surface_array, NULL, 0);
          result = ordinal < 0 ? NULL : outer->realname_surface_array[ordinal];
        }
       break;
@@ -480,12 +470,12 @@ make_argmatch_arrays (RECODE_OUTER outer)
 
   if (outer->argmatch_charset_array)
     {
-      char **cursor;
+      const char **cursor;
 
       for (cursor = outer->argmatch_charset_array; *cursor; cursor++)
-       free (*cursor);
+       free ((char *) *cursor);
       for (cursor = outer->argmatch_surface_array; *cursor; cursor++)
-       free (*cursor);
+       free ((char *) *cursor);
       free (outer->argmatch_charset_array);
     }
 
@@ -500,10 +490,10 @@ make_argmatch_arrays (RECODE_OUTER outer)
   /* Allocate the argmatch and realname arrays, each with a NULL sentinel.  */
 
   {
-    char **cursor;
+    const char **cursor;
 
     if (!ALLOC (cursor, 2*walk.charset_counter + 2*walk.surface_counter + 4,
-               char *))
+               const char *))
       return false;
 
     outer->argmatch_charset_array = cursor;
index 996845b4c98cf168f34cab2992e74220159f01e8..ce85df35f95f23a18dc95284687ad844dadf4400 100644 (file)
@@ -561,12 +561,12 @@ recode_delete_outer (RECODE_OUTER outer)
     hash_free ((Hash_table *) outer->alias_table);
   if (outer->argmatch_charset_array)
     {
-      char **cursor;
+      const char **cursor;
 
       for (cursor = outer->argmatch_charset_array; *cursor; cursor++)
-       free (*cursor);
+        free ((char **) *cursor);
       for (cursor = outer->argmatch_surface_array; *cursor; cursor++)
-       free (*cursor);
+        free ((char **) *cursor);
       free (outer->argmatch_charset_array);
     }
   free ((void *) outer->one_to_same);
index 5d371305c3d69309486784bd12a0a719b631207e..9d3dd47349c03b699d8f6370a3c2c2f757b4bfa6 100644 (file)
@@ -137,8 +137,8 @@ struct recode_outer
     unsigned number_of_symbols;
 
     /* Arrays of strings ready for argmatch.  */
-    char **argmatch_charset_array;
-    char **argmatch_surface_array;
+    char const **argmatch_charset_array;
+    char const **argmatch_surface_array;
     const char **realname_charset_array;
     const char **realname_surface_array;