]> 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:26:04 +0000 (23:26 -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.
(cherry picked from commit 6f75992be50b83a084f955f63e5c35ccc8705f08)

Conflicts:

data/lalr1.java

ChangeLog
THANKS
data/lalr1.java

index 5c25fa28468fb67d648d5a103e79d5116c2ddda0..b722256cecacb131b57190defd812dca46b175ff 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 e13924aa145d06b7c01c53c67794e5ff687562c6..02082c1c4eea37572bd29adee57dea0a595faa01 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 309fc956869cfc1c88065c64628a88c6171a0edc..e1b488c48690a525ab1510d3a340222b5e6f3579 100644 (file)
@@ -303,7 +303,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;