Data Structures | Defines | Functions | Variables

enum.c File Reference

#include "ruby/ruby.h"
#include "ruby/util.h"
#include "node.h"
Include dependency graph for enum.c:

Go to the source code of this file.

Data Structures

struct  minmax_t
struct  minmax_by_t
struct  chunk_arg
struct  slicebefore_arg

Defines

#define ENUM_WANT_SVALUE()
#define enum_yield   rb_yield_values2
#define ENUMFUNC(name)   rb_block_given_p() ? name##_iter_i : name##_i
#define DEFINE_ENUMFUNCS(name)
#define rb_intern(str)   rb_intern_const(str)

Functions

static VALUE enum_values_pack (int argc, VALUE *argv)
static VALUE grep_i (VALUE i, VALUE args, int argc, VALUE *argv)
static VALUE grep_iter_i (VALUE i, VALUE args, int argc, VALUE *argv)
static VALUE enum_grep (VALUE obj, VALUE pat)
static VALUE count_i (VALUE i, VALUE memop, int argc, VALUE *argv)
static VALUE count_iter_i (VALUE i, VALUE memop, int argc, VALUE *argv)
static VALUE count_all_i (VALUE i, VALUE memop, int argc, VALUE *argv)
static VALUE enum_count (int argc, VALUE *argv, VALUE obj)
static VALUE find_i (VALUE i, VALUE *memo, int argc, VALUE *argv)
static VALUE enum_find (int argc, VALUE *argv, VALUE obj)
static VALUE find_index_i (VALUE i, VALUE memop, int argc, VALUE *argv)
static VALUE find_index_iter_i (VALUE i, VALUE memop, int argc, VALUE *argv)
static VALUE enum_find_index (int argc, VALUE *argv, VALUE obj)
static VALUE find_all_i (VALUE i, VALUE ary, int argc, VALUE *argv)
static VALUE enum_find_all (VALUE obj)
static VALUE reject_i (VALUE i, VALUE ary, int argc, VALUE *argv)
static VALUE enum_reject (VALUE obj)
static VALUE collect_i (VALUE i, VALUE ary, int argc, VALUE *argv)
static VALUE collect_all (VALUE i, VALUE ary, int argc, VALUE *argv)
static VALUE enum_collect (VALUE obj)
static VALUE flat_map_i (VALUE i, VALUE ary, int argc, VALUE *argv)
static VALUE enum_flat_map (VALUE obj)
static VALUE enum_to_a (int argc, VALUE *argv, VALUE obj)
static VALUE inject_i (VALUE i, VALUE p, int argc, VALUE *argv)
static VALUE inject_op_i (VALUE i, VALUE p, int argc, VALUE *argv)
static VALUE enum_inject (int argc, VALUE *argv, VALUE obj)
static VALUE partition_i (VALUE i, VALUE *ary, int argc, VALUE *argv)
static VALUE enum_partition (VALUE obj)
static VALUE group_by_i (VALUE i, VALUE hash, int argc, VALUE *argv)
static VALUE enum_group_by (VALUE obj)
static VALUE first_i (VALUE i, VALUE *params, int argc, VALUE *argv)
static VALUE enum_first (int argc, VALUE *argv, VALUE obj)
static VALUE enum_sort (VALUE obj)
static VALUE sort_by_i (VALUE i, VALUE ary, int argc, VALUE *argv)
static int sort_by_cmp (const void *ap, const void *bp, void *data)
static VALUE enum_sort_by (VALUE obj)
 DEFINE_ENUMFUNCS (all)
static VALUE enum_all (VALUE obj)
 DEFINE_ENUMFUNCS (any)
static VALUE enum_any (VALUE obj)
 DEFINE_ENUMFUNCS (one)
static VALUE enum_one (VALUE obj)
 DEFINE_ENUMFUNCS (none)
static VALUE enum_none (VALUE obj)
static VALUE min_i (VALUE i, VALUE *memo, int argc, VALUE *argv)
static VALUE min_ii (VALUE i, VALUE *memo, int argc, VALUE *argv)
static VALUE enum_min (VALUE obj)
static VALUE max_i (VALUE i, VALUE *memo, int argc, VALUE *argv)
static VALUE max_ii (VALUE i, VALUE *memo, int argc, VALUE *argv)
static VALUE enum_max (VALUE obj)
static void minmax_i_update (VALUE i, VALUE j, struct minmax_t *memo)
static VALUE minmax_i (VALUE i, VALUE _memo, int argc, VALUE *argv)
static void minmax_ii_update (VALUE i, VALUE j, struct minmax_t *memo)
static VALUE minmax_ii (VALUE i, VALUE _memo, int argc, VALUE *argv)
static VALUE enum_minmax (VALUE obj)
static VALUE min_by_i (VALUE i, VALUE *memo, int argc, VALUE *argv)
static VALUE enum_min_by (VALUE obj)
static VALUE max_by_i (VALUE i, VALUE *memo, int argc, VALUE *argv)
static VALUE enum_max_by (VALUE obj)
static void minmax_by_i_update (VALUE v1, VALUE v2, VALUE i1, VALUE i2, struct minmax_by_t *memo)
static VALUE minmax_by_i (VALUE i, VALUE _memo, int argc, VALUE *argv)
static VALUE enum_minmax_by (VALUE obj)
static VALUE member_i (VALUE iter, VALUE *memo, int argc, VALUE *argv)
static VALUE enum_member (VALUE obj, VALUE val)
static VALUE each_with_index_i (VALUE i, VALUE memo, int argc, VALUE *argv)
static VALUE enum_each_with_index (int argc, VALUE *argv, VALUE obj)
static VALUE enum_reverse_each (int argc, VALUE *argv, VALUE obj)
static VALUE each_val_i (VALUE i, VALUE p, int argc, VALUE *argv)
static VALUE enum_each_entry (int argc, VALUE *argv, VALUE obj)
static VALUE each_slice_i (VALUE i, VALUE *memo, int argc, VALUE *argv)
static VALUE enum_each_slice (VALUE obj, VALUE n)
static VALUE each_cons_i (VALUE i, VALUE *memo, int argc, VALUE *argv)
static VALUE enum_each_cons (VALUE obj, VALUE n)
static VALUE each_with_object_i (VALUE i, VALUE memo, int argc, VALUE *argv)
static VALUE enum_each_with_object (VALUE obj, VALUE memo)
static VALUE zip_ary (VALUE val, NODE *memo, int argc, VALUE *argv)
static VALUE call_next (VALUE *v)
static VALUE call_stop (VALUE *v)
static VALUE zip_i (VALUE val, NODE *memo, int argc, VALUE *argv)
static VALUE enum_zip (int argc, VALUE *argv, VALUE obj)
static VALUE take_i (VALUE i, VALUE *arg, int argc, VALUE *argv)
static VALUE enum_take (VALUE obj, VALUE n)
static VALUE take_while_i (VALUE i, VALUE *ary, int argc, VALUE *argv)
static VALUE enum_take_while (VALUE obj)
static VALUE drop_i (VALUE i, VALUE *arg, int argc, VALUE *argv)
static VALUE enum_drop (VALUE obj, VALUE n)
static VALUE drop_while_i (VALUE i, VALUE *args, int argc, VALUE *argv)
static VALUE enum_drop_while (VALUE obj)
static VALUE cycle_i (VALUE i, VALUE ary, int argc, VALUE *argv)
static VALUE enum_cycle (int argc, VALUE *argv, VALUE obj)
static VALUE chunk_ii (VALUE i, VALUE _argp, int argc, VALUE *argv)
static VALUE chunk_i (VALUE yielder, VALUE enumerator, int argc, VALUE *argv)
static VALUE enum_chunk (int argc, VALUE *argv, VALUE enumerable)
static VALUE slicebefore_ii (VALUE i, VALUE _argp, int argc, VALUE *argv)
static VALUE slicebefore_i (VALUE yielder, VALUE enumerator, int argc, VALUE *argv)
static VALUE enum_slice_before (int argc, VALUE *argv, VALUE enumerable)
void Init_Enumerable (void)

Variables

VALUE rb_mEnumerable
static ID id_each
static ID id_eqq
static ID id_cmp
static ID id_next
static ID id_size

Define Documentation

#define DEFINE_ENUMFUNCS (   name  ) 
Value:
static VALUE enum_##name##_func(VALUE result, VALUE *memo); \
\
static VALUE \
name##_i(VALUE i, VALUE *memo, int argc, VALUE *argv) \
{ \
    return enum_##name##_func(enum_values_pack(argc, argv), memo); \
} \
\
static VALUE \
name##_iter_i(VALUE i, VALUE *memo, int argc, VALUE *argv) \
{ \
    return enum_##name##_func(enum_yield(argc, argv), memo); \
} \
\
static VALUE \
enum_##name##_func(VALUE result, VALUE *memo)

Definition at line 898 of file enum.c.

#define ENUM_WANT_SVALUE (  ) 
#define enum_yield   rb_yield_values2

Definition at line 31 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 896 of file enum.c.

Referenced by enum_all(), enum_any(), enum_none(), and enum_one().

#define rb_intern (   str  )     rb_intern_const(str)

Function Documentation

static VALUE call_next ( VALUE v  )  [static]

Definition at line 1859 of file enum.c.

References id_next, and rb_funcall().

Referenced by zip_i().

static VALUE call_stop ( VALUE v  )  [static]

Definition at line 1865 of file enum.c.

Referenced by zip_i().

static VALUE chunk_i ( VALUE  yielder,
VALUE  enumerator,
int  argc,
VALUE argv 
) [static]
static VALUE chunk_ii ( VALUE  i,
VALUE  _argp,
int  argc,
VALUE argv 
) [static]
static VALUE collect_all ( VALUE  i,
VALUE  ary,
int  argc,
VALUE argv 
) [static]

Definition at line 377 of file enum.c.

References enum_values_pack(), rb_ary_push(), and rb_thread_check_ints().

Referenced by enum_to_a().

static VALUE collect_i ( VALUE  i,
VALUE  ary,
int  argc,
VALUE argv 
) [static]

Definition at line 369 of file enum.c.

References enum_yield, 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 114 of file enum.c.

static VALUE count_i ( VALUE  i,
VALUE  memop,
int  argc,
VALUE argv 
) [static]

Definition at line 90 of file enum.c.

References ENUM_WANT_SVALUE, and rb_equal().

static VALUE count_iter_i ( VALUE  i,
VALUE  memop,
int  argc,
VALUE argv 
) [static]

Definition at line 103 of file enum.c.

References enum_yield, and RTEST.

static VALUE cycle_i ( VALUE  i,
VALUE  ary,
int  argc,
VALUE argv 
) [static]

Definition at line 2118 of file enum.c.

References ENUM_WANT_SVALUE, rb_ary_push(), and rb_yield().

Referenced by enum_cycle().

DEFINE_ENUMFUNCS ( any   ) 

Definition at line 951 of file enum.c.

References rb_iter_break(), result, and RTEST.

DEFINE_ENUMFUNCS ( all   ) 

Definition at line 916 of file enum.c.

References rb_iter_break(), result, and RTEST.

DEFINE_ENUMFUNCS ( none   ) 

Definition at line 1029 of file enum.c.

References rb_iter_break(), result, and RTEST.

DEFINE_ENUMFUNCS ( one   ) 

Definition at line 987 of file enum.c.

References Qtrue, Qundef, rb_iter_break(), result, and RTEST.

static VALUE drop_i ( VALUE  i,
VALUE arg,
int  argc,
VALUE argv 
) [static]

Definition at line 2035 of file enum.c.

References enum_values_pack(), and rb_ary_push().

Referenced by enum_drop().

static VALUE drop_while_i ( VALUE  i,
VALUE args,
int  argc,
VALUE argv 
) [static]

Definition at line 2076 of file enum.c.

References ENUM_WANT_SVALUE, rb_ary_push(), rb_yield(), and RTEST.

Referenced by enum_drop_while().

static VALUE each_cons_i ( VALUE  i,
VALUE memo,
int  argc,
VALUE argv 
) [static]

Definition at line 1742 of file enum.c.

References ENUM_WANT_SVALUE, RARRAY_LEN, rb_ary_dup(), rb_ary_push(), rb_ary_shift(), rb_yield(), and size.

Referenced by enum_each_cons().

static VALUE each_slice_i ( VALUE  i,
VALUE memo,
int  argc,
VALUE argv 
) [static]

Definition at line 1688 of file enum.c.

References ENUM_WANT_SVALUE, RARRAY_LEN, rb_ary_new2(), rb_ary_push(), rb_yield(), and size.

Referenced by enum_each_slice().

static VALUE each_val_i ( VALUE  i,
VALUE  p,
int  argc,
VALUE argv 
) [static]

Definition at line 1647 of file enum.c.

References ENUM_WANT_SVALUE, 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 1578 of file enum.c.

References enum_values_pack(), INT2NUM(), and rb_yield_values().

Referenced by enum_each_with_index().

static VALUE each_with_object_i ( VALUE  i,
VALUE  memo,
int  argc,
VALUE argv 
) [static]

Definition at line 1797 of file enum.c.

References ENUM_WANT_SVALUE, and rb_yield_values().

Referenced by enum_each_with_object().

static VALUE enum_all ( VALUE  obj  )  [static]

Definition at line 943 of file enum.c.

References ENUMFUNC, id_each, rb_block_call, and result.

Referenced by Init_Enumerable().

static VALUE enum_any ( VALUE  obj  )  [static]

Definition at line 979 of file enum.c.

References ENUMFUNC, id_each, rb_block_call, and result.

Referenced by Init_Enumerable().

static VALUE enum_chunk ( int  argc,
VALUE argv,
VALUE  enumerable 
) [static]
static VALUE enum_collect ( VALUE  obj  )  [static]

Definition at line 403 of file enum.c.

References collect_i(), id_each, rb_ary_new(), rb_block_call, and RETURN_ENUMERATOR.

Referenced by Init_Enumerable().

static VALUE enum_count ( int  argc,
VALUE argv,
VALUE  obj 
) [static]

Definition at line 142 of file enum.c.

References func, id_each, INT2NUM(), 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]
static VALUE enum_drop ( VALUE  obj,
VALUE  n 
) [static]

Definition at line 2059 of file enum.c.

References drop_i(), id_each, len, NUM2LONG(), rb_ary_new(), rb_block_call, rb_eArgError, and rb_raise().

Referenced by Init_Enumerable().

static VALUE enum_drop_while ( VALUE  obj  )  [static]

Definition at line 2106 of file enum.c.

References drop_while_i(), id_each, rb_ary_new(), rb_block_call, and RETURN_ENUMERATOR.

Referenced by Init_Enumerable().

static VALUE enum_each_cons ( VALUE  obj,
VALUE  n 
) [static]
static VALUE enum_each_entry ( int  argc,
VALUE argv,
VALUE  obj 
) [static]

Definition at line 1680 of file enum.c.

References each_val_i(), id_each, rb_block_call, and RETURN_ENUMERATOR.

Referenced by Init_Enumerable().

static VALUE enum_each_slice ( VALUE  obj,
VALUE  n 
) [static]
static VALUE enum_each_with_index ( int  argc,
VALUE argv,
VALUE  obj 
) [static]

Definition at line 1605 of file enum.c.

References each_with_index_i(), id_each, rb_block_call, and RETURN_ENUMERATOR.

Referenced by Init_Enumerable().

static VALUE enum_each_with_object ( VALUE  obj,
VALUE  memo 
) [static]

Definition at line 1819 of file enum.c.

References each_with_object_i(), id_each, rb_block_call, and RETURN_ENUMERATOR.

Referenced by Init_Enumerable().

static VALUE enum_find ( int  argc,
VALUE argv,
VALUE  obj 
) [static]

Definition at line 200 of file enum.c.

References find_i(), id_each, NIL_P, Qundef, rb_block_call, rb_funcall(), rb_intern, rb_scan_args(), and RETURN_ENUMERATOR.

Referenced by Init_Enumerable().

static VALUE enum_find_all ( VALUE  obj  )  [static]

Definition at line 318 of file enum.c.

References find_all_i(), id_each, rb_ary_new(), rb_block_call, and RETURN_ENUMERATOR.

Referenced by Init_Enumerable().

static VALUE enum_find_index ( int  argc,
VALUE argv,
VALUE  obj 
) [static]

Definition at line 265 of file enum.c.

References func, id_each, 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 716 of file enum.c.

References first_i(), id_each, len, NUM2LONG(), rb_ary_new2(), rb_block_call, rb_eArgError, rb_raise(), and rb_scan_args().

Referenced by Init_Enumerable().

static VALUE enum_flat_map ( VALUE  obj  )  [static]

Definition at line 449 of file enum.c.

References flat_map_i(), id_each, rb_ary_new(), rb_block_call, and RETURN_ENUMERATOR.

Referenced by Init_Enumerable().

static VALUE enum_grep ( VALUE  obj,
VALUE  pat 
) [static]

Definition at line 76 of file enum.c.

References grep_i(), grep_iter_i(), id_each, 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 669 of file enum.c.

References group_by_i(), id_each, OBJ_INFECT, rb_block_call, rb_hash_new(), and RETURN_ENUMERATOR.

Referenced by Init_Enumerable().

static VALUE enum_inject ( int  argc,
VALUE argv,
VALUE  obj 
) [static]

Definition at line 560 of file enum.c.

References id_each, inject_i(), Qundef, rb_block_call, rb_block_given_p(), rb_scan_args(), rb_to_id(), and rb_warning().

Referenced by Init_Enumerable().

static VALUE enum_max ( VALUE  obj  )  [static]

Definition at line 1183 of file enum.c.

References id_each, max_i(), max_ii(), Qundef, rb_block_call, rb_block_given_p(), and result.

Referenced by Init_Enumerable().

static VALUE enum_max_by ( VALUE  obj  )  [static]

Definition at line 1427 of file enum.c.

References id_each, max_by_i(), rb_block_call, and RETURN_ENUMERATOR.

Referenced by Init_Enumerable().

static VALUE enum_member ( VALUE  obj,
VALUE  val 
) [static]

Definition at line 1567 of file enum.c.

References id_each, member_i(), and rb_block_call.

Referenced by Init_Enumerable().

static VALUE enum_min ( VALUE  obj  )  [static]

Definition at line 1116 of file enum.c.

References id_each, min_i(), min_ii(), Qundef, rb_block_call, rb_block_given_p(), and result.

Referenced by Init_Enumerable().

static VALUE enum_min_by ( VALUE  obj  )  [static]

Definition at line 1381 of file enum.c.

References id_each, min_by_i(), rb_block_call, and RETURN_ENUMERATOR.

Referenced by Init_Enumerable().

static VALUE enum_minmax ( VALUE  obj  )  [static]
static VALUE enum_minmax_by ( VALUE  obj  )  [static]
static VALUE enum_none ( VALUE  obj  )  [static]

Definition at line 1054 of file enum.c.

References ENUMFUNC, id_each, rb_block_call, and result.

Referenced by Init_Enumerable().

static VALUE enum_one ( VALUE  obj  )  [static]

Definition at line 1020 of file enum.c.

References ENUMFUNC, id_each, one(), Qundef, rb_block_call, and result.

Referenced by Init_Enumerable().

static VALUE enum_partition ( VALUE  obj  )  [static]

Definition at line 620 of file enum.c.

References id_each, partition_i(), rb_ary_new(), rb_assoc_new(), rb_block_call, and RETURN_ENUMERATOR.

Referenced by Init_Enumerable().

static VALUE enum_reject ( VALUE  obj  )  [static]

Definition at line 356 of file enum.c.

References id_each, rb_ary_new(), rb_block_call, reject_i(), and RETURN_ENUMERATOR.

Referenced by Init_Enumerable().

static VALUE enum_reverse_each ( int  argc,
VALUE argv,
VALUE  obj 
) [static]

Definition at line 1629 of file enum.c.

References enum_to_a(), RARRAY_LEN, RARRAY_PTR, rb_yield(), and RETURN_ENUMERATOR.

Referenced by Init_Enumerable().

static VALUE enum_slice_before ( int  argc,
VALUE argv,
VALUE  enumerable 
) [static]
static VALUE enum_sort ( VALUE  obj  )  [static]

Definition at line 759 of file enum.c.

References enum_to_a(), and rb_ary_sort().

Referenced by Init_Enumerable().

static VALUE enum_sort_by ( VALUE  obj  )  [static]
static VALUE enum_take ( VALUE  obj,
VALUE  n 
) [static]

Definition at line 1983 of file enum.c.

References id_each, len, NUM2LONG(), rb_ary_new(), rb_ary_new2(), rb_block_call, rb_eArgError, rb_raise(), and take_i().

Referenced by Init_Enumerable().

static VALUE enum_take_while ( VALUE  obj  )  [static]

Definition at line 2024 of file enum.c.

References id_each, rb_ary_new(), rb_block_call, RETURN_ENUMERATOR, and take_while_i().

Referenced by Init_Enumerable().

static VALUE enum_to_a ( int  argc,
VALUE argv,
VALUE  obj 
) [static]

Definition at line 472 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().

static VALUE enum_values_pack ( int  argc,
VALUE argv 
) [static]

Definition at line 20 of file enum.c.

References rb_ary_new4().

Referenced by collect_all(), drop_i(), each_with_index_i(), member_i(), take_i(), take_while_i(), zip_ary(), and zip_i().

static VALUE enum_zip ( int  argc,
VALUE argv,
VALUE  obj 
) [static]
static VALUE find_all_i ( VALUE  i,
VALUE  ary,
int  argc,
VALUE argv 
) [static]

Definition at line 289 of file enum.c.

References ENUM_WANT_SVALUE, rb_ary_push(), rb_yield(), and RTEST.

Referenced by enum_find_all().

static VALUE find_i ( VALUE  i,
VALUE memo,
int  argc,
VALUE argv 
) [static]

Definition at line 169 of file enum.c.

References ENUM_WANT_SVALUE, rb_iter_break(), rb_yield(), and RTEST.

Referenced by enum_find().

static VALUE find_index_i ( VALUE  i,
VALUE  memop,
int  argc,
VALUE argv 
) [static]

Definition at line 218 of file enum.c.

References ENUM_WANT_SVALUE, rb_equal(), rb_iter_break(), and UINT2NUM().

static VALUE find_index_iter_i ( VALUE  i,
VALUE  memop,
int  argc,
VALUE argv 
) [static]

Definition at line 233 of file enum.c.

References enum_yield, rb_iter_break(), RTEST, and UINT2NUM().

static VALUE first_i ( VALUE  i,
VALUE params,
int  argc,
VALUE argv 
) [static]

Definition at line 683 of file enum.c.

