diff options
author | Angelo Borsotti <angelo.borsotti@gmail.com> | 2011-03-06 22:19:18 -0500 |
---|---|---|
committer | Joel E. Denny <jdenny@clemson.edu> | 2011-03-06 23:26:04 -0500 |
commit | 3f8ffd15eea8c3da460f8d40c80dd02cb1204a5a (patch) | |
tree | 415eca4b838c7ba0c74fb5a82645407d7a3f3057 | |
parent | 15e46f2df4623a5a4b2c2f50a1be20947a7e3099 (diff) | |
download | bison-3f8ffd15eea8c3da460f8d40c80dd02cb1204a5a.tar.gz |
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.
(cherry picked from commit 6f75992be50b83a084f955f63e5c35ccc8705f08)
Conflicts:
data/lalr1.java
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | THANKS | 1 | ||||
-rw-r--r-- | data/lalr1.java | 2 |
3 files changed, 12 insertions, 1 deletions
@@ -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. @@ -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 diff --git a/data/lalr1.java b/data/lalr1.java index 309fc956..e1b488c4 100644 --- a/data/lalr1.java +++ b/data/lalr1.java @@ -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; |