mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Use rb_block_call() instead of the deprecated rb_iterate()
This commit is contained in:
parent
4885c44bca
commit
e0e12202c7
2 changed files with 13 additions and 17 deletions
|
|
@ -343,10 +343,10 @@ describe "C-API Array function" do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "rb_iterate" do
|
describe "rb_block_call" do
|
||||||
it "calls an callback function as a block passed to an method" do
|
it "calls an callback function as a block passed to an method" do
|
||||||
s = [1,2,3,4]
|
s = [1,2,3,4]
|
||||||
s2 = @s.rb_iterate(s)
|
s2 = @s.rb_block_call(s)
|
||||||
|
|
||||||
s2.should == s
|
s2.should == s
|
||||||
|
|
||||||
|
|
@ -357,7 +357,7 @@ describe "C-API Array function" do
|
||||||
it "calls a function with the other function available as a block" do
|
it "calls a function with the other function available as a block" do
|
||||||
h = {a: 1, b: 2}
|
h = {a: 1, b: 2}
|
||||||
|
|
||||||
@s.rb_iterate_each_pair(h).sort.should == [1,2]
|
@s.rb_block_call_each_pair(h).sort.should == [1,2]
|
||||||
end
|
end
|
||||||
|
|
||||||
it "calls a function which can yield into the original block" do
|
it "calls a function which can yield into the original block" do
|
||||||
|
|
@ -371,7 +371,7 @@ describe "C-API Array function" do
|
||||||
yield 4
|
yield 4
|
||||||
end
|
end
|
||||||
|
|
||||||
@s.rb_iterate_then_yield(o) { |x| s2 << x }
|
@s.rb_block_call_then_yield(o) { |x| s2 << x }
|
||||||
|
|
||||||
s2.should == [1,2,3,4]
|
s2.should == [1,2,3,4]
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -196,10 +196,10 @@ static VALUE copy_ary(RB_BLOCK_CALL_FUNC_ARGLIST(el, new_ary)) {
|
||||||
return rb_ary_push(new_ary, el);
|
return rb_ary_push(new_ary, el);
|
||||||
}
|
}
|
||||||
|
|
||||||
static VALUE array_spec_rb_iterate(VALUE self, VALUE ary) {
|
static VALUE array_spec_rb_block_call(VALUE self, VALUE ary) {
|
||||||
VALUE new_ary = rb_ary_new();
|
VALUE new_ary = rb_ary_new();
|
||||||
|
|
||||||
rb_iterate(rb_each, ary, copy_ary, new_ary);
|
rb_block_call(ary, rb_intern("each"), 0, 0, copy_ary, new_ary);
|
||||||
|
|
||||||
return new_ary;
|
return new_ary;
|
||||||
}
|
}
|
||||||
|
|
@ -208,14 +208,10 @@ static VALUE sub_pair(RB_BLOCK_CALL_FUNC_ARGLIST(el, holder)) {
|
||||||
return rb_ary_push(holder, rb_ary_entry(el, 1));
|
return rb_ary_push(holder, rb_ary_entry(el, 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
static VALUE each_pair(VALUE obj) {
|
static VALUE array_spec_rb_block_call_each_pair(VALUE self, VALUE obj) {
|
||||||
return rb_funcall(obj, rb_intern("each_pair"), 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static VALUE array_spec_rb_iterate_each_pair(VALUE self, VALUE obj) {
|
|
||||||
VALUE new_ary = rb_ary_new();
|
VALUE new_ary = rb_ary_new();
|
||||||
|
|
||||||
rb_iterate(each_pair, obj, sub_pair, new_ary);
|
rb_block_call(obj, rb_intern("each_pair"), 0, 0, sub_pair, new_ary);
|
||||||
|
|
||||||
return new_ary;
|
return new_ary;
|
||||||
}
|
}
|
||||||
|
|
@ -225,8 +221,8 @@ static VALUE iter_yield(RB_BLOCK_CALL_FUNC_ARGLIST(el, ary)) {
|
||||||
return Qnil;
|
return Qnil;
|
||||||
}
|
}
|
||||||
|
|
||||||
static VALUE array_spec_rb_iterate_then_yield(VALUE self, VALUE obj) {
|
static VALUE array_spec_rb_block_call_then_yield(VALUE self, VALUE obj) {
|
||||||
rb_iterate(rb_each, obj, iter_yield, obj);
|
rb_block_call(obj, rb_intern("each"), 0, 0, iter_yield, obj);
|
||||||
return Qnil;
|
return Qnil;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -287,9 +283,9 @@ void Init_array_spec(void) {
|
||||||
rb_define_method(cls, "rb_ary_plus", array_spec_rb_ary_plus, 2);
|
rb_define_method(cls, "rb_ary_plus", array_spec_rb_ary_plus, 2);
|
||||||
rb_define_method(cls, "rb_ary_unshift", array_spec_rb_ary_unshift, 2);
|
rb_define_method(cls, "rb_ary_unshift", array_spec_rb_ary_unshift, 2);
|
||||||
rb_define_method(cls, "rb_assoc_new", array_spec_rb_assoc_new, 2);
|
rb_define_method(cls, "rb_assoc_new", array_spec_rb_assoc_new, 2);
|
||||||
rb_define_method(cls, "rb_iterate", array_spec_rb_iterate, 1);
|
rb_define_method(cls, "rb_block_call", array_spec_rb_block_call, 1);
|
||||||
rb_define_method(cls, "rb_iterate_each_pair", array_spec_rb_iterate_each_pair, 1);
|
rb_define_method(cls, "rb_block_call_each_pair", array_spec_rb_block_call_each_pair, 1);
|
||||||
rb_define_method(cls, "rb_iterate_then_yield", array_spec_rb_iterate_then_yield, 1);
|
rb_define_method(cls, "rb_block_call_then_yield", array_spec_rb_block_call_then_yield, 1);
|
||||||
rb_define_method(cls, "rb_mem_clear", array_spec_rb_mem_clear, 1);
|
rb_define_method(cls, "rb_mem_clear", array_spec_rb_mem_clear, 1);
|
||||||
rb_define_method(cls, "rb_ary_freeze", array_spec_rb_ary_freeze, 1);
|
rb_define_method(cls, "rb_ary_freeze", array_spec_rb_ary_freeze, 1);
|
||||||
rb_define_method(cls, "rb_ary_to_ary", array_spec_rb_ary_to_ary, 1);
|
rb_define_method(cls, "rb_ary_to_ary", array_spec_rb_ary_to_ary, 1);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue