diff options
| author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2001-05-17 08:49:44 +0000 |
|---|---|---|
| committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2001-05-17 08:49:44 +0000 |
| commit | 4fd3a0b5d5f3ae606ad25d34464b7597beb44ace (patch) | |
| tree | d369e79d50446002f3bbffa4137e0e0d64ca424f /eval.c | |
| parent | 6a992cf724c72a1ff0bd6b24d77948eaa3462c26 (diff) | |
| download | ruby-4fd3a0b5d5f3ae606ad25d34464b7597beb44ace.tar.gz ruby-4fd3a0b5d5f3ae606ad25d34464b7597beb44ace.tar.xz ruby-4fd3a0b5d5f3ae606ad25d34464b7597beb44ace.zip | |
* eval.c (rb_call0): address of local_vars might change during eval.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@1417 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval.c')
| -rw-r--r-- | eval.c | 8 |
1 files changed, 6 insertions, 2 deletions
@@ -4435,11 +4435,15 @@ rb_call0(klass, recv, id, argc, argv, body, nosuper) } rb_eval(recv, opt); } + local_vars = ruby_scope->local_vars; if (node->nd_rest >= 0) { + VALUE v; + if (argc > 0) - local_vars[node->nd_rest]=rb_ary_new4(argc,argv); + v = rb_ary_new4(argc,argv); else - local_vars[node->nd_rest]=rb_ary_new2(0); + v = rb_ary_new2(0); + ruby_scope->local_vars[node->nd_rest] = v; } } } |
