Ruby  1.9.3p547(2014-05-14revision45962)
Data Structures | Macros | Enumerations | Functions | Variables
array.c File Reference
#include "ruby/ruby.h"
#include "ruby/util.h"
#include "ruby/st.h"
#include "ruby/encoding.h"
#include "internal.h"
#include <assert.h>
#include <stdarg.h>
Include dependency graph for array.c:

Go to the source code of this file.

Data Structures

struct  ary_sort_data
 

Macros

#define NDEBUG
 
#define numberof(array)   (int)(sizeof(array) / sizeof((array)[0]))
 
#define ARY_DEFAULT_SIZE   16
 
#define ARY_MAX_SIZE   (LONG_MAX / (int)sizeof(VALUE))
 
#define ARY_SHARED_P(ary)
 
#define ARY_EMBED_P(ary)
 
#define ARY_HEAP_PTR(a)   (assert(!ARY_EMBED_P(a)), RARRAY(a)->as.heap.ptr)
 
#define ARY_HEAP_LEN(a)   (assert(!ARY_EMBED_P(a)), RARRAY(a)->as.heap.len)
 
#define ARY_EMBED_PTR(a)   (assert(ARY_EMBED_P(a)), RARRAY(a)->as.ary)
 
#define ARY_EMBED_LEN(a)
 
#define ARY_OWNS_HEAP_P(a)   (!FL_TEST((a), ELTS_SHARED|RARRAY_EMBED_FLAG))
 
#define FL_SET_EMBED(a)
 
#define FL_UNSET_EMBED(ary)   FL_UNSET((ary), RARRAY_EMBED_FLAG|RARRAY_EMBED_LEN_MASK)
 
#define FL_SET_SHARED(ary)
 
#define FL_UNSET_SHARED(ary)   FL_UNSET((ary), ELTS_SHARED)
 
#define ARY_SET_PTR(ary, p)
 
#define ARY_SET_EMBED_LEN(ary, n)
 
#define ARY_SET_HEAP_LEN(ary, n)
 
#define ARY_SET_LEN(ary, n)
 
#define ARY_INCREASE_PTR(ary, n)
 
#define ARY_INCREASE_LEN(ary, n)
 
#define ARY_CAPA(ary)
 
#define ARY_SET_CAPA(ary, n)
 
#define ARY_SHARED(ary)   (assert(ARY_SHARED_P(ary)), RARRAY(ary)->as.heap.aux.shared)
 
#define ARY_SET_SHARED(ary, value)
 
#define RARRAY_SHARED_ROOT_FLAG   FL_USER5
 
#define ARY_SHARED_ROOT_P(ary)   (FL_TEST((ary), RARRAY_SHARED_ROOT_FLAG))
 
#define ARY_SHARED_NUM(ary)   (assert(ARY_SHARED_ROOT_P(ary)), RARRAY(ary)->as.heap.aux.capa)
 
#define ARY_SET_SHARED_NUM(ary, value)
 
#define FL_SET_SHARED_ROOT(ary)
 
#define STRING_P(s)   (TYPE(s) == T_STRING && CLASS_OF(s) == rb_cString)
 
#define SORT_OPTIMIZABLE_BIT(type)   (1U << TOKEN_PASTE(sort_opt_,type))
 
#define SORT_OPTIMIZABLE(data, type)
 
#define OPTHASH_GIVEN_P(opts)   (argc > 0 && !NIL_P((opts) = rb_check_hash_type(argv[argc-1])) && (--argc, 1))
 
#define RAND_UPTO(max)   (long)(rb_random_real(randgen)*(max))
 
#define tmpbuf(n, size)   rb_str_tmp_new((n)*(size))
 
#define tmpbuf_discard(s)   (rb_str_resize((s), 0L), RBASIC(s)->klass = rb_cString)
 
#define tmpary(n)   rb_ary_tmp_new(n)
 
#define tmpary_discard(a)   (ary_discard(a), RBASIC(a)->klass = rb_cArray)
 
#define rb_intern(str)   rb_intern_const(str)
 

Enumerations

enum  ary_take_pos_flags { ARY_TAKE_FIRST = 0, ARY_TAKE_LAST = 1 }
 
enum  { sort_opt_Fixnum, sort_opt_String, sort_optimizable_count }
 

Functions

void rb_mem_clear (register VALUE *mem, register long size)
 
static void memfill (register VALUE *mem, register long size, register VALUE val)
 
static void ary_resize_capa (VALUE ary, long capacity)
 
static void ary_double_capa (VALUE ary, long min)
 
static void rb_ary_decrement_share (VALUE shared)
 
static void rb_ary_unshare (VALUE ary)
 
static void rb_ary_unshare_safe (VALUE ary)
 
static VALUE rb_ary_increment_share (VALUE shared)
 
static void rb_ary_set_shared (VALUE ary, VALUE shared)
 
static void rb_ary_modify_check (VALUE ary)
 
void rb_ary_modify (VALUE ary)
 
VALUE rb_ary_freeze (VALUE ary)
 
static VALUE rb_ary_frozen_p (VALUE ary)
 
static VALUE ary_alloc (VALUE klass)
 
static VALUE ary_new (VALUE klass, long capa)
 
VALUE rb_ary_new2 (long capa)
 
VALUE rb_ary_new (void)
 
VALUE rb_ary_new3 (long n,...)
 
VALUE rb_ary_new4 (long n, const VALUE *elts)
 
VALUE rb_ary_tmp_new (long capa)
 
void rb_ary_free (VALUE ary)
 
RUBY_FUNC_EXPORTED size_t rb_ary_memsize (VALUE ary)
 
static void ary_discard (VALUE ary)
 
static VALUE ary_make_shared (VALUE ary)
 
static VALUE ary_make_substitution (VALUE ary)
 
VALUE rb_assoc_new (VALUE car, VALUE cdr)
 
static VALUE to_ary (VALUE ary)
 
VALUE rb_check_array_type (VALUE ary)
 
static VALUE rb_ary_s_try_convert (VALUE dummy, VALUE ary)
 
static VALUE rb_ary_initialize (int argc, VALUE *argv, VALUE ary)
 
static VALUE rb_ary_s_create (int argc, VALUE *argv, VALUE klass)
 
void rb_ary_store (VALUE ary, long idx, VALUE val)
 
static VALUE ary_make_partial (VALUE ary, VALUE klass, long offset, long len)
 
static VALUE ary_make_shared_copy (VALUE ary)
 
static VALUE ary_take_first_or_last (int argc, VALUE *argv, VALUE ary, enum ary_take_pos_flags last)
 
static VALUE rb_ary_push_1 (VALUE ary, VALUE item)
 
VALUE rb_ary_push (VALUE ary, VALUE item)
 
static VALUE rb_ary_push_m (int argc, VALUE *argv, VALUE ary)
 
VALUE rb_ary_pop (VALUE ary)
 
static VALUE rb_ary_pop_m (int argc, VALUE *argv, VALUE ary)
 
VALUE rb_ary_shift (VALUE ary)
 
static VALUE rb_ary_shift_m (int argc, VALUE *argv, VALUE ary)
 
static VALUE rb_ary_unshift_m (int argc, VALUE *argv, VALUE ary)
 
VALUE rb_ary_unshift (VALUE ary, VALUE item)
 
static VALUE rb_ary_elt (VALUE ary, long offset)
 
VALUE rb_ary_entry (VALUE ary, long offset)
 
VALUE rb_ary_subseq (VALUE ary, long beg, long len)
 
VALUE rb_ary_aref (int argc, VALUE *argv, VALUE ary)
 
static VALUE rb_ary_at (VALUE ary, VALUE pos)
 
static VALUE rb_ary_first (int argc, VALUE *argv, VALUE ary)
 
VALUE rb_ary_last (int argc, VALUE *argv, VALUE ary)
 
static VALUE rb_ary_fetch (int argc, VALUE *argv, VALUE ary)
 
static VALUE rb_ary_index (int argc, VALUE *argv, VALUE ary)
 
static VALUE rb_ary_rindex (int argc, VALUE *argv, VALUE ary)
 
VALUE rb_ary_to_ary (VALUE obj)
 
static void rb_ary_splice (VALUE ary, long beg, long len, VALUE rpl)
 
VALUE rb_ary_resize (VALUE ary, long len)
 expands or shrinks ary to len elements. More...
 
static VALUE rb_ary_aset (int argc, VALUE *argv, VALUE ary)
 
static VALUE rb_ary_insert (int argc, VALUE *argv, VALUE ary)
 
VALUE rb_ary_each (VALUE array)
 
static VALUE rb_ary_each_index (VALUE ary)
 
static VALUE rb_ary_reverse_each (VALUE ary)
 
static VALUE rb_ary_length (VALUE ary)
 
static VALUE rb_ary_empty_p (VALUE ary)
 
VALUE rb_ary_dup (VALUE ary)
 
VALUE rb_ary_resurrect (VALUE ary)
 
static void ary_join_1 (VALUE obj, VALUE ary, VALUE sep, long i, VALUE result, int *first)
 
static VALUE recursive_join (VALUE obj, VALUE argp, int recur)
 
static void ary_join_0 (VALUE ary, VALUE sep, long max, VALUE result)
 
VALUE rb_ary_join (VALUE ary, VALUE sep)
 
static VALUE rb_ary_join_m (int argc, VALUE *argv, VALUE ary)
 
static VALUE inspect_ary (VALUE ary, VALUE dummy, int recur)
 
static VALUE rb_ary_inspect (VALUE ary)
 
VALUE rb_ary_to_s (VALUE ary)
 
static VALUE rb_ary_to_a (VALUE ary)
 
static VALUE rb_ary_to_ary_m (VALUE ary)
 
static void ary_reverse (VALUE *p1, VALUE *p2)
 
VALUE rb_ary_reverse (VALUE ary)
 
static VALUE rb_ary_reverse_bang (VALUE ary)
 
static VALUE rb_ary_reverse_m (VALUE ary)
 
static long rotate_count (long cnt, long len)
 
VALUE rb_ary_rotate (VALUE ary, long cnt)
 
static VALUE rb_ary_rotate_bang (int argc, VALUE *argv, VALUE ary)
 
static VALUE rb_ary_rotate_m (int argc, VALUE *argv, VALUE ary)
 
static VALUE sort_reentered (VALUE ary)
 
static int sort_1 (const void *ap, const void *bp, void *dummy)
 
static int sort_2 (const void *ap, const void *bp, void *dummy)
 
VALUE rb_ary_sort_bang (VALUE ary)
 
VALUE rb_ary_sort (VALUE ary)
 
static VALUE sort_by_i (VALUE i)
 
static VALUE rb_ary_sort_by_bang (VALUE ary)
 
static VALUE rb_ary_collect (VALUE ary)
 
static VALUE rb_ary_collect_bang (VALUE ary)
 
VALUE rb_get_values_at (VALUE obj, long olen, int argc, VALUE *argv, VALUE(*func)(VALUE, long))
 
static VALUE rb_ary_values_at (int argc, VALUE *argv, VALUE ary)
 
static VALUE rb_ary_select (VALUE ary)
 
static VALUE rb_ary_select_bang (VALUE ary)
 
static VALUE rb_ary_keep_if (VALUE ary)
 
VALUE rb_ary_delete (VALUE ary, VALUE item)
 
VALUE rb_ary_delete_at (VALUE ary, long pos)
 
static VALUE rb_ary_delete_at_m (VALUE ary, VALUE pos)
 
static VALUE rb_ary_slice_bang (int argc, VALUE *argv, VALUE ary)
 
static VALUE ary_reject (VALUE orig, VALUE result)
 
static VALUE ary_reject_bang (VALUE ary)
 
static VALUE rb_ary_reject_bang (VALUE ary)
 
static VALUE rb_ary_reject (VALUE ary)
 
static VALUE rb_ary_delete_if (VALUE ary)
 
static VALUE take_i (VALUE val, VALUE *args, int argc, VALUE *argv)
 
static VALUE take_items (VALUE obj, long n)
 
static VALUE rb_ary_zip (int argc, VALUE *argv, VALUE ary)
 
static VALUE rb_ary_transpose (VALUE ary)
 
VALUE rb_ary_replace (VALUE copy, VALUE orig)
 
VALUE rb_ary_clear (VALUE ary)
 
static VALUE rb_ary_fill (int argc, VALUE *argv, VALUE ary)
 
VALUE rb_ary_plus (VALUE x, VALUE y)
 
VALUE rb_ary_concat (VALUE x, VALUE y)
 
static VALUE rb_ary_times (VALUE ary, VALUE times)
 
VALUE rb_ary_assoc (VALUE ary, VALUE key)
 
VALUE rb_ary_rassoc (VALUE ary, VALUE value)
 
static VALUE recursive_equal (VALUE ary1, VALUE ary2, int recur)
 
static VALUE rb_ary_equal (VALUE ary1, VALUE ary2)
 
static VALUE recursive_eql (VALUE ary1, VALUE ary2, int recur)
 
static VALUE rb_ary_eql (VALUE ary1, VALUE ary2)
 
static VALUE recursive_hash (VALUE ary, VALUE dummy, int recur)
 
static VALUE rb_ary_hash (VALUE ary)
 
VALUE rb_ary_includes (VALUE ary, VALUE item)
 
static VALUE recursive_cmp (VALUE ary1, VALUE ary2, int recur)
 
VALUE rb_ary_cmp (VALUE ary1, VALUE ary2)
 
static VALUE ary_add_hash (VALUE hash, VALUE ary)
 
static VALUE ary_tmp_hash_new (void)
 
static VALUE ary_make_hash (VALUE ary)
 
static VALUE ary_add_hash_by (VALUE hash, VALUE ary)
 
static VALUE ary_make_hash_by (VALUE ary)
 
static void ary_recycle_hash (VALUE hash)
 
static VALUE rb_ary_diff (VALUE ary1, VALUE ary2)
 
static VALUE rb_ary_and (VALUE ary1, VALUE ary2)
 
static VALUE rb_ary_or (VALUE ary1, VALUE ary2)
 
static int push_value (st_data_t key, st_data_t val, st_data_t ary)
 
static VALUE rb_ary_uniq_bang (VALUE ary)
 
static VALUE rb_ary_uniq (VALUE ary)
 
static VALUE rb_ary_compact_bang (VALUE ary)
 
static VALUE rb_ary_compact (VALUE ary)
 
static VALUE rb_ary_count (int argc, VALUE *argv, VALUE ary)
 
static VALUE flatten (VALUE ary, int level, int *modified)
 
static VALUE rb_ary_flatten_bang (int argc, VALUE *argv, VALUE ary)
 
static VALUE rb_ary_flatten (int argc, VALUE *argv, VALUE ary)
 
static VALUE rb_ary_shuffle_bang (int argc, VALUE *argv, VALUE ary)
 
static VALUE rb_ary_shuffle (int argc, VALUE *argv, VALUE ary)
 
static VALUE rb_ary_sample (int argc, VALUE *argv, VALUE ary)
 
static VALUE rb_ary_cycle (int argc, VALUE *argv, VALUE ary)
 
static void permute0 (long n, long r, long *p, long index, char *used, VALUE values)
 
static VALUE rb_ary_permutation (int argc, VALUE *argv, VALUE ary)
 
static VALUE rb_ary_combination (VALUE ary, VALUE num)
 
static void rpermute0 (long n, long r, long *p, long index, VALUE values)
 
static VALUE rb_ary_repeated_permutation (VALUE ary, VALUE num)
 
static void rcombinate0 (long n, long r, long *p, long index, long rest, VALUE values)
 
static VALUE rb_ary_repeated_combination (VALUE ary, VALUE num)
 
static VALUE rb_ary_product (int argc, VALUE *argv, VALUE ary)
 
static VALUE rb_ary_take (VALUE obj, VALUE n)
 
static VALUE rb_ary_take_while (VALUE ary)
 
static VALUE rb_ary_drop (VALUE ary, VALUE n)
 
static VALUE rb_ary_drop_while (VALUE ary)
 
void Init_Array (void)
 

Variables

VALUE rb_cArray
 
static ID id_cmp
 
VALUE rb_output_fs
 
static VALUE sym_random
 

Macro Definition Documentation

#define ARY_CAPA (   ary)
Value:
ARY_SHARED_ROOT_P(ary) ? RARRAY_LEN(ary) : RARRAY(ary)->as.heap.aux.capa)
#define RARRAY_LEN(ARRAY)
Definition: generator.h:39
#define ARY_SHARED_ROOT_P(ary)
Definition: array.c:135
#define RARRAY(obj)
Definition: ruby.h:911
#define ARY_EMBED_P(ary)
Definition: array.c:53
#define RARRAY_EMBED_LEN_MAX
Definition: ruby.h:690

Definition at line 118 of file array.c.

Referenced by ary_double_capa(), rb_ary_clear(), rb_ary_compact_bang(), rb_ary_delete(), rb_ary_fill(), rb_ary_pop(), rb_ary_push_1(), rb_ary_resize(), rb_ary_sort_bang(), rb_ary_splice(), rb_ary_store(), and rb_ary_unshift_m().

#define ARY_DEFAULT_SIZE   16
#define ARY_EMBED_LEN (   a)
Value:
(long)((RBASIC(a)->flags >> RARRAY_EMBED_LEN_SHIFT) & \
#define RBASIC(obj)
Definition: ruby.h:904
#define RARRAY_EMBED_LEN_MASK
Definition: ruby.h:707
#define RARRAY_EMBED_LEN_SHIFT
Definition: ruby.h:708
#define ARY_EMBED_P(ary)
Definition: array.c:53
#define assert(condition)
Definition: ossl.h:44
#define long
Definition: name2ctype.h:37

Definition at line 60 of file array.c.

Referenced by ary_resize_capa(), and rb_ary_sort_bang().

#define ARY_EMBED_P (   ary)
Value:
#define ELTS_SHARED
Definition: ruby.h:649
#define FL_TEST(x, f)
Definition: ruby.h:956
#define RARRAY_EMBED_FLAG
Definition: ruby.h:705
#define assert(condition)
Definition: ossl.h:44

Definition at line 53 of file array.c.

Referenced by ary_make_shared(), ary_resize_capa(), rb_ary_clear(), rb_ary_flatten_bang(), rb_ary_resize(), rb_ary_shift(), rb_ary_sort_bang(), rb_ary_uniq_bang(), and rb_ary_unshare_safe().

#define ARY_EMBED_PTR (   a)    (assert(ARY_EMBED_P(a)), RARRAY(a)->as.ary)
#define ARY_HEAP_LEN (   a)    (assert(!ARY_EMBED_P(a)), RARRAY(a)->as.heap.len)

Definition at line 58 of file array.c.

Referenced by ary_make_shared().

#define ARY_HEAP_PTR (   a)    (assert(!ARY_EMBED_P(a)), RARRAY(a)->as.heap.ptr)

Definition at line 57 of file array.c.

Referenced by rb_ary_free(), rb_ary_modify(), rb_ary_resize(), and rb_ary_sort_bang().

#define ARY_INCREASE_LEN (   ary,
 
)
Value:
do { \
if (ARY_EMBED_P(ary)) { \
ARY_SET_EMBED_LEN((ary), RARRAY_LEN(ary)+(n)); \
} \
else { \
RARRAY(ary)->as.heap.len += (n); \
} \
} while (0)
#define ARY_SET_EMBED_LEN(ary, n)
Definition: array.c:83
if(len<=MAX_WORD_LENGTH &&len >=MIN_WORD_LENGTH)
Definition: name2ctype.h:23841
#define RARRAY_LEN(ARRAY)
Definition: generator.h:39
#define RARRAY(obj)
Definition: ruby.h:911
#define OBJ_FROZEN(x)
Definition: ruby.h:969
#define ARY_EMBED_P(ary)
Definition: array.c:53
#define assert(condition)
Definition: ossl.h:44

Definition at line 108 of file array.c.

Referenced by rb_ary_delete_at(), rb_ary_pop_m(), rb_ary_shift(), rb_ary_shift_m(), and rb_ary_unshift_m().

#define ARY_INCREASE_PTR (   ary,
 
)
Value:
do { \
RARRAY(ary)->as.heap.ptr += (n); \
} while (0)
#define RARRAY(obj)
Definition: ruby.h:911
#define OBJ_FROZEN(x)
Definition: ruby.h:969
#define ARY_EMBED_P(ary)
Definition: array.c:53
#define assert(condition)
Definition: ossl.h:44

Definition at line 103 of file array.c.

Referenced by ary_make_partial(), rb_ary_shift(), and rb_ary_shift_m().

#define ARY_MAX_SIZE   (LONG_MAX / (int)sizeof(VALUE))
#define ARY_OWNS_HEAP_P (   a)    (!FL_TEST((a), ELTS_SHARED|RARRAY_EMBED_FLAG))

Definition at line 65 of file array.c.

Referenced by rb_ary_free(), rb_ary_initialize(), rb_ary_memsize(), rb_ary_pop(), and rb_ary_replace().

#define ARY_SET_CAPA (   ary,
 
)
Value:
do { \
RARRAY(ary)->as.heap.aux.capa = (n); \
} while (0)
#define ARY_SHARED_P(ary)
Definition: array.c:50
#define RARRAY(obj)
Definition: ruby.h:911
#define OBJ_FROZEN(x)
Definition: ruby.h:969
#define ARY_EMBED_P(ary)
Definition: array.c:53
#define assert(condition)
Definition: ossl.h:44