References ENUM_WANT_SVALUE, NIL_P, rb_ary_push(), and rb_iter_break().

Referenced by enum_first().

static VALUE flat_map_i ( VALUE  i,
VALUE  ary,
int  argc,
VALUE argv 
) [static]

Definition at line 416 of file enum.c.

References enum_yield, NIL_P, rb_ary_concat(), rb_ary_push(), and rb_check_array_type().

Referenced by enum_flat_map().

static VALUE grep_i ( VALUE  i,
VALUE  args,
int  argc,
VALUE argv 
) [static]

Definition at line 34 of file enum.c.

References ENUM_WANT_SVALUE, id_eqq, rb_ary_push(), rb_funcall(), and RTEST.

Referenced by enum_grep().

static VALUE grep_iter_i ( VALUE  i,
VALUE  args,
int  argc,
VALUE argv 
) [static]

Definition at line 46 of file enum.c.

References ENUM_WANT_SVALUE, id_eqq, rb_ary_push(), rb_funcall(), rb_yield(), and RTEST.

Referenced by enum_grep().

static VALUE group_by_i ( VALUE  i,
VALUE  hash,
int  argc,
VALUE argv 
) [static]

Definition at line 634 of file enum.c.

References ENUM_WANT_SVALUE, NIL_P, rb_ary_new3(), rb_ary_push(), rb_hash_aref(), rb_hash_aset(), and rb_yield().

Referenced by enum_group_by().

void Init_Enumerable ( void   ) 
static VALUE inject_i ( VALUE  i,
VALUE  p,
int  argc,
VALUE argv 
) [static]

Definition at line 483 of file enum.c.

References ENUM_WANT_SVALUE, Qundef, and rb_yield_values().

Referenced by enum_inject().

static VALUE inject_op_i ( VALUE  i,
VALUE  p,
int  argc,
VALUE argv 
) [static]

Definition at line 499 of file enum.c.

References ENUM_WANT_SVALUE, Qundef, and rb_funcall().

static VALUE max_by_i ( VALUE  i,
VALUE memo,
int  argc,
VALUE argv 
) [static]

Definition at line 1394 of file enum.c.

References ENUM_WANT_SVALUE, id_cmp, Qundef, rb_cmpint(), rb_funcall(), and rb_yield().

Referenced by enum_max_by().

static VALUE max_i ( VALUE  i,
VALUE memo,
int  argc,
VALUE argv 
) [static]

Definition at line 1131 of file enum.c.

References cmp, ENUM_WANT_SVALUE, id_cmp, Qundef, rb_cmpint(), and rb_funcall().

Referenced by enum_max().

static VALUE max_ii ( VALUE  i,
VALUE memo,
int  argc,
VALUE argv 
) [static]

Definition at line 1150 of file enum.c.

References cmp, ENUM_WANT_SVALUE, Qundef, rb_cmpint(), and rb_yield_values().

Referenced by enum_max().

static VALUE member_i ( VALUE  iter,
VALUE memo,
int  argc,
VALUE argv 
) [static]

Definition at line 1544 of file enum.c.

References enum_values_pack(), rb_equal(), and rb_iter_break().

Referenced by enum_member().

static VALUE min_by_i ( VALUE  i,
VALUE memo,
int  argc,
VALUE argv 
) [static]

Definition at line 1348 of file enum.c.

References ENUM_WANT_SVALUE, id_cmp, Qundef, rb_cmpint(), rb_funcall(), and rb_yield().

Referenced by enum_min_by().

static VALUE min_i ( VALUE  i,
VALUE memo,
int  argc,
VALUE argv 
) [static]

Definition at line 1063 of file enum.c.

References cmp, ENUM_WANT_SVALUE, id_cmp, Qundef, rb_cmpint(), and rb_funcall().

Referenced by enum_min().

static VALUE min_ii ( VALUE  i,
VALUE memo,
int  argc,
VALUE argv 
) [static]

