]> git.saurik.com Git - bison.git/commitdiff
* src/symtab.h (struct symbol): Declare the printer and destructor
authorAkim Demaille <akim@epita.fr>
Fri, 16 Sep 2005 19:50:08 +0000 (19:50 +0000)
committerAkim Demaille <akim@epita.fr>
Fri, 16 Sep 2005 19:50:08 +0000 (19:50 +0000)
as const, to avoid accidental calls to free.
(symbol_destructor_set, symbol_printer_set): Adjust.
* src/symtab.c: Adjust.

ChangeLog
src/symtab.c
src/symtab.h

index 5864bb7d1437ba16b54165c28533cbf604a4c611..9996394cb9526060acf3ec577e4625f218c70ab0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2005-09-16  Akim  <akim@epita.fr>
+
+       * src/symtab.h (struct symbol): Declare the printer and destructor
+       as const, to avoid accidental calls to free.
+       (symbol_destructor_set, symbol_printer_set): Adjust.
+       * src/symtab.c: Adjust.
+
 2005-09-16  Akim  <akim@epita.fr>
 
        * data/c.m4 (b4_token_enums): New.
index 1e0ec1cce9c96a68ab06ffff8c5304b961804dd3..8cbfc54f6c64d446306fa7e21bfe6cf725fd058f 100644 (file)
@@ -130,7 +130,7 @@ symbol_type_set (symbol *sym, uniqstr type_name, location loc)
 `------------------------------------------------------------------*/
 
 void
-symbol_destructor_set (symbol *sym, char *destructor, location loc)
+symbol_destructor_set (symbol *sym, const char *destructor, location loc)
 {
   if (destructor)
     {
@@ -147,7 +147,7 @@ symbol_destructor_set (symbol *sym, char *destructor, location loc)
 `---------------------------------------------------------------*/
 
 void
-symbol_printer_set (symbol *sym, char *printer, location loc)
+symbol_printer_set (symbol *sym, const char *printer, location loc)
 {
   if (printer)
     {
index 61caa539efb84aa4ab0225bbbf11243c672aa407..0f87c224fcb03144cf0bafda7aa6583482a5e730 100644 (file)
@@ -60,10 +60,12 @@ struct symbol
   uniqstr type_name;
   location type_location;
 
-  char *destructor;
+  /* Does not own the memory. */
+  const char *destructor;
   location destructor_location;
 
-  char *printer;
+  /* Does not own the memory. */
+  const char *printer;
   location printer_location;
 
   symbol_number number;
@@ -109,10 +111,10 @@ void symbol_make_alias (symbol *sym, symbol *symval, location loc);
 void symbol_type_set (symbol *sym, uniqstr type_name, location loc);
 
 /* Set the DESTRUCTOR associated with SYM.  */
-void symbol_destructor_set (symbol *sym, char *destructor, location loc);
+void symbol_destructor_set (symbol *sym, const char *destructor, location loc);
 
 /* Set the PRINTER associated with SYM.  */
-void symbol_printer_set (symbol *sym, char *printer, location loc);
+void symbol_printer_set (symbol *sym, const char *printer, location loc);
 
 /* Set the PRECEDENCE associated with SYM.  Ensure that SYMBOL is a
    terminal.  Do nothing if invoked with UNDEF_ASSOC as ASSOC.  */