]> git.saurik.com Git - bison.git/commitdiff
java: fix parser stack popping bug.
authorAngelo Borsotti <angelo.borsotti@gmail.com>
Mon, 7 Mar 2011 03:19:18 +0000 (22:19 -0500)
committerJoel E. Denny <jdenny@clemson.edu>
Mon, 7 Mar 2011 04:04:55 +0000 (23:04 -0500)
Reported at
<http://lists.gnu.org/archive/html/bug-bison/2011-02/msg00005.html>.
* THANKS (Angelo Borsotti): Add.
* data/lalr1.java (YYParser::YYStack::pop): Fix off-by-one error
in clearing the value stack.  Previously, the top element of the
stack wasn't cleared and so the value was not garbage collected.

ChangeLog
THANKS
data/lalr1.java

index 69efad5b39fa62c916037db40b95d3cd96378d51..6331311a80983219e862517d0d02e82a9a80442b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2011-03-06  Angelo Borsotti  <angelo.borsotti@gmail.com>  (tiny change)
+
+       java: fix parser stack popping bug.
+       Reported at
+       <http://lists.gnu.org/archive/html/bug-bison/2011-02/msg00005.html>.
+       * THANKS (Angelo Borsotti): Add.
+       * data/lalr1.java (YYParser::YYStack::pop): Fix off-by-one error
+       in clearing the value stack.  Previously, the top element of the
+       stack wasn't cleared and so the value was not garbage collected.
+
 2011-03-06  Joel E. Denny  <joeldenny@joeldenny.org>
 
        doc: cite publication for LAC.
diff --git a/THANKS b/THANKS
index 43acbed29f501162e1d2b978c89113f47be04f38..ac6047a4877d1d92500f54f6e7ed96ea21e17889 100644 (file)
--- a/THANKS
+++ b/THANKS
@@ -8,6 +8,7 @@ Alexander Belopolsky      alexb@rentec.com
 Alexandre Duret-Lutz      adl@src.lip6.fr
 Andreas Schwab            schwab@suse.de
 Andrew Suffield           asuffield@users.sourceforge.net
+Angelo Borsotti           angelo.borsotti@gmail.com
 Anthony Heading           ajrh@ajrh.net
 Arnold Robbins            arnold@skeeve.com
 Art Haas                  ahaas@neosoft.com
index aad54a3396b185ece747afe1d7b4b0c55248fabd..29005c28a8a7761b1e85bbc3ea637d59a5e853c9 100644 (file)
@@ -261,7 +261,7 @@ b4_lexer_if([[
     public final void pop (int num) {
       // Avoid memory leaks... garbage collection is a white lie!
       if (num > 0) {
-       java.util.Arrays.fill (valueStack, height - num + 1, height, null);
+       java.util.Arrays.fill (valueStack, height - num + 1, height + 1, null);
         ]b4_locations_if([[java.util.Arrays.fill (locStack, height - num + 1, height, null);]])[
       }
       height -= num;