Ruby 2.0.0p247(2013-06-27revision41674)

- Main Page
- Modules
- Data Structures
- Files

- File List
- Globals

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 "probes.h"`
`#include "id.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) (RB_TYPE_P((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_ulong_limited((randgen), (max)-1)
#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)
static void | ary_ensure_room_for_push (VALUE ary, long add_len)
VALUE | rb_ary_freeze (VALUE ary)
static VALUE | rb_ary_frozen_p (VALUE ary)
VALUE | rb_ary_shared_with_p (VALUE ary1, VALUE ary2)
static VALUE | ary_alloc (VALUE klass)
static VALUE | empty_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)
VALUE | rb_ary_push (VALUE ary, VALUE item)
static VALUE | rb_ary_push_1 (VALUE ary, VALUE item)
VALUE | rb_ary_cat (VALUE ary, const VALUE *ptr, long len)
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 void | ary_ensure_room_for_unshift (VALUE ary, int argc)
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)
void | rb_ary_set_len (VALUE ary, long len)
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)
static VALUE | rb_ary_length (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_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 | rb_ary_bsearch (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)
static void | ary_resize_smaller (VALUE ary, long len)
VALUE | rb_ary_delete (VALUE ary, VALUE item)
void | rb_ary_delete_same (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_size (VALUE self, VALUE args)
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 | descending_factorial (long from, long how_many)
static VALUE | binomial_coefficient (long comb, long size)
static VALUE | rb_ary_permutation_size (VALUE ary, VALUE args)
static VALUE | rb_ary_permutation (int argc, VALUE *argv, VALUE ary)
static VALUE | rb_ary_combination_size (VALUE ary, VALUE args)
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_size (VALUE ary, VALUE args)
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_size (VALUE ary, VALUE args)
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
static ID | id_div
static ID | id_power
VALUE | rb_output_fs
static VALUE | sym_random

## Macro Definition Documentation

#define ARY_CAPA | ( |  | ary) |  |

Value:
(ARY_EMBED_P(ary) ? RARRAY_EMBED_LEN_MAX : \
ARY_SHARED_ROOT_P(ary) ? RARRAY_LEN(ary) : RARRAY(ary)->as.heap.aux.capa)

Definition at line 119 of file array.c.

Referenced by ary_double_capa(), ary_ensure_room_for_push(), ary_ensure_room_for_unshift(), ary_make_shared(), ary_resize_smaller(), rb_ary_clear(), rb_ary_compact_bang(), rb_ary_fill(), rb_ary_pop(), rb_ary_push_1(), rb_ary_resize(), rb_ary_set_len(), rb_ary_splice(), and rb_ary_store().

#define ARY_DEFAULT_SIZE 16

Definition at line 33 of file array.c.

Referenced by ary_double_capa(), ary_ensure_room_for_unshift(), ary_resize_smaller(), flatten(), rb_ary_clear(), rb_ary_compact_bang(), rb_ary_pop(), rb_ary_resize(), and rb_ary_shift().

#define ARY_EMBED_LEN | ( |  | a) |  |

Value:
(assert(ARY_EMBED_P(a)), \
(long)((RBASIC(a)->flags >> RARRAY_EMBED_LEN_SHIFT) & \
(RARRAY_EMBED_LEN_MASK >> RARRAY_EMBED_LEN_SHIFT)))

Definition at line 62 of file array.c.

Referenced by ary_resize_capa(), and rb_ary_sort_bang().

#define ARY_EMBED_P | ( |  | ary) |  |

Value:
(assert(!FL_TEST((ary), ELTS_SHARED) || !FL_TEST((ary), RARRAY_EMBED_FLAG)), \
FL_TEST((ary), RARRAY_EMBED_FLAG)!=0)

Definition at line 55 of file array.c.

Referenced by ary_make_shared(), ary_resize_capa(), rb_ary_clear(), rb_ary_flatten_bang(), rb_ary_resize(), rb_ary_shared_with_p(), 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)

Definition at line 61 of file array.c.

Referenced by ary_make_partial(), ary_make_substitution(), ary_resize_capa(), rb_ary_modify(), rb_ary_resize(), and rb_ary_sort_bang().

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

Definition at line 60 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 59 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,
|  |  | n
| ) |  |

Value:
do { \
assert(!OBJ_FROZEN(ary)); \
if (ARY_EMBED_P(ary)) { \
ARY_SET_EMBED_LEN((ary), RARRAY_LEN(ary)+(n)); \
} \
else { \
RARRAY(ary)->as.heap.len += (n); \
} \
} while (0)

Definition at line 109 of file array.c.

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

#define ARY_INCREASE_PTR | ( |  | ary,
|  |  | n
| ) |  |

Value:
do { \
assert(!ARY_EMBED_P(ary)); \
assert(!OBJ_FROZEN(ary)); \
RARRAY(ary)->as.heap.ptr += (n); \
} while (0)

Definition at line 104 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))

Definition at line 34 of file array.c.

Referenced by ary_double_capa(), ary_new(), rb_ary_fill(), rb_ary_initialize(), rb_ary_resize(), rb_ary_splice(), rb_ary_store(), and rb_ary_times().

#define ARY_OWNS_HEAP_P | ( |  | a) |  | (!FL_TEST((a), ELTS_SHARED|RARRAY_EMBED_FLAG))

Definition at line 67 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,
|  |  | n
| ) |  |

Value:
do { \
assert(!ARY_EMBED_P(ary)); \
assert(!ARY_SHARED_P(ary)); \
assert(!OBJ_FROZEN(ary)); \
RARRAY(ary)->as.heap.aux.capa = (n); \
} while (0)

Definition at line 121 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,
|  |  | n
| ) |  |

Value:
do { \
long tmp_n = (n); \
assert(ARY_EMBED_P(ary)); \
assert(!OBJ_FROZEN(ary)); \
RBASIC(ary)->flags &= ~RARRAY_EMBED_LEN_MASK; \
RBASIC(ary)->flags |= (tmp_n) << RARRAY_EMBED_LEN_SHIFT; \
} while (0)

Definition at line 84 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,
|  |  | n
| ) |  |

Value:
do { \
assert(!ARY_EMBED_P(ary)); \
RARRAY(ary)->as.heap.len = (n); \
} while (0)

Definition at line 91 of file array.c.

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

#define ARY_SET_LEN | ( |  | ary,
|  |  | n
| ) |  |

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)

Definition at line 95 of file array.c.

Referenced by ary_make_partial(), ary_make_shared(), ary_resize_capa(), ary_resize_smaller(), permute0(), rb_ary_cat(), rb_ary_clear(), rb_ary_compact_bang(), 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(), 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_set_len(), rb_ary_sort_bang(), rb_ary_splice(), rb_ary_store(), rb_ary_times(), rb_ary_uniq_bang(), rb_ary_unshift_m(), rcombinate0(), and rpermute0().

#define ARY_SET_PTR | ( |  | ary,
|  |  | p
| ) |  |

Value:
do { \
assert(!ARY_EMBED_P(ary)); \
assert(!OBJ_FROZEN(ary)); \
RARRAY(ary)->as.heap.ptr = (p); \
} while (0)

Definition at line 79 of file array.c.

Referenced by ary_ensure_room_for_unshift(), 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 { \
assert(!ARY_EMBED_P(ary)); \
assert(ARY_SHARED_P(ary)); \
assert(ARY_SHARED_ROOT_P(value)); \
RARRAY(ary)->as.heap.aux.shared = (value); \
} while (0)

Definition at line 129 of file array.c.

Referenced by ary_make_shared(), and rb_ary_set_shared().

#define ARY_SET_SHARED_NUM | ( |  | ary,
|  |  | value
| ) |  |

Value:
do { \
assert(ARY_SHARED_ROOT_P(ary)); \
RARRAY(ary)->as.heap.aux.capa = (value); \
} while (0)

Definition at line 139 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 128 of file array.c.

Referenced by ary_ensure_room_for_push(), ary_ensure_room_for_unshift(), 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)

Definition at line 137 of file array.c.

Referenced by ary_ensure_room_for_push(), ary_ensure_room_for_unshift(), rb_ary_decrement_share(), rb_ary_increment_share(), rb_ary_modify(), rb_ary_shift(), and rb_ary_shift_m().

#define ARY_SHARED_P | ( |  | ary) |  |

Value:
(assert(!FL_TEST((ary), ELTS_SHARED) || !FL_TEST((ary), RARRAY_EMBED_FLAG)), \
FL_TEST((ary),ELTS_SHARED)!=0)

Definition at line 52 of file array.c.

Referenced by ary_ensure_room_for_push(), ary_ensure_room_for_unshift(), ary_make_shared(), ary_resize_capa(), rb_ary_clear(), rb_ary_modify(), rb_ary_replace(), rb_ary_set_len(), rb_ary_shared_with_p(), 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 136 of file array.c.

Referenced by ary_make_shared().

#define FL_SET_EMBED | ( |  | a) |  |

Value:
do { \
assert(!ARY_SHARED_P(a)); \
FL_SET((a), RARRAY_EMBED_FLAG); \
} while (0)

Definition at line 68 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 { \
assert(!ARY_EMBED_P(ary)); \
FL_SET((ary), ELTS_SHARED); \
} while (0)

Definition at line 73 of file array.c.

Referenced by ary_make_shared(), and rb_ary_set_shared().

#define FL_SET_SHARED_ROOT | ( |  | ary) |  |

Value:
do { \
assert(!ARY_EMBED_P(ary)); \
FL_SET((ary), RARRAY_SHARED_ROOT_FLAG); \
} while (0)

Definition at line 143 of file array.c.

Referenced by ary_make_shared().

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

Definition at line 72 of file array.c.

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

#define FL_UNSET_SHARED | ( |  | ary) |  | FL_UNSET((ary), ELTS_SHARED)

Definition at line 77 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 23 of file array.c.

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

Definition at line 27 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 4278 of file array.c.

Referenced by rb_ary_sample(), and rb_ary_shuffle_bang().

#define RAND_UPTO | ( |  | max) |  | (long)rb_random_ulong_limited((randgen), (max)-1)

Definition at line 4282 of file array.c.

Referenced by rb_ary_sample(), and rb_ary_shuffle_bang().