Definition at line 1082 of file enum.c.

References cmp, ENUM_WANT_SVALUE, Qundef, rb_cmpint(), and rb_yield_values().

Referenced by enum_min().

static VALUE minmax_by_i ( VALUE  i,
VALUE  _memo,
int  argc,
VALUE argv 
) [static]
static void minmax_by_i_update ( VALUE  v1,
VALUE  v2,
VALUE  i1,
VALUE  i2,
struct minmax_by_t memo 
) [static]
static VALUE minmax_i ( VALUE  i,
VALUE  _memo,
int  argc,
VALUE argv 
) [static]

Definition at line 1225 of file enum.c.

References ENUM_WANT_SVALUE, id_cmp, minmax_t::last, minmax_i_update(), Qundef, rb_cmpint(), and rb_funcall().

Referenced by enum_minmax().

static void minmax_i_update ( VALUE  i,
VALUE  j,
struct minmax_t memo 
) [static]

Definition at line 1204 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().

static VALUE minmax_ii ( VALUE  i,
VALUE  _memo,
int  argc,
VALUE argv 
) [static]

Definition at line 1277 of file enum.c.

References ENUM_WANT_SVALUE, minmax_t::last, minmax_ii_update(), Qundef, rb_cmpint(), and rb_yield_values().

Referenced by enum_minmax().

static void minmax_ii_update ( VALUE  i,
VALUE  j,
struct minmax_t memo 
) [static]

Definition at line 1256 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 ary,
int  argc,
VALUE argv 
) [static]

Definition at line 591 of file enum.c.

References ENUM_WANT_SVALUE, rb_ary_push(), rb_yield(), and RTEST.

Referenced by enum_partition().

static VALUE reject_i ( VALUE  i,
VALUE  ary,
int  argc,
VALUE argv 
) [static]

Definition at line 331 of file enum.c.

References ENUM_WANT_SVALUE, rb_ary_push(), rb_yield(), and RTEST.

Referenced by enum_reject().

static VALUE slicebefore_i ( VALUE  yielder,
VALUE  enumerator,
int  argc,
VALUE argv 
) [static]
static VALUE slicebefore_ii ( VALUE  i,
VALUE  _argp,
int  argc,
VALUE argv 
) [static]
static int sort_by_cmp ( const void *  ap,
const void *  bp,
void *  data 
) [static]

Definition at line 781 of file enum.c.

References id_cmp, rb_cmpint(), rb_eRuntimeError, rb_funcall(), rb_raise(), and RBASIC.

Referenced by enum_sort_by().

static VALUE sort_by_i ( VALUE  i,
VALUE  ary,
int  argc,
VALUE argv 
) [static]
static VALUE take_i ( VALUE  i,
VALUE arg,
int  argc,
VALUE argv 
) [static]

Definition at line 1964 of file enum.c.

References enum_values_pack(), rb_ary_push(), and rb_iter_break().

Referenced by enum_take().

static VALUE take_while_i ( VALUE  i,
VALUE ary,
int  argc,
VALUE argv 
) [static]

Definition at line 2001 of file enum.c.

References enum_values_pack(), enum_yield, rb_ary_push(), rb_iter_break(), and RTEST.

Referenced by enum_take_while().

static VALUE zip_ary ( VALUE  val,
NODE memo,
int  argc,
VALUE argv 
) [static]
static VALUE zip_i ( VALUE  val,
NODE memo,
int  argc,
VALUE argv 
) [static]

Variable Documentation

ID id_cmp [static]
ID id_each [static]
ID id_eqq [static]

Definition at line 17 of file enum.c.

Referenced by grep_i(), grep_iter_i(), Init_Enumerable(), and slicebefore_ii().

ID id_next [static]

Definition at line 17 of file enum.c.

Referenced by call_next(), and Init_Enumerable().

ID id_size [static]

Definition at line 17 of file enum.c.

Referenced by Init_Enumerable().