Definition at line 120 of file array.c.

Referenced by ary_new(), ary_resize_capa(), rb_ary_modify(), rb_ary_resize(), and rb_ary_sort_bang().

#define ARY_SET_EMBED_LEN (   ary,
 
)
Value:
do { \
long tmp_n = (n); \
RBASIC(ary)->flags |= (tmp_n) << RARRAY_EMBED_LEN_SHIFT; \
} while (0)
#define OBJ_FROZEN(x)
Definition: ruby.h:969
#define RBASIC(obj)
Definition: ruby.h:904
#define RARRAY_EMBED_LEN_MASK
Definition: ruby.h:707
#define RARRAY_EMBED_LEN_SHIFT
Definition: ruby.h:708
#define ARY_EMBED_P(ary)
Definition: array.c:53
#define assert(condition)
Definition: ossl.h:44
#define long
Definition: name2ctype.h:37

Definition at line 83 of file array.c.

Referenced by ary_alloc(), ary_make_partial(), ary_make_substitution(), rb_ary_flatten_bang(), rb_ary_initialize(), rb_ary_modify(), rb_ary_resize(), and rb_ary_sort_bang().

#define ARY_SET_HEAP_LEN (   ary,
 
)
Value:
do { \
RARRAY(ary)->as.heap.len = (n); \
} while (0)
#define RARRAY(obj)
Definition: ruby.h:911
#define ARY_EMBED_P(ary)
Definition: array.c:53
#define assert(condition)
Definition: ossl.h:44

Definition at line 90 of file array.c.

Referenced by ary_new(), ary_resize_capa(), rb_ary_resize(), and rb_ary_sort_bang().

#define ARY_SET_LEN (   ary,
 
)
Value:
do { \
if (ARY_EMBED_P(ary)) { \
ARY_SET_EMBED_LEN((ary), (n)); \
} \
else { \
ARY_SET_HEAP_LEN((ary), (n)); \
} \
assert(RARRAY_LEN(ary) == (n)); \
} while (0)
#define ARY_SET_EMBED_LEN(ary, n)
Definition: array.c:83
if(len<=MAX_WORD_LENGTH &&len >=MIN_WORD_LENGTH)
Definition: name2ctype.h:23841
#define RARRAY_LEN(ARRAY)
Definition: generator.h:39
#define ARY_EMBED_P(ary)
Definition: array.c:53
#define ARY_SET_HEAP_LEN(ary, n)
Definition: array.c:90
#define assert(condition)
Definition: ossl.h:44

Definition at line 94 of file array.c.

Referenced by ary_make_partial(), ary_make_shared(), ary_resize_capa(), permute0(), rb_ary_clear(), rb_ary_compact_bang(), rb_ary_delete(), rb_ary_dup(), rb_ary_fill(), rb_ary_initialize(), rb_ary_new3(), rb_ary_new4(), rb_ary_plus(), rb_ary_pop(), rb_ary_product(), rb_ary_push_1(), rb_ary_replace(), rb_ary_resize(), rb_ary_reverse_m(), rb_ary_rotate_m(), rb_ary_s_create(), rb_ary_sample(), rb_ary_select_bang(), rb_ary_sort_bang(), rb_ary_splice(), rb_ary_store(), rb_ary_times(), rb_ary_uniq_bang(), rcombinate0(), and rpermute0().

#define ARY_SET_PTR (   ary,
  p 
)
Value:
do { \
RARRAY(ary)->as.heap.ptr = (p); \
} while (0)
Win32OLEIDispatch * p
Definition: win32ole.c:778
#define RARRAY(obj)
Definition: ruby.h:911
#define OBJ_FROZEN(x)
Definition: ruby.h:969
#define ARY_EMBED_P(ary)
Definition: array.c:53
#define assert(condition)
Definition: ossl.h:44

Definition at line 78 of file array.c.

Referenced by ary_make_partial(), ary_make_shared(), ary_new(), ary_resize_capa(), rb_ary_modify(), rb_ary_replace(), and rb_ary_sort_bang().

#define ARY_SET_SHARED (   ary,
  value 
)
Value:
do { \
RARRAY(ary)->as.heap.aux.shared = (value); \
} while (0)
#define ARY_SHARED_ROOT_P(ary)
Definition: array.c:135
#define ARY_SHARED_P(ary)
Definition: array.c:50
#define RARRAY(obj)
Definition: ruby.h:911
#define ARY_EMBED_P(ary)
Definition: array.c:53
#define assert(condition)
Definition: ossl.h:44

Definition at line 128 of file array.c.

Referenced by ary_make_shared(), and rb_ary_set_shared().

#define ARY_SET_SHARED_NUM (   ary,
  value 
)
Value:
do { \
RARRAY(ary)->as.heap.aux.capa = (value); \
} while (0)
#define ARY_SHARED_ROOT_P(ary)
Definition: array.c:135
#define RARRAY(obj)
Definition: ruby.h:911
#define assert(condition)
Definition: ossl.h:44

Definition at line 138 of file array.c.

Referenced by ary_make_shared(), rb_ary_decrement_share(), and rb_ary_increment_share().

#define ARY_SHARED (   ary)    (assert(ARY_SHARED_P(ary)), RARRAY(ary)->as.heap.aux.shared)

Definition at line 127 of file array.c.

Referenced by ary_make_shared(), rb_ary_modify(), rb_ary_replace(), rb_ary_shift(), and rb_ary_shift_m().

#define ARY_SHARED_NUM (   ary)    (assert(ARY_SHARED_ROOT_P(ary)), RARRAY(ary)->as.heap.aux.capa)
#define ARY_SHARED_P (   ary)
Value:
#define ELTS_SHARED
Definition: ruby.h:649
#define FL_TEST(x, f)
Definition: ruby.h:956
#define RARRAY_EMBED_FLAG
Definition: ruby.h:705
#define assert(condition)
Definition: ossl.h:44

Definition at line 50 of file array.c.

Referenced by ary_make_shared(), ary_resize_capa(), rb_ary_clear(), rb_ary_modify(), rb_ary_replace(), rb_ary_shift(), rb_ary_shift_m(), rb_ary_sort_bang(), rb_ary_uniq_bang(), and rb_ary_unshare_safe().

#define ARY_SHARED_ROOT_P (   ary)    (FL_TEST((ary), RARRAY_SHARED_ROOT_FLAG))

Definition at line 135 of file array.c.

Referenced by ary_make_shared().

#define FL_SET_EMBED (   a)
Value:
do { \
} while (0)
#define ARY_SHARED_P(ary)
Definition: array.c:50
#define OBJ_FROZEN(x)
Definition: ruby.h:969
#define RARRAY_EMBED_FLAG
Definition: ruby.h:705
#define assert(condition)
Definition: ossl.h:44
#define FL_SET(x, f)
Definition: ruby.h:959

Definition at line 66 of file array.c.

Referenced by ary_alloc(), ary_resize_capa(), rb_ary_clear(), rb_ary_initialize(), rb_ary_modify(), rb_ary_replace(), rb_ary_sort_bang(), and rb_ary_uniq_bang().

#define FL_SET_SHARED (   ary)
Value:
do { \
FL_SET((ary), ELTS_SHARED); \
} while (0)
#define ELTS_SHARED
Definition: ruby.h:649
#define ARY_EMBED_P(ary)
Definition: array.c:53
#define assert(condition)
Definition: ossl.h:44
#define FL_SET(x, f)
Definition: ruby.h:959

Definition at line 72 of file array.c.

Referenced by ary_make_shared(), and rb_ary_set_shared().

#define FL_SET_SHARED_ROOT (   ary)
Value:
do { \
} while (0)
#define ARY_EMBED_P(ary)
Definition: array.c:53
#define assert(condition)
Definition: ossl.h:44
#define FL_SET(x, f)
Definition: ruby.h:959
#define RARRAY_SHARED_ROOT_FLAG
Definition: array.c:134

Definition at line 142 of file array.c.

Referenced by ary_make_shared().

#define FL_UNSET_EMBED (   ary)    FL_UNSET((ary), RARRAY_EMBED_FLAG|RARRAY_EMBED_LEN_MASK)
#define FL_UNSET_SHARED (   ary)    FL_UNSET((ary), ELTS_SHARED)

Definition at line 76 of file array.c.

Referenced by rb_ary_modify(), rb_ary_replace(), rb_ary_sort_bang(), and rb_ary_unshare().

#define NDEBUG

Definition at line 21 of file array.c.

#define numberof (   array)    (int)(sizeof(array) / sizeof((array)[0]))

Definition at line 25 of file array.c.

Referenced by rb_ary_sample().

#define OPTHASH_GIVEN_P (   opts)    (argc > 0 && !NIL_P((opts) = rb_check_hash_type(argv[argc-1])) && (--argc, 1))

Definition at line 3852 of file array.c.

Referenced by rb_ary_sample(), and rb_ary_shuffle_bang().

#define RAND_UPTO (   max)    (long)(rb_random_real(randgen)*(max))

Definition at line 3856 of file array.c.

Referenced by rb_ary_sample(), and rb_ary_shuffle_bang().

#define RARRAY_SHARED_ROOT_FLAG   FL_USER5

Definition at line 134 of file array.c.

#define rb_intern (   str)    rb_intern_const(str)