#define RARRAY_SHARED_ROOT_FLAG FL_USER5

Definition at line 135 of file array.c.

#define rb_intern | ( |  | str) |  | rb_intern_const(str)

Referenced by argf_bytes(), argf_chars(), argf_close(), argf_codepoints(), argf_each_byte(), argf_each_char(), argf_each_codepoint(), argf_each_line(), argf_getbyte(), argf_getc(), argf_lines(), argf_readchar(), argf_readlines(), argument_error(), asn1time_to_time(), big_op(), BigDecimal_div2(), BigDecimal_divmod(), BigDecimal_divremain(), BigDecimal_to_i(), BigDecimal_to_r(), BigDecimalCmp(), boot_defclass(), bsock_setsockopt(), callback(), cbsubst_def_attr_aliases(), cbsubst_get_subst_arg(), cbsubst_sym_to_subst(), cbsubst_table_setup(), check_exec_redirect(), check_exec_redirect_fd(), chunk_i(), chunk_ii(), cleanup_iseq_build(), cmp_gen(), cond0(), const_missing(), convert_type(), copy_stream_body(), count_objects(), count_objects_size(), cto_i(), 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(), enum_chunk(), enum_slice_before(), equal_gen(), error_print(), EVENTSINK_Invoke(), evs_length(), exc_message(), exc_to_s(), exit_status(), exit_success_p(), f_eqeq_p(), f_ge_p(), fdbm_replace(), fdbm_update(), fev_get_handler(), fev_set_handler(), fgdbm_replace(), fgdbm_update(), fix_and(), fix_cmp(), fix_divmod(), fix_fdiv(), fix_ge(), fix_idiv(), fix_le(), fix_or(), fix_pow(), fix_xor(), flo_cmp(), flo_divmod(), flo_ge(), flo_le(), flo_pow(), 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_called_id(), frame_func_id(), fsdbm_replace(), fsdbm_update(), function_call(), gc_profile_record_get(), generic_to_value(), get_backtrace(), get_eval_string_core(), get_exception_sym2type(), GetConfigPtr(), global_id(), hash_equal(), hidden_identity_hash_new(), id2encidx(), if(), Init_Array(), Init_Binding(), Init_bubblebabble(), Init_class_hierarchy(), Init_Comparable(), Init_Complex(), Init_console(), Init_cparse(), Init_date_core(), Init_digest(), Init_dlcfunc(), Init_dlptr(), Init_Enumerable(), Init_Enumerator(), Init_eval_method(), Init_Exception(), Init_fiddle_pointer(), Init_generator(), Init_Hash(), Init_IO(), Init_load(), Init_marshal(), Init_md5(), Init_Numeric(), Init_Object(), 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_Range(), Init_Rational(), Init_readline(), Init_rmd160(), Init_sha1(), Init_sha2(), Init_signal(), Init_String(), Init_strscan(), Init_Struct(), Init_syslog(), Init_tcltklib(), Init_Thread(), Init_Time(), Init_tkutil(), Init_transcode(), Init_vm_eval(), Init_win32ole(), Init_zlib(), insn_make_insn_table(), int_round_0(), io_call_close(), io_getch(), ip_ruby_cmd(), ip_ruby_cmd_receiver_const_get(), iseq_build_from_ary_body(), iseq_compile_each(), iseq_data_to_ary(), iseq_load(), join_der(), make_econv_exception(), make_exception(), make_no_method_exception(), mark(), name_err_name(), name_err_to_s(), nometh_err_args(), nucomp_rationalize(), num_abs(), num_div(), num_exact(), num_modulo(), num_nonzero_p(), 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(), parse_keyword_arg_i(), parser_yylex(), 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(), pipe_open(), private_iv_get(), process_options(), pst_pid(), raise_loaderror(), random_equal(), range_each(), range_eqq(), range_op(), range_step(), 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_final(), rb_define_method(), rb_define_module(), rb_define_module_under(), rb_define_private_method(), rb_define_protected_method(), rb_enc_get_index(), rb_eval_cmd(), rb_exc_new(), rb_exc_new3(), rb_execarg_addopt(), rb_execarg_fixup(), rb_f_chomp(), rb_f_chop(), rb_f_gsub(), rb_f_putc(), rb_f_puts(), rb_f_readline(), rb_f_readlines(), rb_f_sub(), rb_gzreader_bytes(), rb_gzreader_lines(), rb_hash_flatten(), rb_intern(), rb_io_bytes(), rb_io_chars(), rb_io_codepoints(), rb_io_init_copy(), rb_io_lines(), rb_iv_get(), rb_iv_set(), rb_obj_basic_to_s_p(), rb_parser_append_print(), rb_parser_while_loop(), rb_range_values(), rb_remove_method(), rb_set_class_path(), rb_str_cmp_m(), rb_str_equal(), rb_str_match(), rb_str_match_m(), rb_str_sum(), rb_str_upto(), 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(), reg_compile_gen(), reg_named_capture_assign_gen(), reg_named_capture_assign_iter(), register_label(), rescue_callback(), save_env(), set_argv(), set_backtrace(), set_max_block_time(), set_option_encoding_once(), slicebefore_i(), sockopt_data(), sockopt_family_m(), sockopt_initialize(), sockopt_level(), sockopt_optname(), sockopt_unpack(), ssl_renegotiation_cb(), strio_bytes(), strio_chars(), strio_codepoints(), strio_lines(), strio_readbyte(), strio_readchar(), strio_readline(), strio_sysread(), syserr_eqq(), syserr_errno(), syserr_initialize(), time_init_1(), transcode_io(), unknown_keyword_error(), unlink_body(), unlink_rescue(), vm_set_main_stack(), vtdate2rbtime(), w_encoding(), w_obj_each(), wmap_allocate(), and yyparse().

#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))))

Definition at line 2214 of file array.c.

Referenced by sort_2().

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

Definition at line 2213 of file array.c.

#define STRING_P | ( |  | s) |  | (RB_TYPE_P((s), T_STRING) && CLASS_OF(s) == rb_cString)

Definition at line 2211 of file array.c.

Referenced by sort_2().

#define tmpary | ( |  | n) |  | rb_ary_tmp_new(n)

Definition at line 4540 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 4541 of file array.c.

Referenced by rb_ary_combination(), and rb_ary_product().

#define tmpbuf | ( |  | n,
|  |  | size
| ) |  | rb_str_tmp_new((n)*(size))

Definition at line 4538 of file array.c.

Referenced by rb_ary_combination(), rb_ary_permutation(), rb_ary_product(), rb_ary_repeated_combination(), rb_ary_repeated_permutation(), rb_execarg_fixup(), and rb_execarg_run_options().

#define tmpbuf_discard | ( |  | s) |  | (rb_str_resize((s), 0L), RBASIC(s)->klass = rb_cString)

Definition at line 4539 of file array.c.

Referenced by rb_ary_combination(), rb_ary_permutation(), rb_ary_product(), rb_ary_repeated_combination(), and rb_ary_repeated_permutation().

## Enumeration Type Documentation

anonymous enum

Enumerator
sort_opt_Fixnum |
sort_opt_String |
sort_optimizable_count |

Definition at line 2205 of file array.c.

enum ary_take_pos_flags

Enumerator
ARY_TAKE_FIRST |
ARY_TAKE_LAST |

Definition at line 781 of file array.c.

## Function Documentation

static VALUE ary_add_hash | ( | VALUE | hash,
|  | VALUE | ary
| ) |  |
| static

Definition at line 3741 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 3768 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 370 of file array.c.

References ARY_SET_EMBED_LEN, FL_SET_EMBED, NEWOBJ_OF, and T_ARRAY.

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

static void ary_discard | ( | VALUE | ary) |  |
| inline static

Definition at line 490 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

Definition at line 182 of file array.c.

References ARY_CAPA, ARY_DEFAULT_SIZE, ARY_MAX_SIZE, and ary_resize_capa().

Referenced by ary_ensure_room_for_push(), ary_ensure_room_for_unshift(), rb_ary_push_1(), rb_ary_resize(), rb_ary_splice(), and rb_ary_store().

static void ary_ensure_room_for_push | ( | VALUE | ary,
|  | long | add_len
| ) |  |
| static

Definition at line 288 of file array.c.

References ARY_CAPA, ary_double_capa(), ARY_SHARED, ARY_SHARED_NUM, ARY_SHARED_P, RARRAY_EMBED_LEN_MAX, RARRAY_LEN, RARRAY_PTR, rb_ary_modify(), and rb_ary_modify_check().

Referenced by rb_ary_cat(), rb_ary_push(), and rb_ary_splice().

static void ary_ensure_room_for_unshift | ( | VALUE | ary,
|  | int | argc
| ) |  |
| static

Definition at line 1007 of file array.c.

References argc, ARY_CAPA, ARY_DEFAULT_SIZE, ary_double_capa(), ary_make_shared(), ARY_SET_PTR, ARY_SHARED, ARY_SHARED_NUM, ARY_SHARED_P, head, MEMMOVE, RARRAY_LEN, RARRAY_PTR, and rb_ary_modify().

Referenced by rb_ary_unshift_m().

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

Definition at line 1815 of file array.c.

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

Referenced by rb_ary_join().

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

Definition at line 1832 of file array.c.

References args, FALSE, i, NIL_P, RARRAY_LEN, RARRAY_PTR, rb_check_convert_type(), rb_check_string_type(), rb_eArgError, rb_enc_copy(), rb_exec_recursive(), rb_obj_as_string(), rb_raise(), rb_str_buf_append(), recursive_join(), result, T_ARRAY, T_STRING, TYPE, and val.

Referenced by rb_ary_join(), and recursive_join().

static VALUE ary_make_hash | ( | VALUE | ary) |  |
| static

Definition at line 3761 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 3782 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

Definition at line 748 of file array.c.

References ary_alloc(), ARY_EMBED_PTR, ARY_INCREASE_PTR, ary_make_shared(), ARY_SET_EMBED_LEN, ARY_SET_LEN, ARY_SET_PTR, assert, FL_UNSET_EMBED, MEMCPY, RARRAY_EMBED_LEN_MAX, RARRAY_LEN, RARRAY_PTR, rb_ary_set_shared(), and result.

Referenced by ary_make_shared_copy(), ary_take_first_or_last(), and rb_ary_subseq().

