Bug #5752 ยป array.c.patch
array.c | ||
---|---|---|
static VALUE
|
||
rb_ary_reject_bang(VALUE ary)
|
||
{
|
||
VALUE rejected_ary, result;
|
||
int state = 0;
|
||
RETURN_ENUMERATOR(ary, 0, 0);
|
||
return ary_reject_bang(ary);
|
||
rejected_ary = rb_ary_dup(ary);
|
||
result = rb_protect(ary_reject_bang, rejected_ary, &state);
|
||
rb_ary_replace(ary, rejected_ary);
|
||
if (state) rb_jump_tag(state);
|
||
return RTEST(result) ? ary : Qnil;
|
||
}
|
||
/*
|
||
... | ... | |
rb_ary_delete_if(VALUE ary)
|
||
{
|
||
RETURN_ENUMERATOR(ary, 0, 0);
|
||
ary_reject_bang(ary);
|
||
rb_ary_reject_bang(ary);
|
||
return ary;
|
||
}
|
||