Referenced by argument_error(), asn1time_to_time(), big_op(), BigDecimal_div2(), BigDecimal_divmod(), BigDecimal_divremain(), BigDecimal_to_i(), BigDecimal_to_r(), BigDecimalCmp(), boot_defclass(), bsock_setsockopt(), bug_start(), callback(), cbsubst_def_attr_aliases(), cbsubst_get_subst_arg(), cbsubst_sym_to_subst(), cbsubst_table_setup(), check_exec_redirect(), check_exec_redirect_fd(), cleanup_iseq_build(), const_missing(), count_objects(), count_objects_size(), cto_i(), date_strftime_with_tmx(), default_inspect(), define_final(), dir_initialize(), dir_inspect(), dir_open_dir(), each_attr_def(), ecerr_destination_encoding(), ecerr_destination_encoding_name(), ecerr_error_bytes(), ecerr_error_char(), ecerr_incomplete_input(), ecerr_readagain_bytes(), ecerr_source_encoding(), ecerr_source_encoding_name(), echild_status(), error_print(), EVENTSINK_Invoke(), evs_length(), exc_message(), exc_to_s(), exit_status(), exit_success_p(), fdbm_replace(), fdbm_update(), fev_get_handler(), fev_set_handler(), fgdbm_replace(), fgdbm_update(), fole_s_show_help(), folemethod_event(), folemethod_name(), foleparam_inspect(), foleparam_name(), foletype_name(), foletype_s_ole_classes(), foletypelib_s_typelibs(), folevariable_inspect(), folevariable_name(), folevariant_value(), frame_func_id(), fsdbm_replace(), fsdbm_update(), function_call(), gc_profile_record_get(), gc_profile_result(), gc_stat(), generic_to_value(), get_backtrace(), get_eval_string_core(), get_iconv_opt(), GetConfigPtr(), global_id(), iconv_s_ctlmethods(), id_hash_new(), if(), Init_Array(), Init_bubblebabble(), Init_class_hierarchy(), Init_console(), Init_cparse(), Init_digest(), Init_dlcfunc(), Init_dlptr(), Init_Enumerator(), Init_iconv(), Init_md5(), Init_objspace(), Init_openssl(), Init_ossl_asn1(), Init_ossl_pkcs12(), Init_ossl_pkcs7(), Init_ossl_pkey(), Init_ossl_ssl(), Init_ossl_x509ext(), Init_ossl_x509name(), Init_ossl_x509store(), Init_parser(), Init_pathname(), Init_Proc(), Init_psych_emitter(), Init_psych_parser(), Init_Random(), Init_readline(), Init_rmd160(), Init_sha1(), Init_sha2(), Init_signal(), Init_strscan(), Init_Struct(), Init_syck(), Init_tcltklib(), Init_tkutil(), Init_transcode(), Init_vm_eval(), Init_win32ole(), Init_zlib(), io_getch(), ip_ruby_cmd(), ip_ruby_cmd_receiver_const_get(), iseq_data_to_ary(), iseq_load(), join_der(), make_econv_exception(), make_exception(), map_charset(), mark(), mktime_r(), mnew(), name_err_name(), name_err_to_s(), next_i(), nometh_err_args(), ole_const_load(), ole_invoke(), ole_method_params(), ole_search_handler_method(), ole_typelib_from_itypeinfo(), ole_variables(), olemethod_set_member(), oleparam_ole_param_from_index(), oletype_set_member(), ossl_call_client_cert_cb(), ossl_call_session_get_cb(), ossl_call_session_new_cb(), ossl_call_session_remove_cb(), ossl_call_tmp_dh_callback(), ossl_call_verify_cb_proc(), ossl_pkcs7_get_type(), ossl_pkcs7_set_certificates(), ossl_pkcs7_set_crls(), ossl_ssl_close(), ossl_ssl_initialize(), ossl_ssl_read_internal(), ossl_ssl_session_get_time(), ossl_ssl_session_set_time(), ossl_ssl_write_internal(), ossl_sslctx_flush_sessions(), ossl_sslctx_get_session_cache_stats(), ossl_sslctx_setup(), ossl_x509attr_get_value(), ossl_x509attr_initialize(), ossl_x509ext_initialize(), ossl_x509name_initialize(), ossl_x509store_verify(), path_atime(), path_basename(), path_binread(), path_blockdev_p(), path_chardev_p(), path_chmod(), path_chown(), path_ctime(), path_directory_p(), path_dirname(), path_each_entry(), path_each_line(), path_entries(), path_executable_p(), path_executable_real_p(), path_exist_p(), path_expand_path(), path_extname(), path_file_p(), path_fnmatch(), path_ftype(), path_grpowned_p(), path_lchmod(), path_lchown(), path_lstat(), path_make_link(), path_make_symlink(), path_mkdir(), path_mtime(), path_open(), path_opendir(), path_owned_p(), path_pipe_p(), path_read(), path_readable_p(), path_readable_real_p(), path_readlines(), path_readlink(), path_realdirpath(), path_realpath(), path_rename(), path_rmdir(), path_s_getwd(), path_s_glob(), path_setgid_p(), path_setuid_p(), path_size(), path_size_p(), path_socket_p(), path_split(), path_stat(), path_sticky_p(), path_sub(), path_symlink_p(), path_sysopen(), path_truncate(), path_unlink(), path_utime(), path_world_readable_p(), path_world_writable_p(), path_writable_p(), path_writable_real_p(), path_zero_p(), private_iv_get(), process_options(), pst_pid(), raise_method_missing(), random_equal(), rawmode_opt(), rb_ary_equal(), rb_ary_sort_by_bang(), rb_big_cmp(), rb_big_divmod(), rb_big_fdiv(), rb_big_idiv(), rb_big_pow(), rb_big_remainder(), rb_catch(), rb_cv_get(), rb_cv_set(), rb_define_alias(), rb_define_attr(), rb_define_class(), rb_define_class_under(), rb_define_class_variable(), rb_define_const(), rb_define_method(), rb_define_module(), rb_define_module_under(), rb_define_private_method(), rb_define_protected_method(), rb_eval_cmd(), rb_exc_new(), rb_exc_new3(), rb_exec_arg_addopt(), rb_exec_arg_prepare(), rb_f_chomp(), rb_f_chop(), rb_f_exec(), rb_f_gsub(), rb_f_sub(), rb_iv_get(), rb_iv_set(), rb_mod_include(), rb_obj_basic_to_s_p(), rb_obj_extend(), rb_strftime_with_timespec(), rb_struct_define(), rb_struct_define_without_accessor(), rb_struct_iv_get(), rb_throw(), rb_undef_method(), rbtime2vtdate(), readline_attempted_completion_function(), readline_s_set_completion_proc(), register_label(), rescue_callback(), save_env(), set_argv(), set_backtrace(), set_max_block_time(), set_option_encoding_once(), sockopt_data(), sockopt_family_m(), sockopt_initialize(), sockopt_level(), sockopt_optname(), sockopt_unpack(), stop_result(), strio_readbyte(), strio_readchar(), strio_readline(), strio_sysread(), syserr_eqq(), syserr_errno(), syserr_initialize(), take_items(), unlink_body(), unlink_rescue(), vm_call_method(), vm_set_main_stack(), vtdate2rbtime(), with_funcall2(), with_funcall_passing_block(), and yaml_org_handler().

#define SORT_OPTIMIZABLE (   data,
  type 
)
Value:
(((data)->opt_inited & SORT_OPTIMIZABLE_BIT(type)) ? \
((data)->opt_methods & SORT_OPTIMIZABLE_BIT(type)) : \
(((data)->opt_inited |= SORT_OPTIMIZABLE_BIT(type)), \
rb_method_basic_definition_p(TOKEN_PASTE(rb_c,type), id_cmp) && \
((data)->opt_methods |= SORT_OPTIMIZABLE_BIT(type))))
static ID id_cmp
Definition: array.c:29
int type
Definition: tcltklib.c:107
int rb_method_basic_definition_p(VALUE, ID)
Definition: vm_method.c:1194
#define SORT_OPTIMIZABLE_BIT(type)
Definition: array.c:2024

Definition at line 2025 of file array.c.

Referenced by sort_2().

#define SORT_OPTIMIZABLE_BIT (   type)    (1U << TOKEN_PASTE(sort_opt_,type))

Definition at line 2024 of file array.c.

#define STRING_P (   s)    (TYPE(s) == T_STRING && CLASS_OF(s) == rb_cString)

Definition at line 2022 of file array.c.

Referenced by sort_2().

#define tmpary (   n)    rb_ary_tmp_new(n)

Definition at line 4083 of file array.c.

Referenced by rb_ary_combination(), and rb_ary_product().

#define tmpary_discard (   a)    (ary_discard(a), RBASIC(a)->klass = rb_cArray)

Definition at line 4084 of file array.c.

Referenced by rb_ary_combination(), and rb_ary_product().

#define tmpbuf (   n,
  size 
)    rb_str_tmp_new((n)*(size))
#define tmpbuf_discard (   s)    (rb_str_resize((s), 0L), RBASIC(s)->klass = rb_cString)

Enumeration Type Documentation

anonymous enum
Enumerator
sort_opt_Fixnum 
sort_opt_String 
sort_optimizable_count 

Definition at line 2016 of file array.c.

Enumerator
ARY_TAKE_FIRST 
ARY_TAKE_LAST 

Definition at line 697 of file array.c.

Function Documentation

static VALUE ary_add_hash ( VALUE  hash,
VALUE  ary 
)
static

Definition at line 3345 of file array.c.

References hash(), i, Qtrue, RARRAY_LEN, RARRAY_PTR, and rb_hash_aset().

Referenced by ary_make_hash(), and rb_ary_or().

static VALUE ary_add_hash_by ( VALUE  hash,
VALUE  ary 
)
static

Definition at line 3372 of file array.c.

References hash(), i, Qundef, RARRAY_LEN, rb_ary_elt(), rb_hash_aset(), rb_hash_lookup2(), rb_yield(), and v.

Referenced by ary_make_hash_by().

static VALUE ary_alloc ( VALUE  klass)
static

Definition at line 299 of file array.c.

References ARY_SET_EMBED_LEN, FL_SET_EMBED, NEWOBJ, OBJSETUP, and T_ARRAY.

Referenced by ary_make_partial(), ary_new(), and Init_Array().

static void ary_discard ( VALUE  ary)
inlinestatic

Definition at line 405 of file array.c.

References RARRAY_EMBED_FLAG, RARRAY_EMBED_LEN_MASK, rb_ary_free(), and RBASIC.

Referenced by rb_ary_flatten_bang(), and rb_ary_resize().

static void ary_double_capa ( VALUE  ary,
long  min 
)
static
static void ary_join_0 ( VALUE  ary,
VALUE  sep,
long  max,
VALUE  result 
)
static

Definition at line 1634 of file array.c.

References i, max(), NIL_P, OBJ_TAINT, OBJ_TAINTED, OBJ_UNTRUSTED, RARRAY_PTR, rb_enc_copy(), and rb_str_buf_append().

Referenced by rb_ary_join().

static void ary_join_1 ( VALUE  obj,
VALUE  ary,
VALUE  sep,
long  i,
VALUE  result,
int *  first 
)
static
static VALUE ary_make_hash ( VALUE  ary)
static

Definition at line 3365 of file array.c.

References ary_add_hash(), ary_tmp_hash_new(), and hash().

Referenced by rb_ary_and(), rb_ary_diff(), rb_ary_or(), rb_ary_uniq(), and rb_ary_uniq_bang().

static VALUE ary_make_hash_by ( VALUE  ary)
static

Definition at line 3386 of file array.c.

References ary_add_hash_by(), ary_tmp_hash_new(), and hash().

Referenced by rb_ary_uniq(), and rb_ary_uniq_bang().

static VALUE ary_make_partial ( VALUE  ary,
VALUE  klass,
long  offset,
long  len 
)
static
static VALUE ary_make_shared ( VALUE  ary)
static
static VALUE ary_make_shared_copy ( VALUE  ary)
static
static VALUE ary_make_substitution ( VALUE  ary)
static
static VALUE ary_new ( VALUE  klass,
long  capa 
)
static
static void ary_recycle_hash ( VALUE  hash)
inlinestatic

Definition at line 3393 of file array.c.

References RHASH, and st_free_table.

