Ruby
2.0.0p247(2013-06-27revision41674)
|
#include "ruby/ruby.h"
#include "ruby/util.h"
#include "node.h"
#include "id.h"
#include "internal.h"
Go to the source code of this file.
#define DEFINE_ENUMFUNCS | ( | name | ) |
static VALUE enum_##name##_func(VALUE result, NODE *memo); \ \ static VALUE \ name##_i(VALUE i, VALUE memo, int argc, VALUE *argv) \ { \ return enum_##name##_func(rb_enum_values_pack(argc, argv), RNODE(memo)); \ } \ \ static VALUE \ name##_iter_i(VALUE i, VALUE memo, int argc, VALUE *argv) \ { \ return enum_##name##_func(enum_yield(argc, argv), RNODE(memo)); \ } \ \ static VALUE \ enum_##name##_func(VALUE result, NODE *memo)
#define ENUM_WANT_SVALUE | ( | ) |
do { \ i = rb_enum_values_pack(argc, argv); \ } while (0)
Definition at line 40 of file enum.c.
Referenced by chunk_ii(), count_i(), cycle_i(), drop_while_i(), each_cons_i(), each_slice_i(), each_val_i(), each_with_object_i(), find_all_i(), find_i(), find_index_i(), first_i(), grep_i(), grep_iter_i(), group_by_i(), inject_i(), inject_op_i(), max_by_i(), max_i(), max_ii(), min_by_i(), min_i(), min_ii(), minmax_by_i(), minmax_i(), minmax_ii(), partition_i(), reject_i(), slicebefore_ii(), and sort_by_i().
#define enum_yield rb_yield_values2 |
Definition at line 44 of file enum.c.
Referenced by collect_i(), count_iter_i(), find_index_iter_i(), flat_map_i(), and take_while_i().
#define ENUMFUNC | ( | name | ) | rb_block_given_p() ? name##_iter_i : name##_i |
Definition at line 953 of file enum.c.
Referenced by enum_all(), enum_any(), enum_none(), and enum_one().
Definition at line 29 of file enum.c.
Referenced by enum_each_cons_size(), max_by_i(), max_i(), min_by_i(), min_i(), minmax_by_i(), minmax_by_i_update(), minmax_i(), minmax_i_update(), and sort_by_cmp().
#define id_each idEach |
Definition at line 27 of file enum.c.
Referenced by chunk_i(), enum_all(), enum_any(), enum_collect(), enum_count(), enum_cycle(), enum_drop(), enum_drop_while(), enum_each_cons(), enum_each_entry(), enum_each_slice(), enum_each_with_index(), enum_each_with_object(), enum_find(), enum_find_all(), enum_find_index(), enum_first(), enum_flat_map(), enum_grep(), enum_group_by(), enum_inject(), enum_max(), enum_max_by(), enum_member(), enum_min(), enum_min_by(), enum_minmax(), enum_minmax_by(), enum_none(), enum_one(), enum_partition(), enum_reject(), enum_sort_by(), enum_take(), enum_take_while(), enum_to_a(), enum_zip(), and slicebefore_i().
Definition at line 28 of file enum.c.
Referenced by grep_i(), grep_iter_i(), and slicebefore_ii().
Definition at line 30 of file enum.c.
Referenced by chunk_i(), chunk_ii(), slicebefore_i(), and slicebefore_ii().
#define rb_intern | ( | str | ) | rb_intern_const(str) |
#define SORT_BY_BUFSIZE 16 |
Definition at line 781 of file enum.c.
Referenced by enum_sort_by(), and sort_by_i().
#define STATIC_ASSERT | ( | name, | |
expr | |||
) | typedef int static_assert_##name##_check[1 - 2*!(expr)] |
Definition at line 1963 of file enum.c.
References id_next, and rb_funcall().
Referenced by zip_i().
Definition at line 2369 of file enum.c.
References chunk_arg::categorize, chunk_ii(), id_each, id_lshift, MEMO_FOR, NEW_MEMO_FOR, NIL_P, chunk_arg::prev_elts, chunk_arg::prev_value, Qnil, rb_assoc_new(), rb_block_call(), rb_funcall(), rb_intern, rb_ivar_get(), rb_obj_dup(), chunk_arg::state, and chunk_arg::yielder.
Referenced by enum_chunk().
Definition at line 2319 of file enum.c.
References chunk_arg::categorize, ENUM_WANT_SVALUE, ID2SYM, id_call, id_lshift, MEMO_FOR, NIL_P, chunk_arg::prev_elts, chunk_arg::prev_value, Qnil, rb_ary_new3(), rb_ary_push(), rb_assoc_new(), rb_equal(), rb_eRuntimeError, rb_funcall(), rb_id2name(), rb_intern, rb_raise(), separator, chunk_arg::state, SYM2ID, SYMBOL_P, and chunk_arg::yielder.
Referenced by chunk_i().
static VALUE collect_all | ( | VALUE | i, |
VALUE | ary, | ||
int | argc, | ||
VALUE * | argv | ||
) | [static] |
Definition at line 403 of file enum.c.
References Qnil, rb_ary_push(), rb_enum_values_pack(), and rb_thread_check_ints().
Referenced by enum_to_a().
Definition at line 395 of file enum.c.
References enum_yield, Qnil, and rb_ary_push().
Referenced by enum_collect().
static VALUE count_all_i | ( | VALUE | i, |
VALUE | memop, | ||
int | argc, | ||
VALUE * | argv | ||
) | [static] |
Definition at line 124 of file enum.c.
References RNode::cnt, Qnil, RNODE, and RNode::u3.
Referenced by enum_count().
Definition at line 100 of file enum.c.
References RNode::cnt, ENUM_WANT_SVALUE, Qnil, rb_equal(), RNODE, RNode::u1, RNode::u3, and RNode::value.
Referenced by enum_count().
static VALUE count_iter_i | ( | VALUE | i, |
VALUE | memop, | ||
int | argc, | ||
VALUE * | argv | ||
) | [static] |
Definition at line 113 of file enum.c.
References RNode::cnt, enum_yield, Qnil, RNODE, RTEST, and RNode::u3.
Referenced by enum_count().
Definition at line 2232 of file enum.c.
References ENUM_WANT_SVALUE, Qnil, rb_ary_push(), and rb_yield().
Referenced by enum_cycle().
DEFINE_ENUMFUNCS | ( | all | ) |
DEFINE_ENUMFUNCS | ( | any | ) |
DEFINE_ENUMFUNCS | ( | one | ) |
DEFINE_ENUMFUNCS | ( | none | ) |
Definition at line 2145 of file enum.c.
References RNode::cnt, Qnil, rb_ary_push(), rb_enum_values_pack(), RNODE, RNode::u1, RNode::u3, and RNode::value.
Referenced by enum_drop().
static VALUE drop_while_i | ( | VALUE | i, |
VALUE | args, | ||
int | argc, | ||
VALUE * | argv | ||
) | [static] |
Definition at line 2188 of file enum.c.
References ENUM_WANT_SVALUE, Qnil, rb_ary_push(), rb_yield(), RNODE, RTEST, RNode::state, TRUE, RNode::u1, RNode::u3, and RNode::value.
Referenced by enum_drop_while().
static VALUE each_cons_i | ( | VALUE | i, |
VALUE | args, | ||
int | argc, | ||
VALUE * | argv | ||
) | [static] |
Definition at line 1834 of file enum.c.
References RNode::cnt, ENUM_WANT_SVALUE, Qnil, RARRAY_LEN, rb_ary_dup(), rb_ary_push(), rb_ary_shift(), rb_yield(), RNODE, size, RNode::u1, RNode::u3, and RNode::value.
Referenced by enum_each_cons().
static VALUE each_slice_i | ( | VALUE | i, |
VALUE | m, | ||
int | argc, | ||
VALUE * | argv | ||
) | [static] |
Definition at line 1767 of file enum.c.
References RNode::cnt, ENUM_WANT_SVALUE, Qnil, RARRAY_LEN, rb_ary_new2(), rb_ary_push(), rb_yield(), RNODE, size, RNode::u1, RNode::u3, and RNode::value.
Referenced by enum_each_slice().
static VALUE each_val_i | ( | VALUE | i, |
VALUE | p, | ||
int | argc, | ||
VALUE * | argv | ||
) | [static] |
Definition at line 1722 of file enum.c.
References ENUM_WANT_SVALUE, Qnil, and rb_yield().
Referenced by enum_each_entry().
static VALUE each_with_index_i | ( | VALUE | i, |
VALUE | memo, | ||
int | argc, | ||
VALUE * | argv | ||
) | [static] |
Definition at line 1646 of file enum.c.
References INT2NUM, rb_enum_values_pack(), rb_yield_values(), and RNODE.
Referenced by enum_each_with_index().
static VALUE each_with_object_i | ( | VALUE | i, |
VALUE | memo, | ||
int | argc, | ||
VALUE * | argv | ||
) | [static] |
Definition at line 1902 of file enum.c.
References ENUM_WANT_SVALUE, and rb_yield_values().
Referenced by enum_each_with_object().
Definition at line 1000 of file enum.c.
References ENUMFUNC, id_each, NEW_MEMO, Qtrue, and rb_block_call().
Referenced by Init_Enumerable().
Definition at line 1034 of file enum.c.
References ENUMFUNC, id_each, NEW_MEMO, Qfalse, and rb_block_call().
Referenced by Init_Enumerable().
static VALUE enum_chunk | ( | int | argc, |
VALUE * | argv, | ||
VALUE | enumerable | ||
) | [static] |
Definition at line 2487 of file enum.c.
References chunk_i(), rb_block_call(), rb_block_given_p(), rb_block_proc(), rb_cEnumerator, rb_eArgError, rb_intern, rb_ivar_set(), rb_obj_alloc(), rb_raise(), and rb_scan_args().
Referenced by Init_Enumerable().
static VALUE enum_collect | ( | VALUE | obj | ) | [static] |
Definition at line 429 of file enum.c.
References collect_i(), enum_size(), id_each, rb_ary_new(), rb_block_call(), and RETURN_SIZED_ENUMERATOR.
Referenced by Init_Enumerable().
static VALUE enum_count | ( | int | argc, |
VALUE * | argv, | ||
VALUE | obj | ||
) | [static] |
Definition at line 151 of file enum.c.
References count_all_i(), count_i(), count_iter_i(), func, id_each, INT2NUM, NEW_MEMO, Qnil, rb_block_call(), rb_block_given_p(), rb_scan_args(), and rb_warn().
Referenced by Init_Enumerable().
static VALUE enum_cycle | ( | int | argc, |
VALUE * | argv, | ||
VALUE | obj | ||
) | [static] |
Definition at line 2281 of file enum.c.
References cycle_i(), enum_cycle_size(), id_each, NIL_P, NUM2LONG, Qnil, RARRAY_LEN, RARRAY_PTR, rb_ary_new(), rb_block_call(), rb_scan_args(), rb_yield(), RBASIC, and RETURN_SIZED_ENUMERATOR.
Referenced by Init_Enumerable().
static VALUE enum_cycle_size | ( | VALUE | self, |
VALUE | args | ||
) | [static] |
Definition at line 2242 of file enum.c.
References DBL2NUM, enum_size(), INFINITY, INT2FIX, LONG2FIX, mul, NUM2LONG, Qnil, RARRAY_LEN, RARRAY_PTR, rb_funcall(), and size.
Referenced by enum_cycle().
Definition at line 2170 of file enum.c.
References drop_i(), id_each, NEW_MEMO, NUM2LONG, rb_ary_new(), rb_block_call(), rb_eArgError, rb_raise(), and result.
Referenced by Init_Enumerable().
static VALUE enum_drop_while | ( | VALUE | obj | ) | [static] |
Definition at line 2219 of file enum.c.
References drop_while_i(), FALSE, id_each, NEW_MEMO, rb_ary_new(), rb_block_call(), result, and RETURN_ENUMERATOR.
Referenced by Init_Enumerable().
static VALUE enum_each_cons | ( | VALUE | obj, |
VALUE | n | ||
) | [static] |
Definition at line 1888 of file enum.c.
References each_cons_i(), enum_each_cons_size(), id_each, NEW_MEMO, NUM2LONG, Qnil, rb_ary_new2(), rb_block_call(), rb_eArgError, rb_raise(), RETURN_SIZED_ENUMERATOR, and size.
Referenced by Init_Enumerable().
static VALUE enum_each_cons_size | ( | VALUE | obj, |
VALUE | args | ||
) | [static] |
Definition at line 1853 of file enum.c.
References enum_size(), id_cmp, LONG2FIX, LONG2NUM, NUM2LONG, Qnil, RARRAY_PTR, rb_cmpint(), rb_eArgError, rb_funcall(), rb_raise(), and size.
Referenced by enum_each_cons().
static VALUE enum_each_entry | ( | int | argc, |
VALUE * | argv, | ||
VALUE | obj | ||
) | [static] |
Definition at line 1759 of file enum.c.
References each_val_i(), enum_size(), id_each, rb_block_call(), and RETURN_SIZED_ENUMERATOR.
Referenced by Init_Enumerable().
static VALUE enum_each_slice | ( | VALUE | obj, |
VALUE | n | ||
) | [static] |
Definition at line 1816 of file enum.c.
References each_slice_i(), enum_each_slice_size(), id_each, NEW_MEMO, NUM2LONG, Qnil, RARRAY_LEN, rb_ary_new2(), rb_block_call(), rb_eArgError, rb_raise(), rb_yield(), RETURN_SIZED_ENUMERATOR, and size.
Referenced by Init_Enumerable().
static VALUE enum_each_slice_size | ( | VALUE | obj, |
VALUE | args | ||
) | [static] |
Definition at line 1786 of file enum.c.
References enum_size(), id_div, LONG2FIX, LONG2NUM, NUM2LONG, Qnil, RARRAY_PTR, rb_eArgError, rb_funcall(), rb_raise(), and size.
Referenced by enum_each_slice().
static VALUE enum_each_with_index | ( | int | argc, |
VALUE * | argv, | ||
VALUE | obj | ||
) | [static] |
Definition at line 1673 of file enum.c.
References each_with_index_i(), enum_size(), id_each, NEW_MEMO, rb_block_call(), and RETURN_SIZED_ENUMERATOR.
Referenced by Init_Enumerable().
static VALUE enum_each_with_object | ( | VALUE | obj, |
VALUE | memo | ||
) | [static] |
Definition at line 1923 of file enum.c.
References each_with_object_i(), enum_size(), id_each, rb_block_call(), and RETURN_SIZED_ENUMERATOR.
Referenced by Init_Enumerable().
Definition at line 212 of file enum.c.
References find_i(), id_call, id_each, NEW_MEMO, NIL_P, Qnil, Qundef, rb_block_call(), rb_funcall(), rb_scan_args(), and RETURN_ENUMERATOR.
Referenced by Init_Enumerable().
static VALUE enum_find_all | ( | VALUE | obj | ) | [static] |
Definition at line 341 of file enum.c.
References enum_size(), find_all_i(), id_each, rb_ary_new(), rb_block_call(), and RETURN_SIZED_ENUMERATOR.
Referenced by Init_Enumerable().
static VALUE enum_find_index | ( | int | argc, |
VALUE * | argv, | ||
VALUE | obj | ||
) | [static] |
Definition at line 278 of file enum.c.
References find_index_i(), find_index_iter_i(), func, id_each, NEW_MEMO, Qnil, rb_block_call(), rb_block_given_p(), rb_scan_args(), rb_warn(), and RETURN_ENUMERATOR.
Referenced by Init_Enumerable().
static VALUE enum_first | ( | int | argc, |
VALUE * | argv, | ||
VALUE | obj | ||
) | [static] |
Definition at line 743 of file enum.c.
References enum_take(), first_i(), id_each, NEW_MEMO, Qnil, rb_block_call(), and rb_check_arity.
Referenced by Init_Enumerable().
static VALUE enum_flat_map | ( | VALUE | obj | ) | [static] |
Definition at line 476 of file enum.c.
References enum_size(), flat_map_i(), id_each, rb_ary_new(), rb_block_call(), and RETURN_SIZED_ENUMERATOR.
Referenced by Init_Enumerable().
Definition at line 89 of file enum.c.
References grep_i(), grep_iter_i(), id_each, NEW_MEMO, rb_ary_new(), rb_block_call(), and rb_block_given_p().
Referenced by Init_Enumerable().
static VALUE enum_group_by | ( | VALUE | obj | ) | [static] |
Definition at line 699 of file enum.c.
References enum_size(), group_by_i(), hash(), id_each, OBJ_INFECT, rb_block_call(), rb_hash_new(), and RETURN_SIZED_ENUMERATOR.
Referenced by Init_Enumerable().
static VALUE enum_inject | ( | int | argc, |
VALUE * | argv, | ||
VALUE | obj | ||
) | [static] |
Definition at line 587 of file enum.c.
References id_each, inject_i(), inject_op_i(), NEW_MEMO, Qnil, rb_block_call(), rb_block_given_p(), rb_scan_args(), rb_to_id(), and rb_warning().
Referenced by Init_Enumerable().
Definition at line 1244 of file enum.c.
References id_each, max_i(), max_ii(), NEW_MEMO, Qnil, Qundef, rb_block_call(), rb_block_given_p(), result, RNode::u1, and RNode::value.
Referenced by Init_Enumerable().
static VALUE enum_max_by | ( | VALUE | obj | ) | [static] |
Definition at line 1494 of file enum.c.
References enum_size(), id_each, max_by_i(), NEW_MEMO, Qnil, Qundef, rb_block_call(), and RETURN_SIZED_ENUMERATOR.
Referenced by Init_Enumerable().
static VALUE enum_member | ( | VALUE | obj, |
VALUE | val | ||
) | [static] |
Definition at line 1637 of file enum.c.
References id_each, member_i(), NEW_MEMO, Qfalse, and rb_block_call().
Referenced by Init_Enumerable().
Definition at line 1173 of file enum.c.
References id_each, min_i(), min_ii(), NEW_MEMO, Qnil, Qundef, rb_block_call(), rb_block_given_p(), result, RNode::u1, and RNode::value.
Referenced by Init_Enumerable().
static VALUE enum_min_by | ( | VALUE | obj | ) | [static] |
Definition at line 1448 of file enum.c.
References enum_size(), id_each, min_by_i(), NEW_MEMO, Qnil, Qundef, rb_block_call(), and RETURN_SIZED_ENUMERATOR.
Referenced by Init_Enumerable().
static VALUE enum_minmax | ( | VALUE | obj | ) | [static] |
Definition at line 1388 of file enum.c.
References id_each, minmax_t::last, minmax_t::max, minmax_t::min, minmax_i(), minmax_i_update(), minmax_ii(), minmax_ii_update(), NEW_MEMO, Qnil, Qundef, rb_ary_new3(), rb_ary_store(), rb_block_call(), rb_block_given_p(), RNode::u1, and RNode::value.
Referenced by Init_Enumerable().
static VALUE enum_minmax_by | ( | VALUE | obj | ) | [static] |
Definition at line 1591 of file enum.c.
References enum_size(), id_each, minmax_by_t::last, minmax_by_t::last_bv, minmax_by_t::max, minmax_by_t::max_bv, MEMO_FOR, minmax_by_t::min, minmax_by_t::min_bv, minmax_by_i(), minmax_by_i_update(), NEW_MEMO_FOR, Qnil, Qundef, rb_assoc_new(), rb_block_call(), and RETURN_SIZED_ENUMERATOR.
Referenced by Init_Enumerable().
Definition at line 1110 of file enum.c.
References ENUMFUNC, id_each, NEW_MEMO, none, Qtrue, and rb_block_call().
Referenced by Init_Enumerable().
static VALUE enum_partition | ( | VALUE | obj | ) | [static] |
Definition at line 651 of file enum.c.
References enum_size(), id_each, NEW_MEMO, partition_i(), rb_ary_new(), rb_assoc_new(), rb_block_call(), and RETURN_SIZED_ENUMERATOR.
Referenced by Init_Enumerable().
static VALUE enum_reject | ( | VALUE | obj | ) | [static] |
Definition at line 382 of file enum.c.
References enum_size(), id_each, rb_ary_new(), rb_block_call(), reject_i(), and RETURN_SIZED_ENUMERATOR.
Referenced by Init_Enumerable().
static VALUE enum_reverse_each | ( | int | argc, |
VALUE * | argv, | ||
VALUE | obj | ||
) | [static] |
Definition at line 1704 of file enum.c.
References enum_size(), enum_to_a(), RARRAY_LEN, RARRAY_PTR, rb_yield(), and RETURN_SIZED_ENUMERATOR.
Referenced by Init_Enumerable().
Definition at line 313 of file enum.c.
References id_size, Qnil, Qundef, and rb_check_funcall().
Referenced by enum_collect(), enum_cycle_size(), enum_each_cons_size(), enum_each_entry(), enum_each_slice_size(), enum_each_with_index(), enum_each_with_object(), enum_find_all(), enum_flat_map(), enum_group_by(), enum_max_by(), enum_min_by(), enum_minmax_by(), enum_partition(), enum_reject(), enum_reverse_each(), and enum_sort_by().
static VALUE enum_slice_before | ( | int | argc, |
VALUE * | argv, | ||
VALUE | enumerable | ||
) | [static] |
Definition at line 2704 of file enum.c.
References rb_block_call(), rb_block_given_p(), rb_block_proc(), rb_cEnumerator, rb_intern, rb_ivar_set(), rb_obj_alloc(), rb_scan_args(), slicebefore_arg::sep_pat, and slicebefore_i().
Referenced by Init_Enumerable().
Definition at line 776 of file enum.c.
References enum_to_a(), and rb_ary_sort().
Referenced by Init_Enumerable().
static VALUE enum_sort_by | ( | VALUE | obj | ) | [static] |
Definition at line 905 of file enum.c.
References sort_by_data::ary, sort_by_data::buf, buf, enum_size(), id_each, LONG_MAX, sort_by_data::n, NEW_MEMO, OBJ_INFECT, Qnil, RARRAY_LEN, RARRAY_PTR, rb_ary_concat(), rb_ary_new(), rb_ary_new2(), rb_ary_resize(), rb_ary_store(), rb_ary_tmp_new(), rb_block_call(), rb_cArray, rb_eRuntimeError, rb_raise(), RB_TYPE_P, RBASIC, RETURN_SIZED_ENUMERATOR, ruby_qsort(), SORT_BY_BUFSIZE, sort_by_cmp(), sort_by_i(), T_ARRAY, and RNode::u1.
Referenced by Init_Enumerable().
Definition at line 2092 of file enum.c.
References id_each, NEW_MEMO, NUM2LONG, rb_ary_new2(), rb_block_call(), rb_eArgError, rb_raise(), result, and take_i().
Referenced by enum_first(), and Init_Enumerable().
static VALUE enum_take_while | ( | VALUE | obj | ) | [static] |
Definition at line 2134 of file enum.c.
References id_each, rb_ary_new(), rb_block_call(), RETURN_ENUMERATOR, and take_while_i().
Referenced by Init_Enumerable().
Definition at line 499 of file enum.c.
References collect_all(), id_each, OBJ_INFECT, rb_ary_new(), and rb_block_call().
Referenced by enum_reverse_each(), enum_sort(), and Init_Enumerable().
Definition at line 2033 of file enum.c.
References argc, args, CONST_ID, FALSE, ID2SYM, id_each, NIL_P, NODE_DOT2, Qnil, RARRAY_PTR, rb_ary_new(), rb_ary_new4(), rb_block_call(), rb_block_given_p(), rb_check_array_type(), rb_eTypeError, rb_funcall(), rb_node_newnode, rb_obj_classname(), rb_raise(), rb_respond_to(), result, TRUE, zip_ary(), and zip_i().
Referenced by Init_Enumerable().
static VALUE find_all_i | ( | VALUE | i, |
VALUE | ary, | ||
int | argc, | ||
VALUE * | argv | ||
) | [static] |
Definition at line 302 of file enum.c.
References ENUM_WANT_SVALUE, Qnil, rb_ary_push(), rb_yield(), and RTEST.
Referenced by enum_find_all().
Definition at line 179 of file enum.c.
References RNode::cnt, ENUM_WANT_SVALUE, Qnil, rb_iter_break(), rb_yield(), RNODE, RTEST, RNode::u1, RNode::u3, and RNode::value.
Referenced by enum_find().
static VALUE find_index_i | ( | VALUE | i, |
VALUE | memop, | ||
int | argc, | ||
VALUE * | argv | ||
) | [static] |
Definition at line 231 of file enum.c.
References RNode::cnt, ENUM_WANT_SVALUE, Qnil, rb_equal(), rb_iter_break(), RNODE, RNode::u1, RNode::u2, RNode::u3, UINT2NUM, and RNode::value.
Referenced by enum_find_index().
static VALUE find_index_iter_i | ( | VALUE | i, |
VALUE | memop, | ||
int | argc, | ||
VALUE * | argv | ||
) | [static] |
Definition at line 246 of file enum.c.
References RNode::cnt, enum_yield, Qnil, rb_iter_break(), RNODE, RTEST, RNode::u1, RNode::u3, UINT2NUM, and RNode::value.
Referenced by enum_find_index().
Definition at line 713 of file enum.c.
References ENUM_WANT_SVALUE, rb_iter_break(), RNODE, RNode::u1, UNREACHABLE, and RNode::value.
Referenced by enum_first().
static VALUE flat_map_i | ( | VALUE | i, |
VALUE | ary, | ||
int | argc, | ||
VALUE * | argv | ||
) | [static] |
Definition at line 442 of file enum.c.
References enum_yield, NIL_P, Qnil, rb_ary_concat(), rb_ary_push(), and rb_check_array_type().
Referenced by enum_flat_map().
Definition at line 47 of file enum.c.
References ENUM_WANT_SVALUE, id_eqq, Qnil, rb_ary_push(), rb_funcall(), RNODE, RTEST, RNode::u1, RNode::u2, and RNode::value.
Referenced by enum_grep().
static VALUE grep_iter_i | ( | VALUE | i, |
VALUE | args, | ||
int | argc, | ||
VALUE * | argv | ||
) | [static] |
Definition at line 59 of file enum.c.
References ENUM_WANT_SVALUE, id_eqq, Qnil, rb_ary_push(), rb_funcall(), rb_yield(), RNODE, RTEST, RNode::u1, RNode::u2, and RNode::value.
Referenced by enum_grep().
static VALUE group_by_i | ( | VALUE | i, |
VALUE | hash, | ||
int | argc, | ||
VALUE * | argv | ||
) | [static] |
Definition at line 664 of file enum.c.
References ENUM_WANT_SVALUE, Qnil, rb_ary_new3(), rb_ary_push(), rb_hash_aref(), rb_hash_aset(), RB_TYPE_P, rb_yield(), and T_ARRAY.
Referenced by enum_group_by().
void Init_Enumerable | ( | void | ) |
Definition at line 2738 of file enum.c.
References enum_all(), enum_any(), enum_chunk(), enum_collect(), enum_count(), enum_cycle(), enum_drop(), enum_drop_while(), enum_each_cons(), enum_each_entry(), enum_each_slice(), enum_each_with_index(), enum_each_with_object(), enum_find(), enum_find_all(), enum_find_index(), enum_first(), enum_flat_map(), enum_grep(), enum_group_by(), enum_inject(), enum_max(), enum_max_by(), enum_member(), enum_min(), enum_min_by(), enum_minmax(), enum_minmax_by(), enum_none(), enum_one(), enum_partition(), enum_reject(), enum_reverse_each(), enum_slice_before(), enum_sort(), enum_sort_by(), enum_take(), enum_take_while(), enum_to_a(), enum_zip(), id_call, id_div, id_next, id_size, rb_define_method(), rb_define_module(), rb_intern, and rb_mEnumerable.
Definition at line 510 of file enum.c.
References RNode::argc, ENUM_WANT_SVALUE, Qnil, rb_yield_values(), RNODE, RNode::u1, RNode::u2, and RNode::value.
Referenced by enum_inject().
static VALUE inject_op_i | ( | VALUE | i, |
VALUE | p, | ||
int | argc, | ||
VALUE * | argv | ||
) | [static] |
Definition at line 527 of file enum.c.
References RNode::argc, ENUM_WANT_SVALUE, RNode::id, Qnil, rb_funcall(), RNODE, RNode::u1, RNode::u2, RNode::u3, and RNode::value.
Referenced by enum_inject().
Definition at line 1460 of file enum.c.
References ENUM_WANT_SVALUE, id_cmp, Qnil, Qundef, rb_cmpint(), rb_funcall(), rb_yield(), RNODE, RNode::u1, RNode::u2, and RNode::value.
Referenced by enum_max_by().
Definition at line 1190 of file enum.c.
References cmp, ENUM_WANT_SVALUE, id_cmp, Qnil, Qundef, rb_cmpint(), rb_funcall(), RNODE, RNode::u1, and RNode::value.
Referenced by enum_max().
Definition at line 1210 of file enum.c.
References cmp, ENUM_WANT_SVALUE, Qnil, Qundef, rb_cmpint(), rb_yield_values(), RNODE, RNode::u1, and RNode::value.
Referenced by enum_max().
Definition at line 1612 of file enum.c.
References Qnil, Qtrue, rb_enum_values_pack(), rb_equal(), rb_iter_break(), RNODE, RNode::u1, RNode::u2, and RNode::value.
Referenced by enum_member().
Definition at line 1414 of file enum.c.
References ENUM_WANT_SVALUE, id_cmp, Qnil, Qundef, rb_cmpint(), rb_funcall(), rb_yield(), RNODE, RNode::u1, RNode::u2, and RNode::value.
Referenced by enum_min_by().
Definition at line 1118 of file enum.c.
References cmp, ENUM_WANT_SVALUE, id_cmp, Qnil, Qundef, rb_cmpint(), rb_funcall(), RNODE, RNode::u1, and RNode::value.
Referenced by enum_min().
Definition at line 1138 of file enum.c.
References cmp, ENUM_WANT_SVALUE, Qnil, Qundef, rb_cmpint(), rb_yield_values(), RNODE, RNode::u1, and RNode::value.
Referenced by enum_min().
static VALUE minmax_by_i | ( | VALUE | i, |
VALUE | _memo, | ||
int | argc, | ||
VALUE * | argv | ||
) | [static] |
Definition at line 1536 of file enum.c.
References ENUM_WANT_SVALUE, id_cmp, minmax_by_t::last, minmax_by_t::last_bv, MEMO_FOR, minmax_by_i_update(), Qnil, Qundef, rb_cmpint(), rb_funcall(), and rb_yield().
Referenced by enum_minmax_by().
static void minmax_by_i_update | ( | VALUE | v1, |
VALUE | v2, | ||
VALUE | i1, | ||
VALUE | i2, | ||
struct minmax_by_t * | memo | ||
) | [static] |
Definition at line 1515 of file enum.c.
References id_cmp, minmax_by_t::max, minmax_by_t::max_bv, minmax_by_t::min, minmax_by_t::min_bv, Qundef, rb_cmpint(), and rb_funcall().
Referenced by enum_minmax_by(), and minmax_by_i().
Definition at line 1290 of file enum.c.
References ENUM_WANT_SVALUE, id_cmp, minmax_t::last, minmax_i_update(), Qnil, Qundef, rb_cmpint(), rb_funcall(), and RNODE.
Referenced by enum_minmax().
static void minmax_i_update | ( | VALUE | i, |
VALUE | j, | ||
struct minmax_t * | memo | ||
) | [static] |
Definition at line 1269 of file enum.c.
References id_cmp, minmax_t::max, minmax_t::min, Qundef, rb_cmpint(), and rb_funcall().
Referenced by enum_minmax(), and minmax_i().
Definition at line 1342 of file enum.c.
References ENUM_WANT_SVALUE, minmax_t::last, minmax_ii_update(), Qnil, Qundef, rb_cmpint(), rb_yield_values(), and RNODE.
Referenced by enum_minmax().
static void minmax_ii_update | ( | VALUE | i, |
VALUE | j, | ||
struct minmax_t * | memo | ||
) | [static] |
Definition at line 1321 of file enum.c.
References minmax_t::max, minmax_t::min, Qundef, rb_cmpint(), and rb_yield_values().
Referenced by enum_minmax(), and minmax_ii().
static VALUE partition_i | ( | VALUE | i, |
VALUE | arys, | ||
int | argc, | ||
VALUE * | argv | ||
) | [static] |
Definition at line 619 of file enum.c.
References ENUM_WANT_SVALUE, Qnil, rb_ary_push(), rb_yield(), RNODE, RTEST, RNode::u1, RNode::u2, and RNode::value.
Referenced by enum_partition().
VALUE rb_enum_values_pack | ( | int | argc, |
VALUE * | argv | ||
) |
Definition at line 33 of file enum.c.
References Qnil, and rb_ary_new4().
Referenced by collect_all(), drop_i(), each_with_index_i(), lazy_grep_func(), lazy_grep_iter(), lazy_reject_func(), lazy_select_func(), member_i(), take_i(), take_while_i(), zip_ary(), and zip_i().
Definition at line 354 of file enum.c.
References ENUM_WANT_SVALUE, Qnil, rb_ary_push(), rb_yield(), and RTEST.
Referenced by enum_reject().
static VALUE slicebefore_i | ( | VALUE | yielder, |
VALUE | enumerator, | ||
int | argc, | ||
VALUE * | argv | ||
) | [static] |
Definition at line 2543 of file enum.c.
References id_each, id_lshift, MEMO_FOR, NEW_MEMO_FOR, NIL_P, slicebefore_arg::prev_elts, Qnil, rb_attr_get(), rb_block_call(), rb_funcall(), rb_intern, rb_ivar_get(), rb_obj_dup(), slicebefore_arg::sep_pat, slicebefore_arg::sep_pred, slicebefore_ii(), slicebefore_arg::state, and slicebefore_arg::yielder.
Referenced by enum_slice_before().
static VALUE slicebefore_ii | ( | VALUE | i, |
VALUE | _argp, | ||
int | argc, | ||
VALUE * | argv | ||
) | [static] |
Definition at line 2514 of file enum.c.
References ENUM_WANT_SVALUE, id_call, id_eqq, id_lshift, MEMO_FOR, NIL_P, slicebefore_arg::prev_elts, Qnil, rb_ary_new3(), rb_ary_push(), rb_funcall(), RTEST, slicebefore_arg::sep_pat, slicebefore_arg::sep_pred, slicebefore_arg::state, and slicebefore_arg::yielder.
Referenced by slicebefore_i().
static int sort_by_cmp | ( | const void * | ap, |
const void * | bp, | ||
void * | data | ||
) | [static] |
Definition at line 817 of file enum.c.
References sort_by_data::ary, id_cmp, rb_cmpint(), rb_eRuntimeError, rb_funcall(), rb_raise(), and RBASIC.
Referenced by enum_sort_by().
Definition at line 789 of file enum.c.
References sort_by_data::ary, sort_by_data::buf, ENUM_WANT_SVALUE, sort_by_data::n, Qnil, RARRAY_LEN, RARRAY_PTR, rb_ary_concat(), rb_eRuntimeError, rb_raise(), rb_yield(), RBASIC, RNODE, and SORT_BY_BUFSIZE.
Referenced by enum_sort_by().
Definition at line 2072 of file enum.c.
References RNode::cnt, Qnil, rb_ary_push(), rb_enum_values_pack(), rb_iter_break(), RNODE, RNode::u1, RNode::u3, and RNode::value.
Referenced by enum_take().
static VALUE take_while_i | ( | VALUE | i, |
VALUE | ary, | ||
int | argc, | ||
VALUE * | argv | ||
) | [static] |
Definition at line 2111 of file enum.c.
References enum_yield, Qnil, rb_ary_push(), rb_enum_values_pack(), rb_iter_break(), and RTEST.
Referenced by enum_take_while().
Definition at line 1933 of file enum.c.
References args, RNode::cnt, NIL_P, Qnil, RARRAY_LEN, RARRAY_PTR, rb_ary_new2(), rb_ary_push(), rb_ary_store(), rb_enum_values_pack(), rb_yield(), result, RNode::u1, RNode::u2, RNode::u3, and RNode::value.
Referenced by enum_zip().
Definition at line 1975 of file enum.c.
References args, call_next(), call_stop(), NIL_P, Qnil, Qundef, RARRAY_LEN, RARRAY_PTR, rb_ary_new2(), rb_ary_push(), rb_ary_store(), rb_enum_values_pack(), rb_eStopIteration, rb_rescue2(), rb_yield(), result, RNode::u1, RNode::u2, and RNode::value.
Referenced by enum_zip().
Definition at line 24 of file enum.c.
Referenced by chunk_ii(), enum_find(), Init_Enumerable(), and slicebefore_ii().
Definition at line 23 of file enum.c.
Referenced by enum_each_slice_size(), and Init_Enumerable().
Definition at line 22 of file enum.c.
Referenced by call_next(), and Init_Enumerable().
Definition at line 25 of file enum.c.
Referenced by enum_size(), and Init_Enumerable().
Definition at line 20 of file enum.c.
Referenced by Init_Array(), Init_dbm(), Init_Dir(), Init_Enumerable(), Init_etc(), Init_gdbm(), Init_Hash(), Init_IO(), Init_ossl_asn1(), Init_Range(), Init_readline(), Init_sdbm(), Init_stringio(), Init_Struct(), Init_zlib(), and InitVM_Enumerator().