]> git.saurik.com Git - bison.git/blobdiff - src/scan-code.l
Fix memory leaks in scanners generated by at least Flex 2.5.9 and
[bison.git] / src / scan-code.l
index d41c6e46043a6c78e5ed45709f97922b66d0b339..0a338b4e6fac23569cdfc5e9d2b336c9fb2881f8 100644 (file)
@@ -372,16 +372,14 @@ handle_action_at (symbol_list *rule, char *text, location at_loc)
    translation is for \a rule, in the context \a sc_context
    (SC_RULE_ACTION, SC_SYMBOL_ACTION, INITIAL).  */
 
-static char *
-translate_action (int sc_context, symbol_list *rule, const char *a, location l)
+static char const *
+translate_action (int sc_context, symbol_list *rule, char const *a, location l)
 {
   char *res;
   static bool initialized = false;
   if (!initialized)
     {
       obstack_init (&obstack_for_string);
-      /* The initial buffer, never used. */
-      yy_delete_buffer (YY_CURRENT_BUFFER);
       yy_flex_debug = 0;
       initialized = true;
     }
@@ -394,21 +392,21 @@ translate_action (int sc_context, symbol_list *rule, const char *a, location l)
   return res;
 }
 
-char *
+char const *
 translate_rule_action (symbol_list *rule)
 {
   return translate_action (SC_RULE_ACTION, rule, rule->action,
                           rule->action_location);
 }
 
-char *
-translate_symbol_action (const char *a, location l)
+char const *
+translate_symbol_action (char const *a, location l)
 {
   return translate_action (SC_SYMBOL_ACTION, NULL, a, l);
 }
 
-char *
-translate_code (const char *a, location l)
+char const *
+translate_code (char const *a, location l)
 {
   return translate_action (INITIAL, NULL, a, l);
 }
@@ -422,5 +420,5 @@ code_scanner_free (void)
 {
   obstack_free (&obstack_for_string, 0);
   /* Reclaim Flex's buffers.  */
-  yy_delete_buffer (YY_CURRENT_BUFFER);
+  yylex_destroy ();
 }