Referenced by rb_ary_and(), rb_ary_diff(), rb_ary_or(), rb_ary_uniq(), and rb_ary_uniq_bang().

static VALUE ary_reject ( VALUE  orig,
VALUE  result 
)
static

Definition at line 2585 of file array.c.

References i, RARRAY_LEN, RARRAY_PTR, rb_ary_push_1(), rb_yield(), result, RTEST, and v.

Referenced by rb_ary_reject().

static VALUE ary_reject_bang ( VALUE  ary)
static
static void ary_resize_capa ( VALUE  ary,
long  capacity 
)
static
static void ary_reverse ( VALUE p1,
VALUE p2 
)
static

Definition at line 1847 of file array.c.

Referenced by rb_ary_reverse(), and rb_ary_rotate().

static VALUE ary_take_first_or_last ( int  argc,
VALUE argv,
VALUE  ary,
enum ary_take_pos_flags  last 
)
static
static VALUE ary_tmp_hash_new ( void  )
inlinestatic

Definition at line 3356 of file array.c.

References hash(), rb_hash_new(), and RBASIC.

Referenced by ary_make_hash(), and ary_make_hash_by().

static VALUE flatten ( VALUE  ary,
int  level,
int *  modified 
)
static
void Init_Array ( void  )

Definition at line 4671 of file array.c.

References ary_alloc(), ID2SYM, id_cmp, rb_ary_and(), rb_ary_aref(), rb_ary_aset(), rb_ary_assoc(), rb_ary_at(), rb_ary_clear(), rb_ary_cmp(), rb_ary_collect(), rb_ary_collect_bang(), rb_ary_combination(), rb_ary_compact(), rb_ary_compact_bang(), rb_ary_concat(), rb_ary_count(), rb_ary_cycle(), rb_ary_delete(), rb_ary_delete_at_m(), rb_ary_delete_if(), rb_ary_diff(), rb_ary_drop(), rb_ary_drop_while(), rb_ary_each(), rb_ary_each_index(), rb_ary_empty_p(), rb_ary_eql(), rb_ary_equal(), rb_ary_fetch(), rb_ary_fill(), rb_ary_first(), rb_ary_flatten(), rb_ary_flatten_bang(), rb_ary_frozen_p(), rb_ary_hash(), rb_ary_includes(), rb_ary_index(), rb_ary_initialize(), rb_ary_insert(), rb_ary_inspect(), rb_ary_join_m(), rb_ary_keep_if(), rb_ary_last(), rb_ary_length(), rb_ary_or(), rb_ary_permutation(), rb_ary_plus(), rb_ary_pop_m(), rb_ary_product(), rb_ary_push(), rb_ary_push_m(), rb_ary_rassoc(), rb_ary_reject(), rb_ary_reject_bang(), rb_ary_repeated_combination(), rb_ary_repeated_permutation(), rb_ary_replace(), rb_ary_reverse_bang(), rb_ary_reverse_each(), rb_ary_reverse_m(), rb_ary_rindex(), rb_ary_rotate_bang(), rb_ary_rotate_m(), rb_ary_s_create(), rb_ary_s_try_convert(), rb_ary_sample(), rb_ary_select(), rb_ary_select_bang(), rb_ary_shift_m(), rb_ary_shuffle(), rb_ary_shuffle_bang(), rb_ary_slice_bang(), rb_ary_sort(), rb_ary_sort_bang(), rb_ary_sort_by_bang(), rb_ary_take(), rb_ary_take_while(), rb_ary_times(), rb_ary_to_a(), rb_ary_to_ary_m(), rb_ary_transpose(), rb_ary_uniq(), rb_ary_uniq_bang(), rb_ary_unshift_m(), rb_ary_values_at(), rb_ary_zip(), rb_cArray, rb_cObject, rb_define_alias(), rb_define_alloc_func(), rb_define_class(), rb_define_method(), rb_define_singleton_method(), rb_include_module(), rb_intern, and rb_mEnumerable.

static VALUE inspect_ary ( VALUE  ary,
VALUE  dummy,
int  recur 
)
static
static void memfill ( register VALUE mem,
register long  size,
register VALUE  val 
)
inlinestatic

Definition at line 43 of file array.c.

Referenced by rb_ary_initialize().

static void permute0 ( long  n,
long  r,
long p,
long  index,
char *  used,
VALUE  values 
)
static

Definition at line 4099 of file array.c.

References ARY_SET_LEN, i, RARRAY_PTR, rb_ary_new2(), rb_eRuntimeError, rb_raise(), rb_yield(), RBASIC, and result.

Referenced by rb_ary_permutation().

static int push_value ( st_data_t  key,
st_data_t  val,
st_data_t  ary 
)
static

Definition at line 3508 of file array.c.

References rb_ary_push(), and ST_CONTINUE.

Referenced by rb_ary_uniq(), and rb_ary_uniq_bang().

static VALUE rb_ary_and ( VALUE  ary1,
VALUE  ary2 
)
static
VALUE rb_ary_aref ( int  argc,
VALUE argv,
VALUE  ary 
)
static VALUE rb_ary_aset ( int  argc,
VALUE argv,
VALUE  ary 
)
static
VALUE rb_ary_assoc ( VALUE  ary,
VALUE  key 
)

Definition at line 3111 of file array.c.

References i, NIL_P, Qnil, RARRAY_LEN, RARRAY_PTR, rb_check_array_type(), rb_equal(), and v.

Referenced by Init_Array().

static VALUE rb_ary_at ( VALUE  ary,
VALUE  pos 
)
static

Definition at line 1061 of file array.c.

References NUM2LONG(), and rb_ary_entry().

Referenced by Init_Array().

VALUE rb_ary_clear ( VALUE  ary)
VALUE rb_ary_cmp ( VALUE  ary1,
VALUE  ary2 
)

Definition at line 3328 of file array.c.

References INT2FIX, len, NIL_P, Qnil, Qundef, RARRAY_LEN, rb_check_array_type(), rb_exec_recursive_paired(), recursive_cmp(), and v.

Referenced by Init_Array().

static VALUE rb_ary_collect ( VALUE  ary)
static

Definition at line 2230 of file array.c.

References i, RARRAY_LEN, RARRAY_PTR, rb_ary_new2(), rb_ary_push(), rb_yield(), and RETURN_ENUMERATOR.

Referenced by Init_Array().

static VALUE rb_ary_collect_bang ( VALUE  ary)
static
static VALUE rb_ary_combination ( VALUE  ary,
VALUE  num 
)
static
static VALUE rb_ary_compact ( VALUE  ary)
static

Definition at line 3668 of file array.c.

References ary_sort_data::ary, rb_ary_compact_bang(), and rb_ary_dup().

Referenced by Init_Array().

static VALUE rb_ary_compact_bang ( VALUE  ary)
static
VALUE rb_ary_concat ( VALUE  x,
VALUE  y 
)
static VALUE rb_ary_count ( int  argc,
VALUE argv,
VALUE  ary 
)
static

Definition at line 3693 of file array.c.

References i, LONG2NUM, RARRAY_LEN, RARRAY_PTR, rb_block_given_p(), rb_equal(), rb_scan_args(), rb_warn(), rb_yield(), RTEST, and v.

Referenced by Init_Array().

static VALUE rb_ary_cycle ( int  argc,
VALUE argv,
VALUE  ary 
)
static

Definition at line 4057 of file array.c.

References i, NIL_P, NUM2LONG(), Qnil, RARRAY_LEN, RARRAY_PTR, rb_scan_args(), rb_yield(), and RETURN_ENUMERATOR.

Referenced by Init_Array().

static void rb_ary_decrement_share ( VALUE  shared)
static
VALUE rb_ary_delete ( VALUE  ary,
VALUE  item 
)
VALUE rb_ary_delete_at ( VALUE  ary,
long  pos 
)
static VALUE rb_ary_delete_at_m ( VALUE  ary,
VALUE  pos 
)
static

Definition at line 2509 of file array.c.

References NUM2LONG(), and rb_ary_delete_at().

Referenced by Init_Array().

static VALUE rb_ary_delete_if ( VALUE  ary)
static

Definition at line 2683 of file array.c.

References ary_sort_data::ary, ary_reject_bang(), and RETURN_ENUMERATOR.

Referenced by Init_Array().

static VALUE rb_ary_diff ( VALUE  ary1,
VALUE  ary2 
)
static
static VALUE rb_ary_drop ( VALUE  ary,
VALUE  n 
)
static

Definition at line 4620 of file array.c.

References NUM2LONG(), Qnil, RARRAY_LEN, rb_ary_new(), rb_ary_subseq(), rb_eArgError, rb_raise(), and result.

Referenced by Init_Array(), and rb_ary_drop_while().

static VALUE rb_ary_drop_while ( VALUE  ary)
static

Definition at line 4650 of file array.c.

References i, LONG2FIX, RARRAY_LEN, RARRAY_PTR, rb_ary_drop(), rb_yield(), RETURN_ENUMERATOR, and RTEST.

Referenced by Init_Array().

VALUE rb_ary_dup ( VALUE  ary)
VALUE rb_ary_each ( VALUE  array)

Definition at line 1488 of file array.c.

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

Referenced by dir_s_glob(), Init_Array(), and ossl_asn1cons_each().

static VALUE rb_ary_each_index ( VALUE  ary)
static

Definition at line 1520 of file array.c.

References i, LONG2NUM, RARRAY_LEN, rb_yield(), and RETURN_ENUMERATOR.

Referenced by Init_Array().

static VALUE rb_ary_elt ( VALUE  ary,
long  offset 
)
inlinestatic
static VALUE rb_ary_empty_p ( VALUE  ary)
static

Definition at line 1589 of file array.c.

References Qfalse, Qtrue, and RARRAY_LEN.

Referenced by Init_Array().

VALUE rb_ary_entry ( VALUE  ary,
long  offset 
)

Definition at line 956 of file array.c.

References RARRAY_LEN, and rb_ary_elt().

