зеркало из https://github.com/github/ruby.git
enumerator.c: use ALLOCV
* enumerator.c (lazy_init_iterator): use ALLOCV instead of tmp array. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53132 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
e996628bec
Коммит
5987e6a50b
10
enumerator.c
10
enumerator.c
|
@ -1331,14 +1331,14 @@ lazy_init_iterator(RB_BLOCK_CALL_FUNC_ARGLIST(val, m))
|
||||||
else {
|
else {
|
||||||
VALUE args;
|
VALUE args;
|
||||||
int len = rb_long2int((long)argc + 1);
|
int len = rb_long2int((long)argc + 1);
|
||||||
|
VALUE *nargv = ALLOCV_N(VALUE, args, len);
|
||||||
|
|
||||||
args = rb_ary_tmp_new(len);
|
nargv[0] = m;
|
||||||
rb_ary_push(args, m);
|
|
||||||
if (argc > 0) {
|
if (argc > 0) {
|
||||||
rb_ary_cat(args, argv, argc);
|
MEMCPY(nargv + 1, argv, VALUE, argc);
|
||||||
}
|
}
|
||||||
result = rb_yield_values2(len, RARRAY_CONST_PTR(args));
|
result = rb_yield_values2(len, nargv);
|
||||||
RB_GC_GUARD(args);
|
ALLOCV_END(args);
|
||||||
}
|
}
|
||||||
if (result == Qundef) rb_iter_break();
|
if (result == Qundef) rb_iter_break();
|
||||||
return Qnil;
|
return Qnil;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче