From df2d69b49ab1c8b42dd6c18fb63df26aec95f364 Mon Sep 17 00:00:00 2001 From: matz Date: Mon, 26 Feb 2001 05:29:06 +0000 Subject: * eval.c (proc_call): should not modify ruby_block->frame.iter based on ruby_frame->iter altered by PUSH_ITER(). * eval.c (rb_thread_fd_close): should save current context before raising exception. * io.c (set_stdin): preserve original stdin. * io.c (set_outfile): preserve original stdout/stderr. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1219 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- array.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) (limited to 'array.c') diff --git a/array.c b/array.c index 768b7e8ffe..5695851f9c 100644 --- a/array.c +++ b/array.c @@ -283,14 +283,8 @@ rb_ary_push_m(argc, argv, ary) rb_raise(rb_eArgError, "wrong # of arguments(at least 1)"); } if (argc > 0) { - long len = RARRAY(ary)->len; - - --argc; - /* make rooms by copying the last item */ - rb_ary_store(ary, len + argc, argv[argc]); - - if (argc) { /* if any rest */ - MEMCPY(RARRAY(ary)->ptr + len, argv, VALUE, argc); + while (argc--) { + rb_ary_push(ary, *argv++); } } return ary; -- cgit v1.2.3