Referenced by addrinfo_initialize(), addrinfo_ip_address(), addrinfo_ip_unpack(), addrinfo_mload(), ary2ptr_dispparams(), ary_len_of_dim(), ary_new_dim(), check_exec_fds(), check_exec_redirect(), dimension(), divmodv(), enc_register_at(), EVENTSINK_Invoke(), evs_entry(), foletypelib_initialize(), folevariant_initialize(), folevariant_s_array(), get_iconv_opt_i(), hash2named_arg(), iseq_build_from_ary_body(), iseq_data_to_ary(), iseq_load(), iseq_set_sequence(), JSON_parse_string(), lfp_svar_get(), match_i(), ole_ary_m_entry(), ole_invoke(), ole_invoke2(), ole_search_event(), ole_search_event_at(), oletypelib_search_registry2(), ossl_asn1cons_to_der(), ossl_call_client_cert_cb(), ossl_call_session_get_cb(), ossl_call_session_new_cb(), ossl_call_session_remove_cb(), ossl_sslctx_set_ciphers(), ossl_x509name_init_i(), path_split(), pty_close_pty(), rb_ary_aref(), rb_ary_at(), rb_ary_product(), rb_ary_values_at(), rb_econv_init_by_convpath(), rb_enc_aliases_enc_i(), rb_enc_from_encoding_index(), rb_exec_arg_addopt(), rb_exec_arg_prepare(), rb_f_exec(), rb_iseq_build_from_ary(), rb_iseq_disasm(), rb_reg_s_union(), rb_reg_s_union_m(), rb_run_exec_options_err(), rb_struct_each_pair(), rescue_callback(), save_env(), save_redirect_fd(), select_internal(), start_document(), syck_const_find(), syck_map_initialize(), syck_map_value_set(), syck_seq_value_set(), syck_set_ivars(), time_timespec(), and wdivmod().

static VALUE rb_ary_eql ( VALUE  ary1,
VALUE  ary2 
)
static

Definition at line 3218 of file array.c.

References Qfalse, Qtrue, RARRAY_LEN, rb_exec_recursive_paired(), recursive_eql(), T_ARRAY, and TYPE.

Referenced by Init_Array().

static VALUE rb_ary_equal ( VALUE  ary1,
VALUE  ary2 
)
static
static VALUE rb_ary_fetch ( int  argc,
VALUE argv,
VALUE  ary 
)
static
static VALUE rb_ary_fill ( int  argc,
VALUE argv,
VALUE  ary 
)
static
static VALUE rb_ary_first ( int  argc,
VALUE argv,
VALUE  ary 
)
static

Definition at line 1081 of file array.c.

References ARY_TAKE_FIRST, ary_take_first_or_last(), Qnil, RARRAY_LEN, and RARRAY_PTR.

Referenced by Init_Array().

static VALUE rb_ary_flatten ( int  argc,
VALUE argv,
VALUE  ary 
)
static

Definition at line 3837 of file array.c.

References ary_make_shared_copy(), flatten(), mod, NIL_P, NUM2INT, OBJ_INFECT, rb_scan_args(), and result.

Referenced by Init_Array().

static VALUE rb_ary_flatten_bang ( int  argc,
VALUE argv,
VALUE  ary 
)
static
void rb_ary_free ( VALUE  ary)
VALUE rb_ary_freeze ( VALUE  ary)

Definition at line 278 of file array.c.

References rb_obj_freeze().

Referenced by coverage_result_i(), curry(), make_curry_proc(), and rb_add_method().

static VALUE rb_ary_frozen_p ( VALUE  ary)
static

Definition at line 292 of file array.c.

References OBJ_FROZEN, Qfalse, and Qtrue.

Referenced by Init_Array().

static VALUE rb_ary_hash ( VALUE  ary)
static

Definition at line 3256 of file array.c.

References rb_exec_recursive_outer(), and recursive_hash().

Referenced by Init_Array().

VALUE rb_ary_includes ( VALUE  ary,
VALUE  item 
)

Definition at line 3275 of file array.c.

References i, Qfalse, Qtrue, RARRAY_LEN, RARRAY_PTR, and rb_equal().

Referenced by cv_i(), env_replace_i(), and Init_Array().

static VALUE rb_ary_increment_share ( VALUE  shared)
static

Definition at line 227 of file array.c.

References ARY_SET_SHARED_NUM, and ARY_SHARED_NUM.

Referenced by ary_make_substitution(), and rb_ary_set_shared().

static VALUE rb_ary_index ( int  argc,
VALUE argv,
VALUE  ary 
)
static
static VALUE rb_ary_initialize ( int  argc,
VALUE argv,
VALUE  ary 
)
static
static VALUE rb_ary_insert ( int  argc,
VALUE argv,
VALUE  ary 
)
static

Definition at line 1449 of file array.c.

References NUM2LONG(), RARRAY_LEN, rb_ary_modify_check(), rb_ary_new4(), rb_ary_splice(), rb_eArgError, and rb_raise().

Referenced by Init_Array().

static VALUE rb_ary_inspect ( VALUE  ary)
static

Definition at line 1802 of file array.c.

References inspect_ary(), RARRAY_LEN, rb_exec_recursive(), and rb_usascii_str_new2().

Referenced by Init_Array(), and rb_ary_to_s().

VALUE rb_ary_join ( VALUE  ary,
VALUE  sep 
)
static VALUE rb_ary_join_m ( int  argc,
VALUE argv,
VALUE  ary 
)
static

Definition at line 1759 of file array.c.

References NIL_P, rb_ary_join(), rb_output_fs, and rb_scan_args().

Referenced by Init_Array().

static VALUE rb_ary_keep_if ( VALUE  ary)
static

Definition at line 2410 of file array.c.

References ary_sort_data::ary, rb_ary_select_bang(), and RETURN_ENUMERATOR.

Referenced by Init_Array().

VALUE rb_ary_last ( int  argc,
VALUE argv,
VALUE  ary 
)

Definition at line 1106 of file array.c.

References ary_take_first_or_last(), ARY_TAKE_LAST, Qnil, RARRAY_LEN, and RARRAY_PTR.

Referenced by Init_Array(), and range_last().

static VALUE rb_ary_length ( VALUE  ary)
static

Definition at line 1573 of file array.c.

References len, LONG2NUM, and RARRAY_LEN.

Referenced by Init_Array().

RUBY_FUNC_EXPORTED size_t rb_ary_memsize ( VALUE  ary)

Definition at line 394 of file array.c.

References ARY_OWNS_HEAP_P, and RARRAY.

Referenced by memsize_of().

void rb_ary_modify ( VALUE  ary)
static void rb_ary_modify_check ( VALUE  ary)
inlinestatic
VALUE rb_ary_new ( void  )

Definition at line 339 of file array.c.

References RARRAY_EMBED_LEN_MAX, and rb_ary_new2().

Referenced by add_event_call_back(), add_modules(), addrinfo_list_new(), argf_readlines(), ary_new_dim(), cbsubst_get_extra_args_tbl(), cbsubst_table_setup(), check_exec_redirect(), class_instance_method_list(), debug_lines(), dir_globs(), econv_convpath(), enum_collect(), enum_cycle(), enum_drop(), enum_drop_while(), enum_find_all(), enum_flat_map(), enum_grep(), enum_partition(), enum_reject(), enum_sort_by(), enum_take(), enum_take_while(), enum_to_a(), enum_zip(), env_each_pair(), env_keys(), env_to_a(), env_values(), env_values_at(), EVENTSINK_Invoke(), fdbm_delete_if(), fdbm_keys(), fdbm_select(), fdbm_to_a(), fdbm_values(), fev_initialize(), fgdbm_delete_if(), fgdbm_keys(), fgdbm_select(), fgdbm_to_a(), fgdbm_values(), filename_completion_proc_call(), foletype_s_progids(), foletypelib_ole_types(), foletypelib_s_typelibs(), fsdbm_delete_if(), fsdbm_keys(), fsdbm_select(), fsdbm_to_a(), fsdbm_values(), gc_profile_record_get(), iconv_s_ctlmethods(), Init_load(), Init_ossl_asn1(), Init_VM(), Init_win32ole(), int_ossl_asn1_decode0_cons(), iseq_data_to_ary(), JSON_parse_array(), lfp_svar_set(), make_addrinfo(), make_hostent_internal(), nsdr(), ole_method_params(), ole_method_return_type_detail(), ole_methods(), ole_methods_from_typeinfo(), ole_param_ole_type_detail(), ole_type_impl_ole_types(), ole_variable_ole_type_detail(), ole_variables(), ole_variant2val(), ossl_asn1_decode0(), ossl_asn1_decode_all(), ossl_get_errors(), ossl_pkcs7_get_recipient(), ossl_pkcs7_get_signer(), ossl_sslctx_get_ciphers(), ossl_x509_get_extensions(), ossl_x509crl_get_extensions(), ossl_x509crl_get_revoked(), ossl_x509name_to_a(), ossl_x509req_get_attributes(), ossl_x509revoked_get_extensions(), ossl_x509stctx_get_chain(), pack_pack(), pack_unpack(), parse(), prepare_iseq_build(), proc_curry(), proc_waitall(), rb_ary_diff(), rb_ary_drop(), rb_ary_reject(), rb_call_end_proc(), rb_check_exec_env(), rb_enc_aliases(), rb_exec_arg_addopt(), rb_exec_fillarg(), rb_f_global_variables(), rb_f_local_variables(), rb_f_untrace_var(), rb_gzreader_readlines(), rb_hash_keys(), rb_hash_to_a(), rb_hash_values(), rb_insns_name_array(), rb_io_readlines(), rb_iseq_disasm(), rb_mod_ancestors(), rb_mod_class_variables(), rb_mod_included_modules(), rb_mod_nesting(), rb_obj_instance_variables(), rb_obj_singleton_methods(), rb_push_glob(), rb_reg_names(), rb_run_exec_options_err(), rb_scan_args(), rb_str_scan(), rb_str_split_m(), rb_struct_define(), rb_struct_select(), rb_thread_keys(), rb_thread_list(), reduce0(), save_env(), save_redirect_fd(), search_convpath_i(), select_internal(), sock_s_gethostbyaddr(), strio_readlines(), syck_out_seq(), syck_resolver_transfer(), thgroup_list(), tk_hash_kv(), username_completion_proc_call(), vm_backtrace(), vm_backtrace_alloc(), vm_expandarray(), and vm_yield_setup_block_args().

VALUE rb_ary_new2 ( long  capa)

Definition at line 332 of file array.c.

References ary_new(), and rb_cArray.

