summaryrefslogtreecommitdiff
path: root/parse.y
diff options
context:
space:
mode:
authorshyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-06-15 14:15:09 +0000
committershyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-06-15 14:15:09 +0000
commit8c9c9268a588c36633b5d2891899636cee4c2ba5 (patch)
tree15964e17c1297efd1f44e10937a5c5d37d7574d3 /parse.y
parent282a3cfb1cfb42b93c4bb5fe8b7392b9f8d8191e (diff)
merge revision(s) 16534:
* parse.y (top_local_setup): fixed memory leak bug based on a patch from Roger Pack <rogerpack2005 at gmail.com> in [ruby-core:16610]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@17315 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y3
1 files changed, 2 insertions, 1 deletions
diff --git a/parse.y b/parse.y
index 9531ab3236..bde7c7dbfa 100644
--- a/parse.y
+++ b/parse.y
@@ -5737,7 +5737,7 @@ top_local_setup()
rb_mem_clear(vars+i, len-i);
}
else {
- *vars++ = (VALUE)ruby_scope;
+ *vars++ = 0;
rb_mem_clear(vars, len);
}
ruby_scope->local_vars = vars;
@@ -5753,6 +5753,7 @@ top_local_setup()
if (!(ruby_scope->flags & SCOPE_CLONE))
xfree(ruby_scope->local_tbl);
}
+ ruby_scope->local_vars[-1] = 0; /* no reference needed */
ruby_scope->local_tbl = local_tbl();
}
}