static VALUE ary_make_shared | ( | VALUE | ary) |  |
| static

Definition at line 498 of file array.c.

References ARY_CAPA, ARY_EMBED_P, ARY_HEAP_LEN, ary_resize_capa(), ARY_SET_LEN, ARY_SET_PTR, ARY_SET_SHARED, ARY_SET_SHARED_NUM, ARY_SHARED, ARY_SHARED_P, ARY_SHARED_ROOT_P, assert, FL_SET_SHARED, FL_SET_SHARED_ROOT, FL_UNSET_EMBED, NEWOBJ_OF, OBJ_FREEZE, OBJ_FROZEN, RARRAY_LEN, RARRAY_PTR, rb_mem_clear(), and T_ARRAY.

Referenced by ary_ensure_room_for_unshift(), ary_make_partial(), ary_make_substitution(), rb_ary_replace(), and rb_ary_shift().

static VALUE ary_make_shared_copy | ( | VALUE | ary) |  |
| static

Definition at line 776 of file array.c.

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

Referenced by rb_ary_flatten(), rb_ary_permutation(), rb_ary_product(), rb_ary_repeated_combination(), and rb_ary_repeated_permutation().

static VALUE ary_make_substitution | ( | VALUE | ary) |  |
| static

Definition at line 531 of file array.c.

References ARY_EMBED_PTR, ary_make_shared(), ARY_SET_EMBED_LEN, MEMCPY, RARRAY_EMBED_LEN_MAX, RARRAY_LEN, RARRAY_PTR, rb_ary_increment_share(), and rb_ary_new2().

Referenced by rb_ary_sort_bang().

static VALUE ary_new | ( | VALUE | klass,
|  | long | capa
| ) |  |
| static

Definition at line 390 of file array.c.

References ALLOC_N, ary_alloc(), ARY_MAX_SIZE, ARY_SET_CAPA, ARY_SET_HEAP_LEN, ARY_SET_PTR, FL_UNSET_EMBED, RARRAY_EMBED_LEN_MAX, rb_eArgError, rb_raise(), rb_sourcefile, rb_sourceline(), RUBY_DTRACE_ARRAY_CREATE, and RUBY_DTRACE_ARRAY_CREATE_ENABLED.

Referenced by flatten(), rb_ary_new2(), rb_ary_s_create(), rb_ary_subseq(), rb_ary_times(), rb_ary_tmp_new(), and rb_ary_uniq().

static void ary_recycle_hash | ( | VALUE | hash) |  |
| inline static

Definition at line 3789 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 2927 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

Definition at line 2941 of file array.c.

References ary_sort_data::ary, i, Qnil, RARRAY_LEN, RARRAY_PTR, rb_ary_delete_at(), rb_ary_modify_check(), rb_yield(), result, RTEST, and v.

Referenced by rb_ary_delete_if(), and rb_ary_reject_bang().

static void ary_resize_capa | ( | VALUE | ary,
|  | long | capacity
| ) |  |
| static

Definition at line 149 of file array.c.

References ALLOC_N, ARY_EMBED_LEN, ARY_EMBED_P, ARY_EMBED_PTR, ARY_SET_CAPA, ARY_SET_HEAP_LEN, ARY_SET_LEN, ARY_SET_PTR, ARY_SHARED_P, assert, FL_SET_EMBED, FL_UNSET_EMBED, MEMCPY, OBJ_FROZEN, RARRAY, RARRAY_EMBED_LEN_MAX, RARRAY_LEN, RARRAY_PTR, REALLOC_N, and xfree.

Referenced by ary_double_capa(), ary_make_shared(), ary_resize_smaller(), rb_ary_clear(), rb_ary_compact_bang(), rb_ary_fill(), rb_ary_initialize(), rb_ary_pop(), and rb_ary_uniq_bang().

static void ary_resize_smaller | ( | VALUE | ary,
|  | long | len
| ) |  |
| static

Definition at line 2727 of file array.c.

References ARY_CAPA, ARY_DEFAULT_SIZE, ary_resize_capa(), ARY_SET_LEN, RARRAY_LEN, and rb_ary_modify().

Referenced by rb_ary_delete(), and rb_ary_delete_same().

static void ary_reverse | ( | VALUE * | p1,
|  | VALUE * | p2
| ) |  |
| static

Definition at line 2033 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

Definition at line 788 of file array.c.

References ary_make_partial(), NUM2LONG, RARRAY_LEN, rb_cArray, rb_eArgError, rb_raise(), and rb_scan_args().

Referenced by rb_ary_first(), rb_ary_last(), rb_ary_pop_m(), and rb_ary_shift_m().

static VALUE ary_tmp_hash_new | ( | void | ) |  |
| inline static

Definition at line 3752 of file array.c.

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

Referenced by ary_make_hash(), and ary_make_hash_by().

static VALUE binomial_coefficient | ( | long | comb,
|  | long | size
| ) |  |
| static

Definition at line 4604 of file array.c.

References descending_factorial(), id_div, LONG2FIX, and rb_funcall().

Referenced by rb_ary_combination_size(), and rb_ary_repeated_combination_size().

static VALUE descending_factorial | ( | long | from,
|  | long | how_many
| ) |  |
| static

Definition at line 4594 of file array.c.

References cnt, LONG2FIX, and rb_funcall().

Referenced by binomial_coefficient(), and rb_ary_permutation_size().

static VALUE empty_ary_alloc | ( | VALUE | klass) |  |
| static

Definition at line 380 of file array.c.

References ary_alloc(), rb_sourcefile, rb_sourceline(), RUBY_DTRACE_ARRAY_CREATE, and RUBY_DTRACE_ARRAY_CREATE_ENABLED.

Referenced by Init_Array().

static VALUE flatten | ( | VALUE | ary,
|  | int | level,
|  | int * | modified
| ) |  |
| static

Definition at line 4144 of file array.c.

References ARY_DEFAULT_SIZE, ary_new(), i, id, LONG2NUM, NIL_P, NUM2LONG, Qtrue, RARRAY_LEN, RARRAY_PTR, rb_ary_pop(), rb_ary_push(), rb_check_array_type(), rb_class_of(), rb_eArgError, rb_eRuntimeError, rb_raise(), RBASIC, result, st_delete(), st_free_table(), st_init_numtable(), st_insert(), and st_lookup().

Referenced by rb_ary_flatten(), and rb_ary_flatten_bang().

void Init_Array | ( | void | ) |  |

Definition at line 5440 of file array.c.

References empty_ary_alloc(), ID2SYM, id_cmp, id_div, id_power, rb_ary_and(), rb_ary_aref(), rb_ary_aset(), rb_ary_assoc(), rb_ary_at(), rb_ary_bsearch(), 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

Definition at line 1953 of file array.c.

References i, OBJ_TAINT, OBJ_TAINTED, OBJ_UNTRUST, OBJ_UNTRUSTED, RARRAY_LEN, RARRAY_PTR, rb_enc_copy(), rb_inspect(), rb_str_buf_append(), rb_str_buf_cat2(), rb_str_buf_new2, rb_usascii_str_new_cstr(), and TRUE.

Referenced by rb_ary_inspect().

static void memfill | ( | register VALUE * | mem,
|  | register long | size,
|  | register VALUE | val
| ) |  |
| inline static

Definition at line 45 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 4558 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 3918 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

Definition at line 3851 of file array.c.

References ary_make_hash(), ary_recycle_hash(), hash(), i, RARRAY_LEN, rb_ary_elt(), rb_ary_new2(), rb_ary_push(), RHASH_EMPTY_P, RHASH_TBL, st_delete(), to_ary(), and v.

Referenced by Init_Array().

VALUE rb_ary_aref | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | ary
| ) |  |

Definition at line 1163 of file array.c.

References arg, FIX2LONG, FIXNUM_P, NULL, NUM2LONG, Qfalse, Qnil, RARRAY_LEN, rb_ary_entry(), rb_ary_subseq(), rb_range_beg_len(), and rb_scan_args().

Referenced by Init_Array(), and match_aref().

static VALUE rb_ary_aset | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | ary
| ) |  |
| static

Definition at line 1586 of file array.c.

References FIX2LONG, FIXNUM_P, NUM2LONG, RARRAY_LEN, rb_ary_modify_check(), rb_ary_splice(), rb_ary_store(), rb_check_arity, and rb_range_beg_len().

Referenced by Init_Array().

VALUE rb_ary_assoc | ( | VALUE | ary,
|  | VALUE | key
| ) |  |

Definition at line 3477 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 1210 of file array.c.

References NUM2LONG, and rb_ary_entry().

Referenced by Init_Array().

static VALUE rb_ary_bsearch | ( | VALUE | ary) |  |
| static

Definition at line 2434 of file array.c.

References FIX2INT, FIXNUM_P, id_cmp, INT2FIX, Qfalse, Qnil, Qtrue, RARRAY_LEN, rb_ary_entry(), rb_cmpint(), rb_cNumeric, rb_eTypeError, rb_funcall(), rb_obj_classname(), rb_obj_is_kind_of(), rb_raise(), rb_yield(), RETURN_ENUMERATOR, v, and val.

Referenced by Init_Array().

VALUE rb_ary_cat | ( | VALUE | ary,
|  | const VALUE * | ptr,
|  | long | len
| ) |  |

Definition at line 846 of file array.c.

References ary_ensure_room_for_push(), ARY_SET_LEN, MEMCPY, RARRAY_LEN, and RARRAY_PTR.

Referenced by enumerator_each(), features_index_add_single(), generator_each(), lazy_init_iterator(), and rb_ary_push_m().

VALUE rb_ary_clear | ( | VALUE | ary) |  |

Definition at line 3220 of file array.c.

References ary_sort_data::ary, ARY_CAPA, ARY_DEFAULT_SIZE, ARY_EMBED_P, ary_resize_capa(), ARY_SET_LEN, ARY_SHARED_P, FL_SET_EMBED, rb_ary_modify_check(), and rb_ary_unshare().

Referenced by coverage_result_i(), fdbm_delete_if(), fgdbm_delete_if(), Init_Array(), iseq_set_arguments(), method_missing(), open_key_args(), r_object0(), rb_io_s_popen(), rb_threadptr_pending_interrupt_clear(), ruby_set_argv(), and set_argv().

VALUE rb_ary_cmp | ( | VALUE | ary1,
|  | VALUE | ary2
| ) |  |

Definition at line 3724 of file array.c.

References INT2FIX, 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 2533 of file array.c.

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

Referenced by Init_Array().

static VALUE rb_ary_collect_bang | ( | VALUE | ary) |  |
| static

Definition at line 2567 of file array.c.

References ary_sort_data::ary, i, RARRAY_LEN, RARRAY_PTR, rb_ary_length(), rb_ary_modify(), rb_ary_store(), rb_yield(), and RETURN_SIZED_ENUMERATOR.

Referenced by Init_Array().

static VALUE rb_ary_combination | ( | VALUE | ary,
|  | VALUE | num
| ) |  |
| static

Definition at line 4727 of file array.c.

References ary_sort_data::ary, i, MEMZERO, NUM2LONG, RARRAY_LEN, RARRAY_PTR, rb_ary_combination_size(), rb_ary_new2(), rb_ary_new3(), rb_ary_new4(), rb_eRuntimeError, rb_raise(), rb_yield(), RBASIC, RETURN_SIZED_ENUMERATOR, RSTRING_PTR, tmpary, tmpary_discard, tmpbuf, and tmpbuf_discard.

Referenced by Init_Array().

static VALUE rb_ary_combination_size | ( | VALUE | ary,
|  | VALUE | args
| ) |  |
| static

Definition at line 4693 of file array.c.

References binomial_coefficient(), NUM2LONG, RARRAY_LEN, and RARRAY_PTR.

Referenced by rb_ary_combination().

static VALUE rb_ary_compact | ( | VALUE | ary) |  |
| static

Definition at line 4085 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

Definition at line 4049 of file array.c.

References ary_sort_data::ary, ARY_CAPA, ARY_DEFAULT_SIZE, ary_resize_capa(), ARY_SET_LEN, NIL_P, p, Qnil, RARRAY_LEN, RARRAY_PTR, and rb_ary_modify().

Referenced by Init_Array(), and rb_ary_compact().

VALUE rb_ary_concat | ( | VALUE | x,
|  | VALUE | y
| ) |  |

Definition at line 3382 of file array.c.

References RARRAY_LEN, rb_ary_modify_check(), rb_ary_splice(), and to_ary().

Referenced by argf_readlines(), enum_sort_by(), flat_map_i(), hash2kv(), hash2kv_enc(), Init_Array(), ole_methods(), open_key_args(), rb_str_associate(), and sort_by_i().

static VALUE rb_ary_count | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | ary
| ) |  |
| static

Definition at line 4114 of file array.c.

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

Referenced by Init_Array().

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

Definition at line 4514 of file array.c.

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

Referenced by Init_Array().

static VALUE rb_ary_cycle_size | ( | VALUE | self,
|  | VALUE | args
| ) |  |
| static

Definition at line 4479 of file array.c.

References DBL2NUM, INFINITY, INT2FIX, LONG2FIX, mul, NUM2LONG, Qnil, RARRAY_LEN, RARRAY_PTR, rb_ary_length(), and rb_funcall().

Referenced by rb_ary_cycle().

static void rb_ary_decrement_share | ( | VALUE | shared) |  |
| static

Definition at line 197 of file array.c.

References ARY_SET_SHARED_NUM, ARY_SHARED_NUM, rb_ary_free(), and rb_gc_force_recycle().

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

VALUE rb_ary_delete | ( | VALUE | ary,
|  | VALUE | item
| ) |  |

Definition at line 2760 of file array.c.

References ary_resize_smaller(), Qnil, RARRAY_LEN, RARRAY_PTR, rb_ary_store(), rb_block_given_p(), rb_equal(), rb_yield(), and v.

Referenced by env_replace_i(), and Init_Array().

VALUE rb_ary_delete_at | ( | VALUE | ary,
|  | long | pos
| ) |  |

Definition at line 2813 of file array.c.

References ARY_INCREASE_LEN, MEMMOVE, Qnil, RARRAY_LEN, RARRAY_PTR, and rb_ary_modify().

Referenced by ary_reject_bang(), ole_delete_event(), rb_ary_delete_at_m(), rb_ary_slice_bang(), and rb_threadptr_pending_interrupt_deque().

static VALUE rb_ary_delete_at_m | ( | VALUE | ary,
|  | VALUE | pos
| ) |  |
| static

Definition at line 2849 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 3026 of file array.c.

References ary_sort_data::ary, ary_reject_bang(), rb_ary_length(), and RETURN_SIZED_ENUMERATOR.

Referenced by Init_Array().

void rb_ary_delete_same | ( | VALUE | ary,
|  | VALUE | item
| ) |  |

Definition at line 2790 of file array.c.

References ary_resize_smaller(), RARRAY_LEN, RARRAY_PTR, and rb_ary_store().

Referenced by wmap_final_func().

static VALUE rb_ary_diff | ( | VALUE | ary1,
|  | VALUE | ary2
| ) |  |
| static

Definition at line 3816 of file array.c.

References ary_make_hash(), ary_recycle_hash(), hash(), i, RARRAY_LEN, RARRAY_PTR, rb_ary_elt(), rb_ary_new(), rb_ary_push(), RHASH_TBL, st_lookup(), and to_ary().

Referenced by Init_Array().

static VALUE rb_ary_drop | ( | VALUE | ary,
|  | VALUE | n
| ) |  |
| static

Definition at line 5162 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 5194 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) |  |

Definition at line 1778 of file array.c.

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

Referenced by ary2sv(), coverage_result_i(), each_cons_i(), enumerator_each(), enumerator_peek_values_m(), iseq_build_from_ary_body(), method_def_location(), rb_ary_compact(), rb_ary_shuffle(), rb_ary_sort(), rb_ary_transpose(), rb_ary_uniq(), rb_io_s_popen(), rb_struct_s_members_m(), save_env_i(), and thread_create_core().

VALUE rb_ary_each | ( | VALUE | array) |  |

Definition at line 1670 of file array.c.

References i, RARRAY_LEN, RARRAY_PTR, rb_ary_length(), rb_yield(), and RETURN_SIZED_ENUMERATOR.

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

static VALUE rb_ary_each_index | ( | VALUE | ary) |  |
| static

Definition at line 1701 of file array.c.

References i, LONG2NUM, RARRAY_LEN, rb_ary_length(), rb_yield(), and RETURN_SIZED_ENUMERATOR.

Referenced by Init_Array().

static VALUE rb_ary_elt | ( | VALUE | ary,
|  | long | offset
| ) |  |
| inline static

Definition at line 1091 of file array.c.

References Qnil, RARRAY_LEN, and RARRAY_PTR.

Referenced by ary_add_hash_by(), rb_ary_and(), rb_ary_diff(), rb_ary_entry(), rb_ary_or(), rb_ary_select(), rb_ary_transpose(), rb_ary_uniq(), rb_ary_uniq_bang(), rb_ary_zip(), recursive_cmp(), and recursive_eql().

static VALUE rb_ary_empty_p | ( | VALUE | ary) |  |
| static

Definition at line 1770 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 1101 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_redirect(), collect_caller_bindings(), dimension(), divmodv(), enc_register_at(), EVENTSINK_Invoke(), evs_entry(), foletypelib_initialize(), folevariant_initialize(), folevariant_s_array(), frame_get(), generate_json_array(), generate_json_object(), get_loaded_features_index(), hash2named_arg(), iseq_build_from_ary_body(), iseq_data_to_ary(), iseq_load(), JSON_parse_string(), lazy_zip_arrays_func(), lep_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_bsearch(), rb_ary_product(), rb_ary_values_at(), rb_debug_inspector_frame_binding_get(), rb_debug_inspector_frame_class_get(), rb_debug_inspector_frame_iseq_get(), rb_debug_inspector_frame_self_get(), rb_econv_init_by_convpath(), rb_enc_aliases_enc_i(), rb_enc_from_encoding_index(), rb_execarg_addopt(), rb_iseq_build_from_ary(), rb_iseq_disasm(), rb_reg_s_union(), rb_reg_s_union_m(), rb_struct_each_pair(), rb_struct_to_h(), rescue_callback(), select_internal(), set_state_ivars(), start_document(), time_timespec(), and wdivmod().

static VALUE rb_ary_eql | ( | VALUE | ary1,
|  | VALUE | ary2
| ) |  |
| static

Definition at line 3608 of file array.c.

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

Referenced by Init_Array().

static VALUE rb_ary_equal | ( | VALUE | ary1,
|  | VALUE | ary2
| ) |  |
| static

Definition at line 3573 of file array.c.

References Qfalse, Qtrue, RARRAY_LEN, rb_equal(), rb_exec_recursive_paired(), rb_intern, rb_respond_to(), RB_TYPE_P, recursive_equal(), and T_ARRAY.

Referenced by Init_Array().

static VALUE rb_ary_fetch | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | ary
| ) |  |
| static

Definition at line 1293 of file array.c.

References NUM2LONG, RARRAY_LEN, RARRAY_PTR, rb_block_given_p(), rb_eIndexError, rb_raise(), rb_scan_args(), rb_warn(), and rb_yield().

Referenced by Init_Array().

static VALUE rb_ary_fill | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | ary
| ) |  |
| static

Definition at line 3267 of file array.c.

References ary_sort_data::ary, ARY_CAPA, ARY_MAX_SIZE, ary_resize_capa(), ARY_SET_LEN, FALSE, i, LONG2NUM, NIL_P, NUM2LONG, p, RARRAY_LEN, RARRAY_PTR, rb_ary_modify(), rb_block_given_p(), rb_eArgError, rb_mem_clear(), rb_raise(), rb_range_beg_len(), rb_scan_args(), rb_yield(), TRUE, and v.

Referenced by Init_Array().

static VALUE rb_ary_first | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | ary
| ) |  |
| static

Definition at line 1231 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 4263 of file array.c.

References ary_make_shared_copy(), flatten(), level, 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

Definition at line 4218 of file array.c.

References ary_sort_data::ary, ary_discard(), ARY_EMBED_P, ARY_SET_EMBED_LEN, flatten(), level, mod, NIL_P, NUM2INT, Qnil, rb_ary_modify_check(), rb_ary_replace(), rb_obj_freeze(), rb_scan_args(), and result.

Referenced by Init_Array().

void rb_ary_free | ( | VALUE | ary) |  |

Definition at line 471 of file array.c.

References ARY_HEAP_PTR, ARY_OWNS_HEAP_P, and xfree.

Referenced by ary_discard(), obj_free(), rb_ary_decrement_share(), and ruby_vm_run_at_exit_hooks().

VALUE rb_ary_freeze | ( | VALUE | ary) |  |

Definition at line 330 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 344 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 3648 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 3666 of file array.c.

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

Referenced by env_replace_i(), and Init_Array().

static VALUE rb_ary_increment_share | ( | VALUE | shared) |  |
| static

Definition at line 228 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

Definition at line 1346 of file array.c.

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

Referenced by Init_Array().

static VALUE rb_ary_initialize | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | ary
| ) |  |
| static

Definition at line 644 of file array.c.

References ARY_MAX_SIZE, ARY_OWNS_HEAP_P, ary_resize_capa(), ARY_SET_EMBED_LEN, ARY_SET_LEN, FIXNUM_P, FL_SET_EMBED, i, LONG2NUM, memfill(), NIL_P, NUM2LONG, RARRAY_PTR, rb_ary_modify(), rb_ary_replace(), rb_ary_store(), rb_ary_unshare_safe(), rb_block_given_p(), rb_check_array_type(), rb_eArgError, rb_raise(), rb_scan_args(), rb_warn(), rb_warning(), rb_yield(), size, val, and xfree.

Referenced by Init_Array().

static VALUE rb_ary_insert | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | ary
| ) |  |
| static

Definition at line 1630 of file array.c.

References NUM2LONG, RARRAY_LEN, rb_ary_modify_check(), rb_ary_new4(), rb_ary_splice(), rb_check_arity, and UNLIMITED_ARGUMENTS.

Referenced by Init_Array().

static VALUE rb_ary_inspect | ( | VALUE | ary) |  |
| static

Definition at line 1987 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
| ) |  |

Definition at line 1886 of file array.c.

References ary_join_0(), ary_join_1(), FALSE, i, NIL_P, OBJ_TAINT, OBJ_TAINTED, OBJ_UNTRUST, OBJ_UNTRUSTED, RARRAY_LEN, RARRAY_PTR, rb_check_string_type(), rb_enc_associate(), rb_str_buf_new(), rb_usascii_encoding(), rb_usascii_str_new(), result, RSTRING_LEN, StringValue, TRUE, and val.

Referenced by insn_operand_intern(), pipe_open(), rb_ary_join_m(), rb_ary_times(), rb_spawn_process(), and tcl_protect_core().

static VALUE rb_ary_join_m | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | ary
| ) |  |
| static

Definition at line 1942 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 2719 of file array.c.

References ary_sort_data::ary, rb_ary_length(), rb_ary_select_bang(), and RETURN_SIZED_ENUMERATOR.

Referenced by Init_Array().

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

Definition at line 1258 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 1754 of file array.c.

References LONG2NUM, and RARRAY_LEN.

Referenced by Init_Array(), rb_ary_collect(), rb_ary_collect_bang(), rb_ary_cycle_size(), rb_ary_delete_if(), rb_ary_each(), rb_ary_each_index(), rb_ary_keep_if(), rb_ary_reject(), rb_ary_reject_bang(), rb_ary_reverse_each(), rb_ary_select(), rb_ary_select_bang(), and rb_ary_sort_by_bang().

RUBY_FUNC_EXPORTED size_t rb_ary_memsize | ( | VALUE | ary) |  |

Definition at line 479 of file array.c.

References ARY_OWNS_HEAP_P, and RARRAY.

Referenced by memsize_of(), and wmap_memsize_map().

void rb_ary_modify | ( | VALUE | ary) |  |

Definition at line 254 of file array.c.

References ALLOC_N, ARY_EMBED_PTR, ARY_HEAP_PTR, ARY_SET_CAPA, ARY_SET_EMBED_LEN, ARY_SET_PTR, ARY_SHARED, ARY_SHARED_NUM, ARY_SHARED_P, FL_SET_EMBED, FL_UNSET_SHARED, MEMCPY, MEMMOVE, RARRAY_EMBED_LEN_MAX, RARRAY_LEN, RARRAY_PTR, rb_ary_decrement_share(), rb_ary_modify_check(), rb_ary_unshare(), and shift().

Referenced by ary_ensure_room_for_push(), ary_ensure_room_for_unshift(), ary_resize_smaller(), rb_ary_collect_bang(), rb_ary_compact_bang(), rb_ary_delete_at(), rb_ary_fill(), rb_ary_initialize(), rb_ary_resize(), rb_ary_reverse(), rb_ary_rotate(), rb_ary_select_bang(), rb_ary_shuffle_bang(), rb_ary_sort_bang(), rb_ary_sort_by_bang(), rb_ary_splice(), and rb_ary_store().

static void rb_ary_modify_check | ( | VALUE | ary) |  |
| inline static

Definition at line 246 of file array.c.

References OBJ_UNTRUSTED, rb_check_frozen, rb_eSecurityError, rb_raise(), and rb_safe_level.

Referenced by ary_ensure_room_for_push(), ary_reject_bang(), rb_ary_aset(), rb_ary_clear(), rb_ary_concat(), rb_ary_flatten_bang(), rb_ary_insert(), rb_ary_modify(), rb_ary_pop(), rb_ary_pop_m(), rb_ary_replace(), rb_ary_set_len(), rb_ary_shift(), rb_ary_shift_m(), rb_ary_slice_bang(), rb_ary_uniq_bang(), and rb_ary_unshift_m().

VALUE rb_ary_new | ( | void | ) |  |

Definition at line 424 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(), backtrace_collect(), cbsubst_get_extra_args_tbl(), cbsubst_table_setup(), check_exec_redirect1(), class_instance_method_list(), collect_caller_bindings(), 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_while(), enum_to_a(), enum_zip(), env_each_pair(), env_keys(), env_to_a(), env_values(), env_values_at(), EVENTSINK_Invoke(), fdbm_keys(), fdbm_select(), fdbm_to_a(), fdbm_values(), fev_initialize(), 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(), Init_load(), Init_ossl_asn1(), Init_VM(), Init_win32ole(), insn_operand_intern(), int_ossl_asn1_decode0_cons(), iseq_data_to_ary(), JSON_parse_array(), lep_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_execarg_addopt(), rb_f_global_variables(), rb_f_local_variables(), rb_f_untrace_var(), rb_fiddle_ptr_free_get(), rb_gzreader_readlines(), rb_hash_keys(), rb_hash_to_a(), rb_hash_values(), rb_insns_name_array(), rb_io_readlines(), rb_iseq_disasm(), rb_iseq_line_trace_all(), rb_mod_ancestors(), rb_mod_included_modules(), rb_mod_nesting(), rb_obj_instance_variables(), rb_obj_singleton_methods(), rb_push_glob(), rb_reg_names(), rb_scan_args(), rb_str_enumerate_bytes(), rb_str_enumerate_chars(), rb_str_enumerate_codepoints(), rb_str_enumerate_lines(), rb_str_scan(), rb_str_split_m(), rb_struct_define(), rb_struct_select(), rb_thread_keys(), rb_thread_list(), rb_thread_variables(), reachable_objects_from(), reduce0(), save_env(), save_redirect_fd(), search_convpath_i(), select_internal(), sock_s_gethostbyaddr(), strio_readlines(), thgroup_list(), tk_hash_kv(), username_completion_proc_call(), vm_backtrace_to_ary(), vm_expandarray(), and vm_yield_setup_block_args().

VALUE rb_ary_new2 | ( | long | capa) |  |

Definition at line 417 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(), collect_caller_bindings_cfunc(), collect_caller_bindings_iseq(), coverage(), cvar_list(), each_slice_i(), econv_primitive_errinfo(), enc_list(), enc_names(), enum_each_cons(), enum_each_slice(), enum_sort_by(), enum_take(), fdbm_values_at(), fgdbm_values_at(), fsdbm_values_at(), generator_each(), hash2kv(), hash2kv_enc(), Init_Encoding(), Init_ossl_ssl(), Init_tcltklib(), ip_ruby_cmd(), iseq_data_to_ary(), JSON_parse_string(), lazy_zip(), lazy_zip_arrays_func(), lazy_zip_func(), 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_values_at(), rb_hash_values_at(), rb_iseq_parameters(), rb_str_enumerate_bytes(), rb_str_split_m(), rb_struct_define_without_accessor(), rb_sym_all_symbols(), rb_zlib_crc_table(), rcombinate0(), reg_named_captures_iter(), rpermute0(), scan_once(), select_internal(), take_items(), tk_conv_args(), unnamed_parameters(), zip_ary(), and zip_i().

VALUE rb_ary_new3 | ( | long | n,
|  |  | ...
| ) |  |

Definition at line 432 of file array.c.

References ARY_SET_LEN, i, RARRAY_PTR, and rb_ary_new2().

Referenced by addrinfo_mdump(), BIGNUM_1c(), bmcall(), cbsubst_get_all_subst_keys(), check_exec_redirect(), chunk_ii(), d_lite_marshal_dump(), define_final0(), enum_minmax(), ev_on_event(), get_eventloop_weight(), group_by_i(), hash2kv(), hash2kv_enc(), ip_eval(), ip_invoke_with_position(), lazy_drop(), lazy_grep(), lazy_take(), lib_getversion(), make_curry_proc(), ossl_x509name_initialize(), ossl_x509name_to_a(), parse(), path_split(), rb_add_method(), rb_Array(), rb_ary_combination(), rb_ary_permutation(), rb_ary_repeated_combination(), rb_ary_repeated_permutation(), rb_ary_sample(), rb_ary_to_ary(), rb_assoc_new(), rb_check_backtrace(), rb_execarg_addopt(), rb_f_untrace_var(), rb_str_partition(), rb_str_rpartition(), rb_str_split_m(), rb_trace_eval(), rsock_ipaddr(), rt_complete_frags(), run_finalizer(), set_eventloop_weight(), setup_exception(), signal_exec(), slicebefore_ii(), time_to_a(), tk_funcall(), unnamed_parameters(), and yyparse().

VALUE rb_ary_new4 | ( | long | n,
|  | const VALUE * | elts
| ) |  |

Definition at line 451 of file array.c.

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

Referenced by call_cfunc_m2(), check_funcall_exec(), curry(), enum_zip(), enumerator_each(), enumerator_init(), enumerator_with_index_i(), enumerator_with_object_i(), get_stack_tail(), iseq_location(), lazy_zip(), libyaml_version(), make_no_method_exception(), make_passing_arg(), next_ii(), pipe_open(), proc_fallback(), rb_ary_combination(), rb_ary_insert(), rb_ary_resurrect(), rb_ary_sample(), rb_ary_slice_bang(), rb_enum_values_pack(), rb_f_p_internal(), rb_mod_module_exec(), rb_obj_instance_exec(), rb_scan_args(), rb_spawn_process(), rb_struct_to_a(), take_i(), vm_call0_body(), vm_callee_setup_arg_complex(), vm_expandarray(), vm_yield_setup_block_args(), vm_yield_setup_block_args_complex(), and vm_yield_with_cfunc().

static VALUE rb_ary_or | ( | VALUE | ary1,
|  | VALUE | ary2
| ) |  |
| static

Definition at line 3891 of file array.c.

References ary_add_hash(), ary_make_hash(), ary_recycle_hash(), hash(), i, RARRAY_LEN, rb_ary_elt(), rb_ary_new2(), rb_ary_push(), RHASH_TBL, st_delete(), to_ary(), and v.

Referenced by Init_Array().

static VALUE rb_ary_permutation | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | ary
| ) |  |
| static

Definition at line 4653 of file array.c.

References ary_sort_data::ary, ary_make_shared_copy(), i, MEMZERO, NIL_P, NUM2LONG, p, permute0(), RARRAY_LEN, RARRAY_PTR, rb_ary_new2(), rb_ary_new3(), rb_ary_permutation_size(), rb_cArray, rb_scan_args(), rb_yield(), RBASIC, RETURN_SIZED_ENUMERATOR, RSTRING_PTR, tmpbuf, and tmpbuf_discard.

Referenced by Init_Array().

static VALUE rb_ary_permutation_size | ( | VALUE | ary,
|  | VALUE | args
| ) |  |
| static

Definition at line 4616 of file array.c.

References descending_factorial(), NUM2LONG, RARRAY_LEN, and RARRAY_PTR.

Referenced by rb_ary_permutation().

VALUE rb_ary_plus | ( | VALUE | x,
|  | VALUE | y
| ) |  |

Definition at line 3353 of file array.c.

References ARY_SET_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) |  |

Definition at line 879 of file array.c.

References ARY_CAPA, ARY_DEFAULT_SIZE, ARY_OWNS_HEAP_P, ary_resize_capa(), ARY_SET_LEN, Qnil, RARRAY_LEN, RARRAY_PTR, and rb_ary_modify_check().

Referenced by cut_stack_tail(), flatten(), lib_eventloop_ensure(), r_object0(), rb_ary_pop_m(), rb_str_split_m(), rb_thread_s_handle_interrupt(), rb_uninterruptible(), and ruby_vm_run_at_exit_hooks().

static VALUE rb_ary_pop_m | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | ary
| ) |  |
| static

Definition at line 914 of file array.c.

References ARY_INCREASE_LEN, ary_take_first_or_last(), ARY_TAKE_LAST, RARRAY_LEN, rb_ary_modify_check(), rb_ary_pop(), and result.

Referenced by Init_Array().

static VALUE rb_ary_product | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | ary
| ) |  |
| static

Definition at line 5003 of file array.c.

References ary_sort_data::ary, ary_make_shared_copy(), ARY_SET_LEN, FL_SET, FL_TEST, FL_UNSET, FL_USER5, i, MUL_OVERFLOW_LONG_P, NIL_P, Qnil, RARRAY_LEN, RARRAY_PTR, rb_ary_entry(), rb_ary_new2(), rb_ary_push(), rb_block_given_p(), rb_eRangeError, rb_eRuntimeError, rb_raise(), rb_yield(), RBASIC, result, RSTRING_PTR, tmpary, tmpary_discard, tmpbuf, tmpbuf_discard, and to_ary().

Referenced by Init_Array().

VALUE rb_ary_push | ( | VALUE | ary,
|  | VALUE | item
| ) |  |

Definition at line 822 of file array.c.

References ary_ensure_room_for_push(), ARY_SET_LEN, RARRAY_LEN, and RARRAY_PTR.

Referenced by add_event_call_back(), add_modules(), addrinfo_list_new(), ary2list(), ary2list2(), assoc2kv(), assoc2kv_enc(), backtrace_collect(), BigDecimal_split(), callback(), cbsubst_scan_args(), cdhash_each(), check_exec_env_i(), check_exec_redirect1(), chunk_ii(), collect_all(), collect_caller_bindings_cfunc(), collect_caller_bindings_iseq(), collect_i(), collect_local_variables_in_iseq(), collect_trace(), collect_values(), compile_array_(), cv_list_i(), cycle_i(), define_final0(), 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(), features_index_add_single(), 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(), generator_each(), grep_i(), grep_iter_i(), group_by_i(), gvar_i(), 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(), lazy_init_iterator(), lazy_zip(), lazy_zip_arrays_func(), lazy_zip_func(), 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_construct_expanded_load_path(), rb_enc_name_list_i(), rb_execarg_addopt(), rb_f_global_variables(), rb_f_local_variables(), rb_f_untrace_var(), rb_fiddle_ptr_free_get(), rb_gc_register_mark_object(), 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_enumerate_bytes(), rb_str_enumerate_chars(), rb_str_enumerate_codepoints(), rb_str_enumerate_lines(), rb_str_scan(), rb_str_split_m(), rb_struct_define(), rb_struct_define_without_accessor(), rb_struct_select(), rb_thread_s_handle_interrupt(), rb_threadptr_pending_interrupt_enque(), rb_uninterruptible(), rb_zlib_crc_table(), reachable_object_from_i(), 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(), 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(), waitall_each(), wmap_aset(), yycompile0(), yyparse(), zip_ary(), and zip_i().

static VALUE rb_ary_push_1 | ( | VALUE | ary,
|  | VALUE | item
| ) |  |
| static

Definition at line 833 of file array.c.

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

Referenced by ary_reject().

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

Definition at line 873 of file array.c.

References rb_ary_cat().

Referenced by Init_Array().

VALUE rb_ary_rassoc | ( | VALUE | ary,
|  | VALUE | value
| ) |  |

Definition at line 3510 of file array.c.

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

Referenced by Init_Array().

static VALUE rb_ary_reject | ( | VALUE | ary) |  |
| static

Definition at line 2997 of file array.c.

References ary_reject(), rb_ary_length(), rb_ary_new(), and RETURN_SIZED_ENUMERATOR.

Referenced by Init_Array().

static VALUE rb_ary_reject_bang | ( | VALUE | ary) |  |
| static

Definition at line 2977 of file array.c.

References ary_reject_bang(), rb_ary_length(), and RETURN_SIZED_ENUMERATOR.

Referenced by Init_Array().

static VALUE rb_ary_repeated_combination | ( | VALUE | ary,
|  | VALUE | num
| ) |  |
| static

Definition at line 4947 of file array.c.

References ary_sort_data::ary, ary_make_shared_copy(), i, NUM2LONG, p, RARRAY_LEN, RARRAY_PTR, rb_ary_new2(), rb_ary_new3(), rb_ary_repeated_combination_size(), rb_cArray, rb_yield(), RBASIC, rcombinate0(), RETURN_SIZED_ENUMERATOR, RSTRING_PTR, tmpbuf, and tmpbuf_discard.

Referenced by Init_Array().

static VALUE rb_ary_repeated_combination_size | ( | VALUE | ary,
|  | VALUE | args
| ) |  |
| static

Definition at line 4909 of file array.c.

References binomial_coefficient(), LONG2FIX, NUM2LONG, RARRAY_LEN, and RARRAY_PTR.

Referenced by rb_ary_repeated_combination().

static VALUE rb_ary_repeated_permutation | ( | VALUE | ary,
|  | VALUE | num
| ) |  |
| static

Definition at line 4852 of file array.c.

References ary_sort_data::ary, ary_make_shared_copy(), i, NUM2LONG, p, RARRAY_LEN, RARRAY_PTR, rb_ary_new2(), rb_ary_new3(), rb_ary_repeated_permutation_size(), rb_cArray, rb_yield(), RBASIC, RETURN_SIZED_ENUMERATOR, rpermute0(), RSTRING_PTR, tmpbuf, and tmpbuf_discard.

Referenced by Init_Array().

static VALUE rb_ary_repeated_permutation_size | ( | VALUE | ary,
|  | VALUE | args
| ) |  |
| static

Definition at line 4816 of file array.c.

References id_power, LONG2FIX, LONG2NUM, NUM2LONG, RARRAY_LEN, RARRAY_PTR, and rb_funcall().

Referenced by rb_ary_repeated_permutation().

VALUE rb_ary_replace | ( | VALUE | copy,
|  | VALUE | orig
| ) |  |

Definition at line 3168 of file array.c.

References ary_make_shared(), ARY_OWNS_HEAP_P, ARY_SET_LEN, ARY_SET_PTR, ARY_SHARED, ARY_SHARED_P, FL_SET_EMBED, FL_UNSET_EMBED, FL_UNSET_SHARED, MEMCPY, RARRAY_EMBED_LEN_MAX, RARRAY_LEN, RARRAY_PTR, rb_ary_decrement_share(), rb_ary_modify_check(), rb_ary_set_shared(), rb_ary_unshare_safe(), to_ary(), and xfree.

Referenced by enc_list(), Init_Array(), rb_ary_flatten_bang(), rb_ary_initialize(), rb_ary_sort_by_bang(), rb_ary_to_a(), rb_construct_expanded_load_path(), and reset_loaded_features_snapshot().

VALUE rb_ary_resize | ( | VALUE | ary,
|  | long | len
| ) |  |

expands or shrinks ary to len elements.

expanded region will be filled with Qnil.

Parameters

  ary | an array
  len | new size

Returns
  ary

Postcondition
  the size of ary is len.

Definition at line 1513 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 enum_sort_by(), rb_get_values_at(), and wmap_free_map().

VALUE rb_ary_resurrect | ( | VALUE | ary) |  |

Definition at line 1787 of file array.c.

References RARRAY_LEN, RARRAY_PTR, and rb_ary_new4().

Referenced by obj_resurrect().

VALUE rb_ary_reverse | ( | VALUE | ary) |  |

Definition at line 2043 of file array.c.

References ary_reverse(), RARRAY_LEN, RARRAY_PTR, and rb_ary_modify().

Referenced by collect_caller_bindings(), and rb_ary_reverse_bang().

static VALUE rb_ary_reverse_bang | ( | VALUE | ary) |  |
| static

Definition at line 2068 of file array.c.

References rb_ary_reverse().

Referenced by Init_Array().

static VALUE rb_ary_reverse_each | ( | VALUE | ary) |  |
| static

Definition at line 1728 of file array.c.

References RARRAY_LEN, RARRAY_PTR, rb_ary_length(), rb_yield(), and RETURN_SIZED_ENUMERATOR.

Referenced by Init_Array().

static VALUE rb_ary_reverse_m | ( | VALUE | ary) |  |
| static

Definition at line 2084 of file array.c.

References ARY_SET_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

Definition at line 1395 of file array.c.

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

Referenced by Init_Array().

VALUE rb_ary_rotate | ( | VALUE | ary,
|  | long | cnt
| ) |  |

Definition at line 2105 of file array.c.

References ary_reverse(), 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 2143 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 2174 of file array.c.

References ARY_SET_LEN, cnt, 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 707 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 582 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

Definition at line 4372 of file array.c.

References ARY_SET_LEN, i, memmove(), NUM2LONG, numberof, OPTHASH_GIVEN_P, Qnil, RAND_UPTO, RARRAY_LEN, RARRAY_PTR, rb_ary_new2(), rb_ary_new3(), rb_ary_new4(), rb_cArray, rb_cRandom, rb_eArgError, RB_GC_GUARD, rb_hash_lookup2(), rb_raise(), rb_scan_args(), RBASIC, and result.

Referenced by Init_Array().

static VALUE rb_ary_select | ( | VALUE | ary) |  |
| static

Definition at line 2649 of file array.c.

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

Referenced by Init_Array().

static VALUE rb_ary_select_bang | ( | VALUE | ary) |  |
| static

Definition at line 2681 of file array.c.

References ary_sort_data::ary, ARY_SET_LEN, Qnil, RARRAY_LEN, RARRAY_PTR, rb_ary_length(), rb_ary_modify(), rb_ary_store(), rb_yield(), RETURN_SIZED_ENUMERATOR, RTEST, and v.

Referenced by Init_Array(), and rb_ary_keep_if().

void rb_ary_set_len | ( | VALUE | ary,
|  | long | len
| ) |  |

Definition at line 1490 of file array.c.

References ARY_CAPA, ARY_SET_LEN, ARY_SHARED_P, rb_ary_modify_check(), rb_bug(), rb_eRuntimeError, and rb_raise().

Referenced by method_missing().

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

Definition at line 238 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_shared_with_p | ( | VALUE | ary1,
|  | VALUE | ary2
| ) |  |

Definition at line 358 of file array.c.

References ARY_EMBED_P, ARY_SHARED_P, Qfalse, Qtrue, and RARRAY.

Referenced by get_loaded_features_index(), and rb_get_expanded_load_path().

VALUE rb_ary_shift | ( | VALUE | ary) |  |

Definition at line 929 of file array.c.

References ARY_DEFAULT_SIZE, ARY_EMBED_P, ARY_INCREASE_LEN, ARY_INCREASE_PTR, ary_make_shared(), ARY_SHARED, ARY_SHARED_NUM, ARY_SHARED_P, assert, MEMMOVE, Qnil, RARRAY_LEN, RARRAY_PTR, rb_ary_modify_check(), and top.

Referenced by argf_next_argv(), each_cons_i(), filename_completion_proc_call(), process_sflag(), rb_ary_shift_m(), rb_threadptr_pending_interrupt_deque(), require_libraries(), and username_completion_proc_call().

static VALUE rb_ary_shift_m | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | ary
| ) |  |
| static

Definition at line 980 of file array.c.

References ARY_INCREASE_LEN, ARY_INCREASE_PTR, ARY_SHARED, ARY_SHARED_NUM, ARY_SHARED_P, ARY_TAKE_FIRST, ary_take_first_or_last(), MEMMOVE, RARRAY_LEN, RARRAY_PTR, rb_ary_modify_check(), rb_ary_shift(), rb_mem_clear(), and result.

Referenced by Init_Array().

static VALUE rb_ary_shuffle | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | ary
| ) |  |
| static

Definition at line 4339 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

Definition at line 4295 of file array.c.

References ary_sort_data::ary, i, OPTHASH_GIVEN_P, RAND_UPTO, RARRAY_LEN, RARRAY_PTR, rb_ary_modify(), rb_check_arity, rb_cRandom, rb_eRuntimeError, rb_hash_lookup2(), and rb_raise().

Referenced by Init_Array(), and rb_ary_shuffle().

static VALUE rb_ary_slice_bang | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | ary
| ) |  |
| static

Definition at line 2876 of file array.c.

References FIXNUM_P, NULL, NUM2LONG, Qnil, Qtrue, Qundef, RARRAY_LEN, RARRAY_PTR, rb_ary_delete_at(), rb_ary_modify_check(), rb_ary_new2(), rb_ary_new4(), rb_ary_splice(), rb_obj_class(), rb_range_beg_len(), rb_scan_args(), and RBASIC.

Referenced by Init_Array().

VALUE rb_ary_sort | ( | VALUE | ary) |  |

Definition at line 2373 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) |  |

Definition at line 2290 of file array.c.

References ary_sort_data::ary, ARY_EMBED_LEN, ARY_EMBED_P, ARY_EMBED_PTR, ARY_HEAP_PTR, ary_make_substitution(), ARY_SET_CAPA, ARY_SET_EMBED_LEN, ARY_SET_HEAP_LEN, ARY_SET_LEN, ARY_SET_PTR, ARY_SHARED_P, assert, FL_FREEZE, FL_SET, FL_SET_EMBED, FL_UNSET, FL_UNSET_EMBED, FL_UNSET_SHARED, MEMCPY, ary_sort_data::opt_inited, ary_sort_data::opt_methods, RARRAY_LEN, RARRAY_PTR, rb_ary_modify(), rb_ary_unshare(), rb_block_given_p(), rb_cArray, RBASIC, ruby_qsort(), sort_1(), sort_2(), and xfree.

Referenced by Init_Array(), and rb_ary_sort().

static VALUE rb_ary_sort_by_bang | ( | VALUE | ary) |  |
| static

Definition at line 2500 of file array.c.

References ary_sort_data::ary, rb_ary_length(), rb_ary_modify(), rb_ary_replace(), rb_block_call(), rb_intern, RETURN_SIZED_ENUMERATOR, and sort_by_i().

Referenced by Init_Array().

static void rb_ary_splice | ( | VALUE | ary,
|  | long | beg,
|  | long | len,
|  | VALUE | rpl
| ) |  |
| static

Definition at line 1434 of file array.c.

References ARY_CAPA, ary_double_capa(), ary_ensure_room_for_push(), ARY_MAX_SIZE, ARY_SET_LEN, MEMCPY, MEMMOVE, Qundef, RARRAY_LEN, RARRAY_PTR, rb_ary_modify(), rb_ary_to_ary(), rb_eIndexError, rb_mem_clear(), and rb_raise().

Referenced by rb_ary_aset(), rb_ary_concat(), rb_ary_insert(), and rb_ary_slice_bang().

void rb_ary_store | ( | VALUE | ary,
|  | long | idx,
|  | VALUE | val
| ) |  |

Definition at line 719 of file array.c.

References ARY_CAPA, ary_double_capa(), ARY_MAX_SIZE, ARY_SET_LEN, RARRAY_LEN, RARRAY_PTR, rb_ary_modify(), rb_eIndexError, rb_mem_clear(), and rb_raise().

Referenced by addrinfo_ip_unpack(), ary_new_dim(), ary_store_dim(), check_exec_fds(), collect_caller_bindings(), collect_caller_bindings_cfunc(), collect_caller_bindings_iseq(), decorate_convpath(), econv_primitive_errinfo(), enc_register_at(), enum_minmax(), enum_sort_by(), evs_delete(), get_loaded_features_index(), Init_ossl_asn1(), iseq_build_from_ary_body(), iseq_data_to_ary(), lep_svar_set(), ossl_generate_cb(), path_entries(), path_s_glob(), pty_getpty(), rb_ary_aset(), rb_ary_collect_bang(), rb_ary_delete(), rb_ary_delete_same(), rb_ary_initialize(), rb_ary_select_bang(), rb_ary_transpose(), rb_ary_uniq_bang(), rb_enc_aliases_enc_i(), reg_named_captures_iter(), search_convpath_i(), sym_to_proc(), unnamed_parameters(), zip_ary(), and zip_i().

VALUE rb_ary_subseq | ( | VALUE | ary,
|  | long | beg,
|  | long | len
| ) |  |

Definition at line 1110 of file array.c.

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

Referenced by rb_apply(), 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 5107 of file array.c.

References 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 5134 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

Definition at line 3411 of file array.c.

References ARY_MAX_SIZE, ary_new(), ARY_SET_LEN, MEMCPY, NIL_P, NUM2LONG, OBJ_INFECT, RARRAY_LEN, RARRAY_PTR, rb_ary_join(), rb_check_string_type(), rb_eArgError, rb_obj_class(), and rb_raise().

Referenced by Init_Array().

VALUE rb_ary_tmp_new | ( | long | capa) |  |

Definition at line 465 of file array.c.

References ary_new().

Referenced by callback(), compile_array_(), enum_sort_by(), fdbm_delete_if(), features_index_add_single(), fgdbm_delete_if(), Init_load(), Init_Thread(), Init_top_self(), iseq_set_arguments(), lazy_init_iterator(), method_missing(), open_key_args(), prepare_iseq_build(), r_object0(), rb_construct_expanded_load_path(), rb_iseq_build_for_ruby2cext(), rb_struct_new(), sym_to_proc(), thread_create_core(), and wmap_aset().

static VALUE rb_ary_to_a | ( | VALUE | ary) |  |
| static

Definition at line 2009 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 1425 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 2027 of file array.c.

Referenced by Init_Array().

VALUE rb_ary_to_s | ( | VALUE | ary) |  |

Definition at line 1994 of file array.c.

References rb_ary_inspect().

static VALUE rb_ary_transpose | ( | VALUE | ary) |  |
| static

Definition at line 3128 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

Definition at line 4009 of file array.c.

References ary_make_hash(), ary_make_hash_by(), ary_new(), ary_recycle_hash(), hash(), i, push_value(), RARRAY_LEN, rb_ary_dup(), rb_ary_elt(), rb_ary_push(), rb_block_given_p(), rb_obj_class(), RHASH_SIZE, RHASH_TBL, st_delete(), st_foreach(), and v.

Referenced by Init_Array().

static VALUE rb_ary_uniq_bang | ( | VALUE | ary) |  |
| static

Definition at line 3950 of file array.c.

References ary_sort_data::ary, ARY_EMBED_P, ary_make_hash(), ary_make_hash_by(), ary_recycle_hash(), ary_resize_capa(), ARY_SET_LEN, ARY_SHARED_P, FL_SET_EMBED, hash(), i, push_value(), Qnil, RARRAY_LEN, rb_ary_elt(), rb_ary_modify_check(), rb_ary_store(), rb_ary_unshare(), rb_block_given_p(), RHASH_SIZE, RHASH_TBL, st_delete(), st_foreach(), and v.

Referenced by Init_Array().

static void rb_ary_unshare | ( | VALUE | ary) |  |
| static

Definition at line 212 of file array.c.

References FL_UNSET_SHARED, RARRAY, and rb_ary_decrement_share().

Referenced by rb_ary_clear(), rb_ary_modify(), rb_ary_sort_bang(), rb_ary_uniq_bang(), and rb_ary_unshare_safe().

static void rb_ary_unshare_safe | ( | VALUE | ary) |  |
| inline static

Definition at line 220 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
| ) |  |

Definition at line 1084 of file array.c.

References rb_ary_unshift_m().

Referenced by check_funcall_exec(), ole_invoke(), parser_set_encode(), rb_struct_s_def(), and vm_call0_body().

static VALUE rb_ary_unshift_m | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | ary
| ) |  |
| static

Definition at line 1068 of file array.c.

References ary_ensure_room_for_unshift(), ARY_SET_LEN, MEMCPY, RARRAY_LEN, RARRAY_PTR, and rb_ary_modify_check().

Referenced by Init_Array(), and rb_ary_unshift().

static VALUE rb_ary_values_at | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | ary
| ) |  |
| static

Definition at line 2624 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

Definition at line 3083 of file array.c.

References argc, i, NIL_P, Qnil, RARRAY_LEN, rb_ary_elt(), rb_ary_new2(), rb_ary_push(), rb_block_given_p(), rb_yield(), result, and take_items().

Referenced by Init_Array().

VALUE rb_assoc_new | ( | VALUE | car,
|  | VALUE | cdr
| ) |  |

Definition at line 545 of file array.c.

References rb_ary_new3().

Referenced by addrinfo_getnameinfo(), addrinfo_mdump(), assoc_i(), BigDecimal_coerce(), BigDecimal_divmod(), BigDecimal_prec(), check_exec_env_i(), check_exec_redirect1(), chunk_i(), chunk_ii(), each_pair_i(), econv_convpath(), enum_minmax_by(), enum_partition(), env_assoc(), env_each_pair(), env_rassoc(), env_shift(), env_to_a(), fdbm_delete_if(), fdbm_each_pair(), fdbm_select(), fdbm_shift(), fdbm_to_a(), fgdbm_delete_if(), fgdbm_each_pair(), fgdbm_select(), fgdbm_shift(), fgdbm_to_a(), fix_divmod(), flo_coerce(), flo_divmod(), fsdbm_delete_if(), fsdbm_each_pair(), fsdbm_select(), fsdbm_shift(), fsdbm_to_a(), match_offset(), math_frexp(), math_lgamma(), nucomp_coerce(), nucomp_marshal_dump(), nucomp_polar(), nucomp_rect(), num_coerce(), num_divmod(), numeric_polar(), numeric_rect(), nurat_coerce(), nurat_marshal_dump(), ossl_bn_coerce(), proc_wait2(), proc_waitall(), pty_open(), rassoc_i(), rb_big_coerce(), rb_big_divmod(), rb_file_s_split(), rb_gcdlcm(), rb_hash_shift(), rb_io_s_pipe(), rb_struct_each_pair(), rsock_s_recvfrom(), rsock_s_recvfrom_nonblock(), save_redirect_fd(), search_convpath_i(), sock_accept(), sock_accept_nonblock(), sock_s_getnameinfo(), sock_s_unpack_sockaddr_in(), sock_sysaccept(), sockopt_linger(), to_a_i(), waitall_each(), and yyparse().

VALUE rb_check_array_type | ( | VALUE | ary) |  |

Definition at line 557 of file array.c.

References rb_check_convert_type(), and T_ARRAY.

Referenced by addrinfo_initialize(), dir_s_glob(), divmodv(), econv_init(), enum_zip(), flat_map_i(), flatten(), io_puts_ary(), lazy_flat_map_to_ary(), lazy_zip(), ossl_x509name_initialize(), path_split(), rb_Array(), rb_ary_assoc(), rb_ary_cmp(), rb_ary_initialize(), rb_ary_s_try_convert(), rb_ary_to_ary(), rb_check_argv(), rb_econv_init_by_convpath(), rb_execarg_addopt(), rb_hash_s_create(), rb_io_s_popen(), rb_reg_s_union_m(), rb_str_format_m(), rb_yield_splat(), sock_s_getnameinfo(), take_items(), time_timespec(), vm_yield_setup_block_args(), and wdivmod().

VALUE rb_get_values_at | ( | VALUE | obj,
|  | long | olen,
|  | int | argc,
|  | VALUE * | argv,
|  | VALUE(*)(VALUE, long) | func
| ) |  |

Definition at line 2580 of file array.c.

References argc, FIX2LONG, FIXNUM_P, func, i, NUM2LONG, RARRAY_LEN, rb_ary_new2(), rb_ary_push(), rb_ary_resize(), rb_range_beg_len(), and result.

Referenced by match_values_at(), rb_ary_values_at(), and rb_struct_values_at().

void rb_mem_clear | ( | register VALUE * | mem,
|  | register long | size
| ) |  |

Definition at line 37 of file array.c.

References Qnil.

Referenced by ary_make_shared(), rb_ary_fill(), rb_ary_resize(), rb_ary_shift_m(), rb_ary_splice(), rb_ary_store(), rb_struct_initialize_m(), and struct_alloc().

static void rcombinate0 | ( | long | n,
|  | long | r,
|  | long * | p,
|  | long | index,
|  | long | rest,
|  | VALUE | values
| ) |  |
| static

Definition at line 4885 of file array.c.

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

Referenced by rb_ary_repeated_combination().

static VALUE recursive_cmp | ( | VALUE | ary1,
|  | VALUE | ary2,
|  | int | recur
| ) |  |
| static

Definition at line 3680 of file array.c.

References i, id_cmp, INT2FIX, 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 3587 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 3526 of file array.c.

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

Referenced by rb_ary_equal().

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

Definition at line 3617 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 1797 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
| ) |  |
| inline static

Definition at line 2099 of file array.c.

Referenced by rb_ary_rotate(), and rb_ary_rotate_m().

static void rpermute0 | ( | long | n,
|  | long | r,
|  | long * | p,
|  | long | index,
|  | VALUE | values
| ) |  |
| static

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

static int sort_1 | ( | const void * | ap,
|  | const void * | bp,
|  | void * | dummy
| ) |  |
| static

Definition at line 2231 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

Definition at line 2245 of file array.c.

References ary_sort_data::ary, bp, FIXNUM_P, id_cmp, rb_cmpint(), rb_funcall(), rb_str_cmp(), SORT_OPTIMIZABLE, sort_reentered(), and STRING_P.

Referenced by rb_ary_sort_bang().

static VALUE sort_by_i | ( | VALUE | i) |  |
| static

Definition at line 2482 of file array.c.

References rb_yield().

Referenced by rb_ary_sort_by_bang().

static VALUE sort_reentered | ( | VALUE | ary) |  |
| static

Definition at line 2222 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 3034 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 3043 of file array.c.

References args, NIL_P, Qundef, rb_ary_new2(), rb_ary_subseq(), rb_check_array_type(), rb_check_block_call(), rb_eTypeError, rb_obj_classname(), rb_raise(), result, and take_i().

Referenced by rb_ary_zip().

static VALUE to_ary | ( | VALUE | ary) |  |
| static

Definition at line 551 of file array.c.

References rb_convert_type(), and T_ARRAY.

Referenced by rb_ary_and(), rb_ary_concat(), rb_ary_diff(), rb_ary_or(), rb_ary_plus(), rb_ary_product(), rb_ary_replace(), and rb_ary_transpose().

## Variable Documentation

ID id_cmp
| static

Definition at line 31 of file array.c.

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

ID id_div
| static

Definition at line 31 of file array.c.

Referenced by binomial_coefficient(), and Init_Array().

ID id_power
| static

Definition at line 31 of file array.c.

Referenced by Init_Array(), and rb_ary_repeated_permutation_size().

VALUE rb_cArray

Definition at line 29 of file array.c.

Referenced by ary_take_first_or_last(), bmcall(), enum_sort_by(), generate_json(), Init_Array(), Init_pack(), Init_vm_backtrace(), ossl_asn1cons_to_der(), ossl_asn1data_to_der(), rb_ary_new2(), rb_ary_permutation(), rb_ary_repeated_combination(), rb_ary_repeated_permutation(), rb_ary_sample(), rb_ary_sort_bang(), rb_ary_to_a(), recursive_hash(), vm_redefinition_check_flag(), w_object(), and yyparse().

VALUE rb_output_fs

Definition at line 486 of file ripper.y.

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

VALUE sym_random
| static

Definition at line 4280 of file array.c.