Referenced by ary2list(), ary2list2(), ary_make_substitution(), assoc2kv(), assoc2kv_enc(), BigDecimal_split(), cbsubst_scan_args(), coverage(), each_slice_i(), econv_primitive_errinfo(), enc_list(), enc_names(), enum_each_cons(), enum_each_slice(), enum_first(), enum_sort_by(), enum_take(), fdbm_values_at(), fgdbm_values_at(), fsdbm_values_at(), hash2kv(), hash2kv_enc(), iconv_s_iconv(), Init_Encoding(), Init_ossl_ssl(), Init_tcltklib(), ip_ruby_cmd(), iseq_data_to_ary(), JSON_parse_string(), lib_split_tklist_core(), make_hostent_internal(), match_array(), mk_ary_of_str(), nil_to_a(), ossl_generate_cb(), ossl_pkcs7_get_recipient(), ossl_pkcs7_get_signer(), ossl_ssl_cipher_to_ary(), ossl_ssl_get_peer_cert_chain(), ossl_sslctx_get_ciphers(), ossl_sslctx_session_get_cb(), ossl_sslctx_session_new_cb(), ossl_sslctx_session_remove_cb(), ossl_x509_get_extensions(), ossl_x509crl_get_extensions(), ossl_x509crl_get_revoked(), ossl_x509name_to_a(), ossl_x509req_get_attributes(), ossl_x509revoked_get_extensions(), ossl_x509stctx_get_chain(), permute0(), pty_getpty(), r_object0(), random_dump(), range_first(), rb_ary_and(), rb_ary_collect(), rb_ary_combination(), rb_ary_dup(), rb_ary_new(), rb_ary_new3(), rb_ary_new4(), rb_ary_or(), rb_ary_permutation(), rb_ary_plus(), rb_ary_product(), rb_ary_repeated_combination(), rb_ary_repeated_permutation(), rb_ary_reverse_m(), rb_ary_rotate_m(), rb_ary_sample(), rb_ary_select(), rb_ary_slice_bang(), rb_ary_to_a(), rb_ary_transpose(), rb_ary_zip(), rb_const_list(), rb_enc_name_list(), rb_get_expanded_load_path(), rb_get_values_at(), rb_hash_values_at(), rb_iseq_parameters(), rb_str_split_m(), rb_struct_define_without_accessor(), rb_struct_s_members_m(), rb_sym_all_symbols(), rb_zlib_crc_table(), rcombinate0(), reg_named_captures_iter(), rpermute0(), scan_once(), select_internal(), syck_genericresolver_node_import(), syck_resolver_node_import(), take_items(), tk_conv_args(), unnamed_parameters(), yaml_org_handler(), zip_ary(), and zip_i().

VALUE rb_ary_new3 ( long  n,
  ... 
)
VALUE rb_ary_new4 ( long  n,
const VALUE elts 
)
static VALUE rb_ary_or ( VALUE  ary1,
VALUE  ary2 
)
static
static VALUE rb_ary_permutation ( int  argc,
VALUE argv,
VALUE  ary 
)
static
VALUE rb_ary_plus ( VALUE  x,
VALUE  y 
)

Definition at line 2993 of file array.c.

References ARY_SET_LEN, len, MEMCPY, RARRAY_LEN, RARRAY_PTR, rb_ary_new2(), and to_ary().

Referenced by assoc2kv(), assoc2kv_enc(), curry(), Init_Array(), and tk_conv_args().

VALUE rb_ary_pop ( VALUE  ary)
static VALUE rb_ary_pop_m ( int  argc,
VALUE argv,
VALUE  ary 
)
static
static VALUE rb_ary_product ( int  argc,
VALUE argv,
VALUE  ary 
)
static
VALUE rb_ary_push ( VALUE  ary,
VALUE  item 
)

Definition at line 740 of file array.c.

References rb_ary_modify(), and rb_ary_push_1().

Referenced by add_event_call_back(), add_modules(), addrinfo_list_new(), ary2list(), ary2list2(), assoc2kv(), assoc2kv_enc(), BigDecimal_split(), callback(), cbsubst_scan_args(), cdhash_each(), check_exec_env_i(), check_exec_redirect(), chunk_ii(), collect_all(), collect_i(), collect_local_variables_in_iseq(), compile_array_(), cv_i(), cycle_i(), define_final(), drop_i(), drop_while_i(), each_cons_i(), each_slice_i(), econv_convpath(), enc_names_i(), env_each_pair(), env_keys(), env_to_a(), env_values(), env_values_at(), EVENTSINK_Invoke(), evs_push(), fdbm_delete_if(), fdbm_keys(), fdbm_select(), fdbm_to_a(), fdbm_values(), fdbm_values_at(), fdset2array(), fgdbm_delete_if(), fgdbm_keys(), fgdbm_select(), fgdbm_to_a(), fgdbm_values(), fgdbm_values_at(), filename_completion_proc_call(), find_all_i(), first_i(), flat_map_i(), flatten(), foletype_s_progids(), foletypelib_s_typelibs(), fsdbm_delete_if(), fsdbm_keys(), fsdbm_select(), fsdbm_to_a(), fsdbm_values(), fsdbm_values_at(), gc_profile_record_get(), grep_i(), grep_iter_i(), group_by_i(), gvar_i(), iconv_s_ctlmethods(), iconv_s_iconv(), Init_Array(), Init_Encoding(), Init_ossl_ssl(), Init_VM(), ins_methods_push(), insn_operand_intern(), int_ossl_asn1_decode0_cons(), ip_ruby_cmd(), iseq_add_mark_object(), iseq_add_mark_object_compile_time(), iseq_data_to_ary(), iseq_set_arguments(), ivar_i(), JSON_parse_array(), JSON_parse_string(), keys_i(), lex_getline(), lib_eventloop_launcher(), lib_split_tklist_core(), list_i(), make_addrinfo(), make_hostent_internal(), match_array(), match_i(), mk_ary_of_str(), nsdr(), ole_method_params(), ole_methods_sub(), ole_type_impl_ole_types(), ole_typedesc2val(), ole_types_from_typelib(), ole_usertype2val(), ole_variables(), open_key_args(), ossl_asn1_decode0(), ossl_asn1_decode_all(), ossl_get_errors(), ossl_pkcs7_get_recipient(), ossl_pkcs7_get_signer(), ossl_ssl_cipher_to_ary(), ossl_ssl_get_peer_cert_chain(), ossl_sslctx_get_ciphers(), ossl_sslctx_session_get_cb(), ossl_sslctx_session_new_cb(), ossl_sslctx_session_remove_cb(), ossl_x509_get_extensions(), ossl_x509crl_get_extensions(), ossl_x509crl_get_revoked(), ossl_x509name_to_a(), ossl_x509req_get_attributes(), ossl_x509revoked_get_extensions(), ossl_x509stctx_get_chain(), pack_pack(), parse(), partition_i(), proc_waitall(), push_include(), push_kv(), push_kv_enc(), push_pattern(), push_value(), r_object0(), random_dump(), rb_ary_and(), rb_ary_collect(), rb_ary_diff(), rb_ary_or(), rb_ary_product(), rb_ary_select(), rb_ary_uniq(), rb_ary_zip(), rb_enc_name_list_i(), rb_exec_arg_addopt(), rb_f_global_variables(), rb_f_local_variables(), rb_f_untrace_var(), rb_gc_register_mark_object(), rb_get_expanded_load_path(), rb_get_values_at(), rb_gzreader_readlines(), rb_hash_values_at(), rb_insns_name_array(), rb_io_readlines(), rb_iseq_parameters(), rb_mod_ancestors(), rb_mod_included_modules(), rb_mod_nesting(), rb_provide_feature(), rb_require_safe(), rb_str_scan(), rb_str_split_m(), rb_struct_define(), rb_struct_define_without_accessor(), rb_struct_s_members_m(), rb_struct_select(), rb_zlib_crc_table(), reg_names_iter(), reject_i(), ruby_init_loadpath_safe(), ruby_set_argv(), ruby_vm_at_exit(), save_env_i(), save_redirect_fd(), scan_once(), select_internal(), set_argv(), slicebefore_ii(), sock_s_gethostbyaddr(), strio_readlines(), syck_resolver_node_import(), syck_seq_add_m(), symbols_i(), take_i(), take_while_i(), thgroup_list_i(), thread_keys_i(), thread_list_i(), tk_conv_args(), to_a_i(), unnamed_parameters(), username_completion_proc_call(), values_i(), vm_backtrace_push(), waitall_each(), when_vals(), yaml_org_handler(), yycompile0(), yyparse(), zip_ary(), and zip_i().

static VALUE rb_ary_push_1 ( VALUE  ary,
VALUE  item 
)
static

Definition at line 747 of file array.c.

References ARY_CAPA, ary_double_capa(), ARY_SET_LEN, RARRAY_LEN, and RARRAY_PTR.

Referenced by ary_reject(), rb_ary_push(), and rb_ary_push_m().

static VALUE rb_ary_push_m ( int  argc,
VALUE argv,
VALUE  ary 
)
static

Definition at line 773 of file array.c.

References rb_ary_modify(), and rb_ary_push_1().

Referenced by Init_Array().

VALUE rb_ary_rassoc ( VALUE  ary,
VALUE  value 
)

Definition at line 3140 of file array.c.

References i, Qnil, RARRAY_LEN, RARRAY_PTR, rb_equal(), T_ARRAY, TYPE, and v.

Referenced by Init_Array().

static VALUE rb_ary_reject ( VALUE  ary)
static

Definition at line 2655 of file array.c.

References ary_reject(), rb_ary_new(), and RETURN_ENUMERATOR.

Referenced by Init_Array().

static VALUE rb_ary_reject_bang ( VALUE  ary)
static

Definition at line 2635 of file array.c.

References ary_reject_bang(), and RETURN_ENUMERATOR.

Referenced by Init_Array().

static VALUE rb_ary_repeated_combination ( VALUE  ary,
VALUE  num 
)
static
static VALUE rb_ary_repeated_permutation ( VALUE  ary,
VALUE  num 
)
static
VALUE rb_ary_replace ( VALUE  copy,
VALUE  orig 
)
VALUE rb_ary_resize ( VALUE  ary,
long  len 
)

expands or shrinks ary to len elements.

expanded region will be filled with Qnil.

Parameters
aryan array
lennew size
Returns
ary
Postcondition
the size of ary is len.

Definition at line 1339 of file array.c.

References ARY_CAPA, ARY_DEFAULT_SIZE, ary_discard(), ary_double_capa(), ARY_EMBED_P, ARY_EMBED_PTR, ARY_HEAP_PTR, ARY_MAX_SIZE, ARY_SET_CAPA, ARY_SET_EMBED_LEN, ARY_SET_HEAP_LEN, ARY_SET_LEN, MEMCPY, RARRAY, RARRAY_EMBED_LEN_MAX, RARRAY_LEN, RARRAY_PTR, rb_ary_modify(), rb_eIndexError, rb_mem_clear(), rb_raise(), and REALLOC_N.

Referenced by ary_resize(), and enum_sort_by().

VALUE rb_ary_resurrect ( VALUE  ary)

Definition at line 1606 of file array.c.

References RARRAY_LEN, RARRAY_PTR, and rb_ary_new4().

Referenced by obj_resurrect().

VALUE rb_ary_reverse ( VALUE  ary)
static VALUE rb_ary_reverse_bang ( VALUE  ary)
static

Definition at line 1883 of file array.c.

References rb_ary_reverse().

Referenced by Init_Array().

static VALUE rb_ary_reverse_each ( VALUE  ary)
static

Definition at line 1548 of file array.c.

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

Referenced by Init_Array().

static VALUE rb_ary_reverse_m ( VALUE  ary)
static

Definition at line 1899 of file array.c.

References ARY_SET_LEN, len, RARRAY_LEN, RARRAY_PTR, and rb_ary_new2().

Referenced by Init_Array().

