]> git.saurik.com Git - bison.git/commitdiff
* src/files.c (tr): Change return type to void.
authorJoel E. Denny <jdenny@ces.clemson.edu>
Thu, 9 Nov 2006 18:17:05 +0000 (18:17 +0000)
committerJoel E. Denny <jdenny@ces.clemson.edu>
Thu, 9 Nov 2006 18:17:05 +0000 (18:17 +0000)
* src/muscle_tab.c (muscle_insert): Free storage in case muscle_grow
has been called previously for the same key.
(muscle_find): Return storage instead of value so that
--enable-gcc-warnings doesn't produce warnings that the return discards
const.  aver that the value and storage are the same since storage
could potentially be NULL when value is not.
* tests/testsuite.at (AT_CHECK): Treat an unspecified exit value the
same as 0.

ChangeLog
src/files.c
src/muscle_tab.c
tests/testsuite.at

index f143b6e8c42764d399a5e46007ad62e98612c65d..d558bacaf471e351455fbd0c4b39a29da5120aac 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2006-11-09  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * src/files.c (tr): Change return type to void.
+       * src/muscle_tab.c (muscle_insert): Free storage in case muscle_grow
+       has been called previously for the same key.
+       (muscle_find): Return storage instead of value so that
+       --enable-gcc-warnings doesn't produce warnings that the return discards
+       const.  aver that the value and storage are the same since storage
+       could potentially be NULL when value is not.
+       * tests/testsuite.at (AT_CHECK): Treat an unspecified exit value the
+       same as 0.
+
 2006-11-08  Paul Eggert  <eggert@cs.ucla.edu>
 
        * bootstrap.conf (excluded_files): Exclude m4/codeset.m4 (undoing
index 951a7acc669ef1a3c478a4f00ab7d4be01d1d09f..934e114300982982bdc87855551f33add9211fd1 100644 (file)
@@ -137,7 +137,7 @@ xfclose (FILE *ptr)
 `------------------------------------------------------------------*/
 
 /* In the string S, replace all characters FROM by TO.  */
-static char *
+static void
 tr (char *s, char from, char to)
 {
   for (; *s; s++)
index 6ceb71f332debbe5d339ec36771ebfe175d029fb..70f12dfbb507b1b8460552f5920682e9e9e09102 100644 (file)
@@ -123,9 +123,11 @@ muscle_insert (char const *key, char const *value)
       entry = xmalloc (sizeof *entry);
       entry->key = key;
       hash_insert (muscle_table, entry);
-      entry->storage = NULL;
     }
+  else
+    free (entry->storage);
   entry->value = value;
+  entry->storage = NULL;
 }
 
 
@@ -207,9 +209,11 @@ void muscle_pair_list_grow (const char *muscle,
   obstack_free (&muscle_obstack, pair);
 }
 
-/*-------------------------------.
-| Find the value of muscle KEY.  |
-`-------------------------------*/
+/*----------------------------------------------------------------------------.
+| Find the value of muscle KEY.  Abort if muscle_insert was invoked more      |
+| recently than muscle_grow for KEY since muscle_find can't return a          |
+| char const *.                                                               |
+`----------------------------------------------------------------------------*/
 
 char *
 muscle_find (const char *key)
@@ -219,7 +223,12 @@ muscle_find (const char *key)
 
   probe.key = key;
   result = hash_lookup (muscle_table, &probe);
-  return result ? result->value : NULL;
+  if (result)
+    {
+      aver (result->value == result->storage);
+      return result->storage;
+    }
+  return NULL;
 }
 
 
index bd5e11694a11f89ad2762ce02912f49c5e6069eb..1f93afdc5b61a4067598acaac2882bc479c357be 100644 (file)
@@ -25,7 +25,7 @@ m4_pushdef([ORIGINAL_AT_CHECK], m4_defn([AT_CHECK]))
 m4_pushdef([AT_CHECK],
 [ORIGINAL_AT_CHECK(
    m4_if(m4_quote(m4_substr(m4_quote($1), 0, 5)), [bison],
-        m4_if([$2], [0], [],
+        m4_if([$2], [0], [], [$2], [], [],
               [[VALGRIND_OPTS="$VALGRIND_OPTS --leak-check=summary --show-reachable=no"; export VALGRIND_OPTS; ]]))$@)])
 
 # Testing resistance to user bugs.