ruby-changes:11867
From: matz <ko1@a...>
Date: Fri, 22 May 2009 07:40:35 +0900 (JST)
Subject: [ruby-changes:11867] Ruby:r23525 (trunk): * array.c (rb_ary_slice_bang): avoid call of rb_scan_args() unless
matz 2009-05-22 07:35:43 +0900 (Fri, 22 May 2009) New Revision: 23525 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=23525 Log: * array.c (rb_ary_slice_bang): avoid call of rb_scan_args() unless it's really necessary. Modified files: trunk/ChangeLog trunk/array.c Index: array.c =================================================================== --- array.c (revision 23524) +++ array.c (revision 23525) @@ -2175,9 +2175,9 @@ long pos, len, orig_len; rb_ary_modify_check(ary); - if (rb_scan_args(argc, argv, "11", &arg1, &arg2) == 2) { - pos = NUM2LONG(arg1); - len = NUM2LONG(arg2); + if (argc == 2) { + pos = NUM2LONG(argv[0]); + len = NUM2LONG(argv[1]); delete_pos_len: if (len < 0) return Qnil; orig_len = RARRAY_LEN(ary); @@ -2196,6 +2196,12 @@ return arg2; } + if (argc != 1) { + /* error report */ + rb_scan_args(argc, argv, "11", NULL, NULL); + } + arg1 = argv[0]; + if (!FIXNUM_P(arg1)) { switch (rb_range_beg_len(arg1, &pos, &len, RARRAY_LEN(ary), 0)) { case Qtrue: Index: ChangeLog =================================================================== --- ChangeLog (revision 23524) +++ ChangeLog (revision 23525) @@ -1,3 +1,8 @@ +Fri May 22 05:09:43 2009 Yukihiro Matsumoto <matz@r...> + + * array.c (rb_ary_slice_bang): avoid call of rb_scan_args() unless + it's really necessary. + Thu May 21 22:17:52 2009 Nobuyoshi Nakada <nobu@r...> * template/id.h.tmpl, id.h (enum ruby_method_ids): added some IDs. -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/