static VALUE rb_ary_rindex ( int  argc,
VALUE argv,
VALUE  ary 
)
static
VALUE rb_ary_rotate ( VALUE  ary,
long  cnt 
)

Definition at line 1920 of file array.c.

References ary_reverse(), len, Qnil, RARRAY_LEN, RARRAY_PTR, rb_ary_modify(), and rotate_count().

Referenced by rb_ary_rotate_bang().

static VALUE rb_ary_rotate_bang ( int  argc,
VALUE argv,
VALUE  ary 
)
static

Definition at line 1956 of file array.c.

References NULL, NUM2LONG(), rb_ary_rotate(), and rb_scan_args().

Referenced by Init_Array().

static VALUE rb_ary_rotate_m ( int  argc,
VALUE argv,
VALUE  ary 
)
static

Definition at line 1985 of file array.c.

References ARY_SET_LEN, cnt, len, MEMCPY, NULL, NUM2LONG(), RARRAY_LEN, RARRAY_PTR, rb_ary_new2(), rb_scan_args(), and rotate_count().

Referenced by Init_Array().

static VALUE rb_ary_s_create ( int  argc,
VALUE argv,
VALUE  klass 
)
static

Definition at line 623 of file array.c.

References ary_new(), ARY_SET_LEN, MEMCPY, and RARRAY_PTR.

Referenced by Init_Array().

static VALUE rb_ary_s_try_convert ( VALUE  dummy,
VALUE  ary 
)
static

Definition at line 497 of file array.c.

References rb_check_array_type().

Referenced by Init_Array().

static VALUE rb_ary_sample ( int  argc,
VALUE argv,
VALUE  ary 
)
static
static VALUE rb_ary_select ( VALUE  ary)
static

Definition at line 2342 of file array.c.

References i, RARRAY_LEN, RARRAY_PTR, rb_ary_elt(), rb_ary_new2(), rb_ary_push(), rb_yield(), result, RETURN_ENUMERATOR, and RTEST.

Referenced by Init_Array().

static VALUE rb_ary_select_bang ( VALUE  ary)
static
static void rb_ary_set_shared ( VALUE  ary,
VALUE  shared 
)
static

Definition at line 237 of file array.c.

References ARY_SET_SHARED, FL_SET_SHARED, and rb_ary_increment_share().

Referenced by ary_make_partial(), and rb_ary_replace().

VALUE rb_ary_shift ( VALUE  ary)
static VALUE rb_ary_shift_m ( int  argc,
VALUE argv,
VALUE  ary 
)
static
static VALUE rb_ary_shuffle ( int  argc,
VALUE argv,
VALUE  ary 
)
static

Definition at line 3914 of file array.c.

References ary_sort_data::ary, rb_ary_dup(), and rb_ary_shuffle_bang().

Referenced by Init_Array().

static VALUE rb_ary_shuffle_bang ( int  argc,
VALUE argv,
VALUE  ary 
)
static
static VALUE rb_ary_slice_bang ( int  argc,
VALUE argv,
VALUE  ary 
)
static
VALUE rb_ary_sort ( VALUE  ary)

Definition at line 2172 of file array.c.

References ary_sort_data::ary, rb_ary_dup(), and rb_ary_sort_bang().

Referenced by enum_sort(), and Init_Array().

VALUE rb_ary_sort_bang ( VALUE  ary)
static VALUE rb_ary_sort_by_bang ( VALUE  ary)
static
static void rb_ary_splice ( VALUE  ary,
long  beg,
long  len,
VALUE  rpl 
)
static
void rb_ary_store ( VALUE  ary,
long  idx,
VALUE  val 
)
VALUE rb_ary_subseq ( VALUE  ary,
long  beg,
long  len 
)

Definition at line 965 of file array.c.

References ary_make_partial(), ary_new(), Qnil, RARRAY_LEN, and rb_obj_class().

Referenced by rb_ary_aref(), rb_ary_drop(), rb_ary_take(), and take_items().

static VALUE rb_ary_take ( VALUE  obj,
VALUE  n 
)
static

Definition at line 4571 of file array.c.

References len, NUM2LONG(), rb_ary_subseq(), rb_eArgError, and rb_raise().

Referenced by Init_Array(), and rb_ary_take_while().

static VALUE rb_ary_take_while ( VALUE  ary)
static

Definition at line 4596 of file array.c.

References i, LONG2FIX, RARRAY_LEN, RARRAY_PTR, rb_ary_take(), rb_yield(), RETURN_ENUMERATOR, and RTEST.

Referenced by Init_Array().

static VALUE rb_ary_times ( VALUE  ary,
VALUE  times 
)
static
VALUE rb_ary_tmp_new ( long  capa)
static VALUE rb_ary_to_a ( VALUE  ary)
static

Definition at line 1823 of file array.c.

References RARRAY_LEN, rb_ary_new2(), rb_ary_replace(), rb_cArray, and rb_obj_class().

Referenced by Init_Array().

VALUE rb_ary_to_ary ( VALUE  obj)

Definition at line 1264 of file array.c.

References NIL_P, rb_ary_new3(), and rb_check_array_type().

Referenced by rb_ary_splice(), and vm_expandarray().

static VALUE rb_ary_to_ary_m ( VALUE  ary)
static

Definition at line 1841 of file array.c.

Referenced by Init_Array().

VALUE rb_ary_to_s ( VALUE  ary)

Definition at line 1809 of file array.c.

References rb_ary_inspect().

static VALUE rb_ary_transpose ( VALUE  ary)
static

Definition at line 2778 of file array.c.

References i, RARRAY_LEN, rb_ary_dup(), rb_ary_elt(), rb_ary_new2(), rb_ary_store(), rb_eIndexError, rb_raise(), result, and to_ary().

Referenced by Init_Array().

static VALUE rb_ary_uniq ( VALUE  ary)
static
static VALUE rb_ary_uniq_bang ( VALUE  ary)
static
static void rb_ary_unshare ( VALUE  ary)
static
static void rb_ary_unshare_safe ( VALUE  ary)
inlinestatic

Definition at line 219 of file array.c.

References ARY_EMBED_P, ARY_SHARED_P, and rb_ary_unshare().

Referenced by rb_ary_initialize(), and rb_ary_replace().

VALUE rb_ary_unshift ( VALUE  ary,
VALUE  item 
)
static VALUE rb_ary_unshift_m ( int  argc,
VALUE argv,
VALUE  ary 
)
static
static VALUE rb_ary_values_at ( int  argc,
VALUE argv,
VALUE  ary 
)
static

Definition at line 2320 of file array.c.

References RARRAY_LEN, rb_ary_entry(), and rb_get_values_at().

Referenced by Init_Array().

static VALUE rb_ary_zip ( int  argc,
VALUE argv,
VALUE  ary 
)
static
VALUE rb_assoc_new ( VALUE  car,
VALUE  cdr 
)
VALUE rb_check_array_type ( VALUE  ary)
VALUE rb_get_values_at ( VALUE  obj,
long  olen,
int  argc,
VALUE argv,
VALUE(*)(VALUE, long func 
)
void rb_mem_clear ( register VALUE mem,
register long  size 
)
static void rcombinate0 ( long  n,
long  r,
long p,
long  index,
long  rest,
VALUE  values 
)
static
static VALUE recursive_cmp ( VALUE  ary1,
VALUE  ary2,
int  recur 
)
static

Definition at line 3289 of file array.c.

References i, id_cmp, INT2FIX, len, Qundef, RARRAY_LEN, rb_ary_elt(), rb_funcall(), and v.

Referenced by rb_ary_cmp().

static VALUE recursive_eql ( VALUE  ary1,
VALUE  ary2,
int  recur 
)
static

Definition at line 3197 of file array.c.

References i, Qfalse, Qtrue, RARRAY_LEN, rb_ary_elt(), and rb_eql().

Referenced by rb_ary_eql().

static VALUE recursive_equal ( VALUE  ary1,
VALUE  ary2,
int  recur 
)
static

Definition at line 3156 of file array.c.

References i, Qfalse, Qtrue, RARRAY_LEN, rb_ary_elt(), and rb_equal().

Referenced by rb_ary_equal().

static VALUE recursive_hash ( VALUE  ary,
VALUE  dummy,
int  recur 
)
static

Definition at line 3227 of file array.c.

References i, LONG2FIX, NUM2LONG(), RARRAY_LEN, RARRAY_PTR, rb_cArray, rb_hash(), rb_hash_end(), rb_hash_start(), and rb_hash_uint().

Referenced by rb_ary_hash().

static VALUE recursive_join ( VALUE  obj,
VALUE  argp,
int  recur 
)
static

Definition at line 1616 of file array.c.

References arg, ary_join_1(), Qnil, rb_eArgError, rb_raise(), and result.

Referenced by ary_join_1().

static long rotate_count ( long  cnt,
long  len 
)
inlinestatic

Definition at line 1914 of file array.c.

References len.

Referenced by rb_ary_rotate(), and rb_ary_rotate_m().

static void rpermute0 ( long  n,
long  r,
long p,
long  index,
VALUE  values 
)
static
static int sort_1 ( const void *  ap,
const void *  bp,
void *  dummy 
)
static

Definition at line 2042 of file array.c.

References ary_sort_data::ary, bp, rb_cmpint(), rb_yield_values(), and sort_reentered().

Referenced by rb_ary_sort_bang().

static int sort_2 ( const void *  ap,
const void *  bp,
void *  dummy 
)
static
static VALUE sort_by_i ( VALUE  i)
static

Definition at line 2181 of file array.c.

References rb_yield().

Referenced by rb_ary_sort_by_bang().

static VALUE sort_reentered ( VALUE  ary)
static

Definition at line 2033 of file array.c.

References Qnil, rb_eRuntimeError, rb_raise(), and RBASIC.

Referenced by sort_1(), and sort_2().

static VALUE take_i ( VALUE  val,
VALUE args,
int  argc,
VALUE argv 
)
static

Definition at line 2691 of file array.c.

References Qnil, rb_ary_new4(), rb_ary_push(), and rb_iter_break().

Referenced by take_items().

static VALUE take_items ( VALUE  obj,
long  n 
)
static

Definition at line 2700 of file array.c.

References args, NIL_P, rb_ary_new2(), rb_ary_subseq(), rb_block_call, rb_check_array_type(), rb_intern, result, and take_i().

Referenced by rb_ary_zip().

static VALUE to_ary ( VALUE  ary)
static

Variable Documentation

ID id_cmp
static

Definition at line 29 of file array.c.

Referenced by Init_Array(), recursive_cmp(), and sort_2().

VALUE rb_cArray
VALUE rb_output_fs

Definition at line 472 of file intern.h.

Referenced by Init_IO(), rb_ary_join_m(), and rb_io_print().

VALUE sym_random
static

Definition at line 3854 of file array.c.