Ruby
2.4.2p198(2017-09-14revision59899)
|
#include "internal.h"
#include "ruby/st.h"
#include "ruby/util.h"
#include <errno.h>
#include "probes.h"
#include "id.h"
#include "symbol.h"
Go to the source code of this file.
Data Structures | |
struct | foreach_safe_arg |
struct | hash_foreach_arg |
struct | update_callback_arg |
struct | update_arg |
struct | rehash_arg |
struct | shift_var |
struct | equal_data |
struct | update_func_arg |
struct | reset_hash_type_arg |
Macros | |
#define | HAS_EXTRA_STATES(hash, klass) |
#define | SET_DEFAULT(hash, ifnone) |
#define | SET_PROC_DEFAULT(hash, proc) set_proc_default(hash, proc) |
#define | COPY_DEFAULT(hash, hash2) copy_default(RHASH(hash), RHASH(hash2)) |
#define | rb_ident_cmp st_numcmp |
#define | NOINSERT_UPDATE_CALLBACK(func) |
#define | UPDATE_CALLBACK(iter_lev, func) ((iter_lev) > 0 ? func##_noinsert : func##_insert) |
#define | RHASH_UPDATE_ITER(h, iter_lev, key, func, a) |
#define | RHASH_UPDATE(hash, key, func, arg) RHASH_UPDATE_ITER(hash, RHASH_ITER_LEV(hash), key, func, arg) |
#define | GET_ENVIRON(e) (e) |
#define | FREE_ENVIRON(e) |
#define | ENVMATCH(n1, n2) (strcmp((n1), (n2)) == 0) |
#define | ENVNMATCH(s1, s2, n) (memcmp((s1), (s2), (n)) == 0) |
#define | get_env_ptr(var, val) (var = get_env_cstr(val, #var)) |
#define | env_name(s) env_name(&(s)) |
#define | rb_intern(str) rb_intern_const(str) |
Typedefs | |
typedef int | st_foreach_func(st_data_t, st_data_t, st_data_t) |
typedef int | rb_foreach_func(VALUE, VALUE, VALUE) |
typedef int(* | tbl_update_func) (st_data_t *, st_data_t *, st_data_t, int) |
Variables | |
VALUE | rb_cHash |
static VALUE | envtbl |
static ID | id_hash |
static ID | id_yield |
static ID | id_default |
static ID | id_flatten_bang |
static const uint64_t | prime1 = ((uint64_t)0x2e0bb864 << 32) | 0xe9ea7df5 |
static const uint64_t | prime2 = ((uint64_t)0xcdb32970 << 32) | 0x830fcaa1 |
static const struct st_hash_type | objhash |
static const struct st_hash_type | identhash |
static int | path_tainted = -1 |
static char ** | origenviron |
char ** | environ |
#define COPY_DEFAULT | ( | hash, | |
hash2 | |||
) | copy_default(RHASH(hash), RHASH(hash2)) |
Definition at line 41 of file hash.c.
Referenced by rb_hash_initialize_copy(), and rb_hash_replace().
#define env_name | ( | s | ) | env_name(&(s)) |
Definition at line 3195 of file hash.c.
Referenced by env_assoc(), env_delete(), env_fetch(), env_has_key(), and rb_f_getenv().
#define ENVMATCH | ( | n1, | |
n2 | |||
) | (strcmp((n1), (n2)) == 0) |
Definition at line 3083 of file hash.c.
Referenced by env_aset(), env_delete(), and env_encoding_for().
#define ENVNMATCH | ( | s1, | |
s2, | |||
n | |||
) | (memcmp((s1), (s2), (n)) == 0) |
#define FREE_ENVIRON | ( | e | ) |
Definition at line 3077 of file hash.c.
Referenced by env_each_pair(), env_empty_p(), env_has_value(), env_inspect(), env_key(), env_keys(), env_rassoc(), env_shift(), env_size(), env_to_a(), env_to_hash(), env_values(), envix(), and rb_env_size().
#define get_env_ptr | ( | var, | |
val | |||
) | (var = get_env_cstr(val, #var)) |
Definition at line 3182 of file hash.c.
Referenced by env_aset(), and env_name().
#define GET_ENVIRON | ( | e | ) | (e) |
Definition at line 3076 of file hash.c.
Referenced by env_each_pair(), env_empty_p(), env_has_value(), env_inspect(), env_key(), env_keys(), env_rassoc(), env_shift(), env_size(), env_to_a(), env_to_hash(), env_values(), envix(), rb_env_size(), and ruby_setenv().
#define HAS_EXTRA_STATES | ( | hash, | |
klass | |||
) |
Definition at line 30 of file hash.c.
Referenced by rb_hash_reject().
#define NOINSERT_UPDATE_CALLBACK | ( | func | ) |
Definition at line 514 of file hash.c.
Referenced by hash_aset_str(), rb_hash_update_block_callback(), rb_hash_update_callback(), and rb_hash_update_func_callback().
#define rb_intern | ( | str | ) | rb_intern_const(str) |
Referenced by Init_Hash().
#define RHASH_UPDATE | ( | hash, | |
key, | |||
func, | |||
arg | |||
) | RHASH_UPDATE_ITER(hash, RHASH_ITER_LEV(hash), key, func, arg) |
Definition at line 567 of file hash.c.
Referenced by rb_hash_update_block_i(), rb_hash_update_func_i(), and rb_hash_update_i().
#define SET_DEFAULT | ( | hash, | |
ifnone | |||
) |
Definition at line 35 of file hash.c.
Referenced by rb_hash_set_default(), and rb_hash_set_default_proc().
#define SET_PROC_DEFAULT | ( | hash, | |
proc | |||
) | set_proc_default(hash, proc) |
Definition at line 39 of file hash.c.
Referenced by rb_hash_initialize(), and rb_hash_set_default_proc().
Definition at line 3020 of file hash.c.
References Qundef, RB_OBJ_WRITE, RB_OBJ_WRITTEN, ST_CONTINUE, and ST_STOP.
Referenced by rb_hash_add_new_element().
|
inlinestatic |
Definition at line 166 of file hash.c.
References BUILTIN_TYPE, FIX2LONG, FLONUM_P, hval, ID_SCOPE_SHIFT, rb_big_hash(), rb_dbl_long_hash(), rb_float_value(), rb_hash_start(), rb_objid_hash(), rb_str_hash(), RSYMBOL, RUBY_SPECIAL_SHIFT, SPECIAL_CONST_P, STATIC_SYM_P, T_BIGNUM, T_FLOAT, T_STRING, and T_SYMBOL.
Referenced by rb_any_hash(), and rb_obj_hash().
Definition at line 2828 of file hash.c.
References Qtrue, rb_assoc_new(), rb_yield(), RTEST, ST_CONTINUE, and ST_STOP.
Referenced by rb_hash_any_p().
Definition at line 2839 of file hash.c.
References Qtrue, rb_yield_values(), RTEST, ST_CONTINUE, and ST_STOP.
Referenced by rb_hash_any_p().
Definition at line 2521 of file hash.c.
References rb_equal(), and RTEST.
Referenced by rb_hash_assoc().
Definition at line 2547 of file hash.c.
References rb_assoc_new(), rb_equal(), RTEST, ST_CONTINUE, and ST_STOP.
Referenced by rb_hash_assoc().
Definition at line 44 of file hash.c.
References RHash::basic, RBasic::flags, HASH_PROC_DEFAULT, RHASH_IFNONE, and RHASH_SET_IFNONE.
Definition at line 1242 of file hash.c.
References rb_yield_values(), RTEST, ST_CONTINUE, and ST_DELETE.
Referenced by rb_hash_delete_if(), and rb_hash_reject_bang().
Definition at line 2697 of file hash.c.
References NIL_P, ST_CONTINUE, and ST_DELETE.
Referenced by rb_hash_compact_bang().
Definition at line 1735 of file hash.c.
References rb_yield(), and ST_CONTINUE.
Referenced by rb_hash_each_key().
Definition at line 1768 of file hash.c.
References rb_assoc_new(), rb_yield(), and ST_CONTINUE.
Referenced by rb_hash_each_pair().
Definition at line 1775 of file hash.c.
References argv, key, rb_yield_values2(), and ST_CONTINUE.
Referenced by rb_hash_each_pair().
Definition at line 1701 of file hash.c.
References rb_yield(), and ST_CONTINUE.
Referenced by rb_hash_each_value().
Definition at line 433 of file hash.c.
References hash_alloc(), and RUBY_DTRACE_CREATE_HOOK.
Referenced by Init_Hash().
Definition at line 3544 of file hash.c.
References env_delete(), ENVMATCH, get_env_ptr, name, NIL_P, OBJ_TAINTED, PATH_ENV, path_tainted_p(), Qnil, RB_GC_GUARD, ruby_setenv(), SafeStringValue, and val.
Referenced by env_replace_i(), env_update_i(), and Init_Hash().
Definition at line 4064 of file hash.c.
References env_name, env_str_new2(), getenv, Qnil, and rb_assoc_new().
Referenced by Init_Hash().
Definition at line 3198 of file hash.c.
References env_name, env_str_new2(), ENVMATCH, getenv, PATH_ENV, Qnil, RB_GC_GUARD, ruby_setenv(), and val.
Referenced by env_aset(), env_delete_m(), env_reject_bang(), env_replace(), env_select_bang(), env_shift(), and rb_env_clear().
Definition at line 3775 of file hash.c.
References env_reject_bang(), envtbl, rb_env_size(), and RETURN_SIZED_ENUMERATOR.
Referenced by Init_Hash().
Definition at line 3227 of file hash.c.
References env_delete(), NIL_P, rb_block_given_p(), rb_yield(), and val.
Referenced by Init_Hash().
Definition at line 3625 of file hash.c.
References env_keys(), RARRAY_AREF, RARRAY_LEN, rb_env_size(), rb_yield(), and RETURN_SIZED_ENUMERATOR.
Referenced by Init_Hash().
Definition at line 3698 of file hash.c.
References env, env_str_new(), env_str_new2(), FREE_ENVIRON, GET_ENVIRON, RARRAY_AREF, RARRAY_LEN, rb_ary_new(), rb_ary_push(), rb_assoc_new(), rb_block_arity(), rb_env_size(), rb_yield(), rb_yield_values(), RETURN_SIZED_ENUMERATOR, and strchr().
Referenced by Init_Hash().
Definition at line 3673 of file hash.c.
References env_values(), RARRAY_AREF, RARRAY_LEN, rb_env_size(), rb_yield(), and RETURN_SIZED_ENUMERATOR.
Referenced by Init_Hash().
|
static |
Definition at line 4024 of file hash.c.
References env, FREE_ENVIRON, GET_ENVIRON, Qfalse, and Qtrue.
Referenced by Init_Hash().
|
static |
Definition at line 3097 of file hash.c.
References OBJ_TAINT, rb_external_str_new_with_enc(), rb_obj_freeze(), and rb_utf8_str_new().
Referenced by env_enc_str_new_cstr(), and env_str_new().
|
static |
Definition at line 3111 of file hash.c.
References env_enc_str_new(), and strlen().
Referenced by env_name_new().
|
static |
Definition at line 3132 of file hash.c.
References env_path_tainted(), ENVMATCH, PATH_ENV, rb_filesystem_encoding(), and rb_locale_encoding().
Referenced by env_name_new().
Definition at line 3271 of file hash.c.
References env, env_name, env_name_new(), getenv, key, PRIsVALUE, rb_block_given_p(), rb_check_arity, rb_eKeyError, rb_raise(), rb_warn(), and rb_yield().
Referenced by Init_Hash().
Definition at line 4082 of file hash.c.
References env, FREE_ENVIRON, GET_ENVIRON, len, NIL_P, Qfalse, Qnil, Qtrue, rb_check_safe_obj(), rb_check_string_type(), RSTRING_LEN, RSTRING_PTR, strchr(), and strlen().
Referenced by Init_Hash().
Definition at line 4175 of file hash.c.
References env_key(), and rb_warn().
Referenced by Init_Hash().
|
static |
Definition at line 3926 of file hash.c.
References env, FREE_ENVIRON, GET_ENVIRON, OBJ_TAINT, rb_inspect(), rb_str_buf_append(), rb_str_buf_cat(), rb_str_buf_cat2(), rb_str_buf_new2(), rb_str_new2, and strchr().
Referenced by Init_Hash().
|
static |
Definition at line 4258 of file hash.c.
References env_to_hash(), and rb_hash_invert().
Referenced by Init_Hash().
Definition at line 3877 of file hash.c.
References env_select_bang(), envtbl, rb_env_size(), and RETURN_SIZED_ENUMERATOR.
Referenced by Init_Hash().
Definition at line 4145 of file hash.c.
References env, env_str_new(), FREE_ENVIRON, GET_ENVIRON, len, Qnil, RSTRING_LEN, RSTRING_PTR, SafeStringValue, strchr(), and strlen().
Referenced by env_index(), and Init_Hash().
|
static |
Definition at line 3581 of file hash.c.
References env, env_str_new(), FREE_ENVIRON, GET_ENVIRON, rb_ary_new(), rb_ary_push(), and strchr().
Referenced by env_each_key(), env_reject_bang(), env_replace(), env_select(), env_select_bang(), Init_Hash(), and rb_env_clear().
Definition at line 3187 of file hash.c.
References get_env_ptr, name, and SafeStringValue.
Definition at line 3143 of file hash.c.
References env_enc_str_new_cstr(), and env_encoding_for().
Referenced by env_fetch(), and rb_f_getenv().
|
static |
|
static |
Definition at line 3302 of file hash.c.
References path_tainted, and path_tainted_p().
Referenced by env_encoding_for(), and env_str_new2().
Definition at line 4113 of file hash.c.
References env, FREE_ENVIRON, GET_ENVIRON, len, NIL_P, Qnil, rb_assoc_new(), rb_check_safe_obj(), rb_check_string_type(), rb_tainted_str_new(), result, RSTRING_LEN, RSTRING_PTR, strchr(), and strlen().
Referenced by Init_Hash().
|
static |
Definition at line 4218 of file hash.c.
References env_to_hash(), and rb_hash_delete_if().
Referenced by Init_Hash().
Definition at line 3741 of file hash.c.
References env_delete(), env_keys(), envtbl, FL_TAINT, FL_UNSET, NIL_P, Qnil, RARRAY_AREF, RARRAY_LEN, rb_env_size(), rb_f_getenv(), RB_GC_GUARD, rb_yield_values(), RBASIC_CLEAR_CLASS, RETURN_SIZED_ENUMERATOR, RTEST, and val.
Referenced by env_delete_if(), and Init_Hash().
Definition at line 4281 of file hash.c.
References env, env_delete(), env_keys(), env_replace_i(), RARRAY_AREF, RARRAY_LEN, RB_GC_GUARD, rb_hash_foreach(), and to_hash().
Referenced by Init_Hash().
Definition at line 4264 of file hash.c.
References env_aset(), Qnil, rb_ary_delete(), rb_ary_includes(), and ST_CONTINUE.
Referenced by env_replace().
Definition at line 3812 of file hash.c.
References env_keys(), key, NIL_P, Qnil, RARRAY_AREF, RARRAY_LEN, rb_env_size(), rb_f_getenv(), RB_GC_GUARD, rb_hash_aset(), rb_hash_new(), rb_yield_values(), result, RETURN_SIZED_ENUMERATOR, RTEST, and val.
Referenced by Init_Hash().
Definition at line 3843 of file hash.c.
References env_delete(), env_keys(), envtbl, FL_TAINT, FL_UNSET, NIL_P, Qnil, RARRAY_AREF, RARRAY_LEN, rb_env_size(), rb_f_getenv(), RB_GC_GUARD, rb_yield_values(), RBASIC_CLEAR_CLASS, RETURN_SIZED_ENUMERATOR, RTEST, and val.
Referenced by env_keep_if(), and Init_Hash().
|
static |
Definition at line 4231 of file hash.c.
References env, env_delete(), env_str_new(), env_str_new2(), FREE_ENVIRON, GET_ENVIRON, getenv, key, Qnil, rb_assoc_new(), result, RSTRING_PTR, strchr(), and val.
Referenced by Init_Hash().
|
static |
Definition at line 4005 of file hash.c.
References env, FREE_ENVIRON, GET_ENVIRON, and INT2FIX.
Referenced by Init_Hash(), vm_env_new(), and vm_make_env_each().
Definition at line 3117 of file hash.c.
References env_enc_str_new(), and rb_locale_encoding().
Referenced by env_each_pair(), env_key(), env_keys(), env_shift(), env_str_new2(), env_to_a(), and env_to_hash().
Definition at line 3123 of file hash.c.
References env_path_tainted(), env_str_new(), Qnil, and strlen().
Referenced by env_assoc(), env_delete(), env_each_pair(), env_shift(), env_to_a(), env_to_hash(), and env_values().
|
static |
Definition at line 3965 of file hash.c.
References env, env_str_new(), env_str_new2(), FREE_ENVIRON, GET_ENVIRON, rb_ary_new(), rb_ary_push(), rb_assoc_new(), and strchr().
Referenced by Init_Hash().
|
static |
Definition at line 4190 of file hash.c.
References env, env_str_new(), env_str_new2(), FREE_ENVIRON, GET_ENVIRON, hash(), rb_hash_aset(), rb_hash_new(), and strchr().
Referenced by env_invert(), env_reject(), and Init_Hash().
|
static |
Definition at line 4319 of file hash.c.
References env, env_update_i(), rb_hash_foreach(), and to_hash().
Referenced by Init_Hash().
Definition at line 4299 of file hash.c.
References env_aset(), Qnil, rb_block_given_p(), rb_f_getenv(), rb_yield_values(), and ST_CONTINUE.
Referenced by env_update().
|
static |
Definition at line 3645 of file hash.c.
References env, env_str_new2(), FREE_ENVIRON, GET_ENVIRON, rb_ary_new(), rb_ary_push(), and strchr().
Referenced by env_each_value(), and Init_Hash().
Definition at line 3790 of file hash.c.
References argc, Qnil, rb_ary_new(), rb_ary_push(), rb_f_getenv(), and result.
Referenced by Init_Hash().
|
static |
Definition at line 3332 of file hash.c.
References env, ENVNMATCH, FREE_ENVIRON, GET_ENVIRON, len, name, NORETURN(), rb_sprintf(), rb_syserr_fail_str(), strchr(), and strlen().
Referenced by ruby_setenv().
Definition at line 2158 of file hash.c.
References equal_data::eql, Qfalse, rb_eql(), rb_equal(), equal_data::result, ST_CONTINUE, st_lookup, ST_STOP, and equal_data::tbl.
Referenced by recursive_eql().
Definition at line 2642 of file hash.c.
References key, rb_ary_cat(), ST_CONTINUE, and val.
Referenced by rb_hash_flatten().
Definition at line 313 of file hash.c.
References foreach_safe_arg::arg, foreach_safe_arg::func, ST_CHECK, ST_CONTINUE, and ST_STOP.
Referenced by st_foreach_safe().
Definition at line 3149 of file hash.c.
References NULL, rb_eArgError, rb_enc_asciicompat, rb_enc_get(), rb_enc_name, rb_enc_str_asciionly_p(), rb_raise(), rb_str_conv_enc(), rb_str_fill_terminator(), rb_utf8_encoding(), RSTRING_LEN, and RSTRING_PTR.
Definition at line 52 of file hash.c.
References rb_cHash, rb_class_has_methods(), rb_hash_s_try_convert(), and RCLASS_SUPER.
Definition at line 427 of file hash.c.
References hash_alloc_flags(), and Qnil.
Referenced by empty_hash_alloc(), rb_hash_new(), rb_hash_rehash(), and rb_hash_s_create().
Definition at line 416 of file hash.c.
References FL_WB_PROTECTED, hash(), NEWOBJ_OF, RGENGC_WB_PROTECTED_HASH, RHASH_SET_IFNONE, and T_HASH.
Referenced by hash_alloc(), and hash_dup().
|
static |
Definition at line 1522 of file hash.c.
References update_arg::arg, key, update_arg::new_key, update_arg::new_value, update_arg::old_value, ST_CONTINUE, and val.
Referenced by hash_aset_str(), and rb_hash_aset().
|
static |
Definition at line 1537 of file hash.c.
References hash_aset(), NOINSERT_UPDATE_CALLBACK, and rb_str_new_frozen().
Referenced by rb_hash_aset().
Definition at line 447 of file hash.c.
References hash_alloc_flags(), RHASH, RHASH_EMPTY_P, RHASH_IFNONE, and st_copy.
Referenced by rb_hash_dup(), and rb_hash_to_h().
Definition at line 1251 of file hash.c.
References rb_hash_size().
Referenced by rb_hash_delete_if(), rb_hash_each_key(), rb_hash_each_pair(), rb_hash_each_value(), rb_hash_keep_if(), rb_hash_reject(), rb_hash_reject_bang(), rb_hash_select(), rb_hash_select_bang(), rb_hash_transform_values(), and rb_hash_transform_values_bang().
Definition at line 2188 of file hash.c.
References equal_data::eql, FL_TEST, HASH_PROC_DEFAULT, Qfalse, Qtrue, rb_eql(), rb_equal(), rb_exec_recursive_paired(), rb_respond_to(), RB_TYPE_P, recursive_eql(), RHASH, RHASH_IFNONE, RHASH_SIZE, T_HASH, and equal_data::tbl.
Referenced by rb_hash_eql(), and rb_hash_equal().
Definition at line 392 of file hash.c.
References hash(), hash_foreach_iter(), Qnil, Qundef, rb_eRuntimeError, rb_raise(), RHASH, st_data_t, and st_foreach_check().
Referenced by rb_hash_foreach().
Definition at line 380 of file hash.c.
References FL_TEST, FL_UNSET, HASH_DELETED, Qundef, RHASH, RHASH_ITER_LEV, st_cleanup_safe, and st_data_t.
Referenced by Init_Hash(), and rb_hash_foreach().
Definition at line 348 of file hash.c.
References hash_foreach_arg::arg, FL_SET, hash_foreach_arg::func, hash_foreach_arg::hash, HASH_DELETED, key, rb_eRuntimeError, rb_raise(), RHASH, ST_CHECK, ST_CONTINUE, ST_DELETE, and ST_STOP.
Referenced by hash_foreach_call().
Definition at line 2273 of file hash.c.
References hval, rb_hash(), ST_CONTINUE, and st_hash().
Referenced by rb_hash_hash().
Definition at line 2913 of file hash.c.
References hash_le_i(), Qtrue, and rb_hash_foreach().
Referenced by rb_hash_ge(), rb_hash_gt(), rb_hash_le(), and rb_hash_lt().
Definition at line 2903 of file hash.c.
References Qfalse, Qundef, rb_equal(), rb_hash_lookup2(), ST_CONTINUE, and ST_STOP.
Referenced by hash_le().
|
static |
Definition at line 3007 of file hash.c.
References rb_check_arity, and rb_hash_aref().
Referenced by rb_hash_to_proc().
Definition at line 474 of file hash.c.
References RHASH, and st_init_table.
Referenced by rb_hash_aset(), rb_hash_modify(), rb_hash_replace(), rb_hash_tbl(), and rb_hash_tbl_raw().
void Init_Hash | ( | void | ) |
Definition at line 4441 of file hash.c.
References empty_hash_alloc(), env_aset(), env_assoc(), env_delete_if(), env_delete_m(), env_each_key(), env_each_pair(), env_each_value(), env_empty_p(), env_fetch(), env_has_key(), env_has_value(), env_index(), env_inspect(), env_invert(), env_keep_if(), env_key(), env_keys(), env_none(), env_rassoc(), env_reject(), env_reject_bang(), env_replace(), env_select(), env_select_bang(), env_shift(), env_size(), env_to_a(), env_to_hash(), env_to_s(), env_update(), env_values(), env_values_at(), environ, envtbl, hash_foreach_ensure(), hash_foreach_ensure_rollback(), id_default, id_flatten_bang, id_hash, id_yield, rb_cHash, rb_cObject, rb_define_alias(), rb_define_alloc_func(), rb_define_class(), rb_define_global_const(), rb_define_method(), rb_define_singleton_method(), rb_env_clear(), rb_extend_object(), rb_f_getenv(), rb_hash_any_p(), rb_hash_aref(), rb_hash_aset(), rb_hash_assoc(), rb_hash_clear(), rb_hash_compact(), rb_hash_compact_bang(), rb_hash_compare_by_id(), rb_hash_compare_by_id_p(), rb_hash_default(), rb_hash_default_proc(), rb_hash_delete_if(), rb_hash_delete_m(), rb_hash_dig(), rb_hash_each_key(), rb_hash_each_pair(), rb_hash_each_value(), rb_hash_empty_p(), rb_hash_eql(), rb_hash_equal(), rb_hash_fetch_m(), rb_hash_fetch_values(), rb_hash_flatten(), rb_hash_ge(), rb_hash_gt(), rb_hash_has_key(), rb_hash_has_value(), rb_hash_hash(), rb_hash_index(), rb_hash_initialize(), rb_hash_initialize_copy(), rb_hash_inspect(), rb_hash_invert(), rb_hash_keep_if(), rb_hash_key(), rb_hash_keys(), rb_hash_le(), rb_hash_lt(), rb_hash_merge(), rb_hash_rassoc(), rb_hash_rehash(), rb_hash_reject(), rb_hash_reject_bang(), rb_hash_replace(), rb_hash_s_create(), rb_hash_s_try_convert(), rb_hash_select(), rb_hash_select_bang(), rb_hash_set_default(), rb_hash_set_default_proc(), rb_hash_shift(), rb_hash_size(), rb_hash_to_a(), rb_hash_to_h(), rb_hash_to_hash(), rb_hash_to_proc(), rb_hash_transform_values(), rb_hash_transform_values_bang(), rb_hash_update(), rb_hash_values(), rb_hash_values_at(), rb_include_module(), rb_intern, rb_mEnumerable, rb_obj_alloc(), and ruby_register_rollback_func_for_ensure().
Definition at line 1934 of file hash.c.
References inspect_i(), OBJ_INFECT, rb_hash_foreach(), rb_str_buf_cat2(), rb_str_buf_new2(), and rb_usascii_str_new2.
Referenced by rb_hash_inspect().
Definition at line 1912 of file hash.c.
References OBJ_INFECT, rb_enc_copy(), rb_inspect(), rb_str_buf_append(), rb_str_buf_cat_ascii(), RSTRING_LEN, and ST_CONTINUE.
Referenced by inspect_hash().
Definition at line 1434 of file hash.c.
References rb_yield_values(), RTEST, ST_CONTINUE, and ST_DELETE.
Referenced by rb_hash_keep_if(), and rb_hash_select_bang().
Definition at line 245 of file hash.c.
References mult_and_mix().
Referenced by rb_ident_hash(), and rb_objid_hash().
Definition at line 1060 of file hash.c.
References key, rb_equal(), ST_CONTINUE, and ST_STOP.
Referenced by rb_hash_key().
Definition at line 1998 of file hash.c.
References rb_ary_push(), and ST_CONTINUE.
Referenced by rb_hash_keys().
Definition at line 2527 of file hash.c.
References Qundef, and rb_hash_lookup2().
Referenced by rb_hash_assoc().
Definition at line 228 of file hash.c.
Referenced by key64_hash().
|
static |
Definition at line 504 of file hash.c.
References rb_eRuntimeError, and rb_raise().
Referenced by rb_hash_aset(), and rb_hash_modify().
NORETURN | ( | static void | no_new_keyvoid | ) |
Referenced by envix(), and rb_hash_modify().
|
static |
Definition at line 206 of file hash.c.
References FIX2LONG, and rb_hash().
Referenced by rb_any_hash().
|
static |
|
static |
Definition at line 3296 of file hash.c.
References rb_path_check().
Referenced by env_aset(), env_path_tainted(), and rb_env_path_tainted().
Definition at line 2606 of file hash.c.
References rb_assoc_new(), rb_equal(), RTEST, ST_CONTINUE, and ST_STOP.
Referenced by rb_hash_rassoc().
|
static |
Definition at line 213 of file hash.c.
References any_hash(), and obj_any_hash().
Definition at line 736 of file hash.c.
References rb_check_convert_type(), and T_HASH.
Referenced by check_hash(), get_hash(), keyword_hash_p(), rb_econv_prepare_options(), rb_Hash(), rb_hash_s_try_convert(), rb_io_s_popen(), rb_scan_args(), rb_str_sub_bang(), and str_gsub().
long rb_dbl_long_hash | ( | double | d | ) |
Definition at line 149 of file hash.c.
References rb_hash_start(), rb_memhash(), and rb_objid_hash().
Referenced by any_hash(), and rb_dbl_hash().
VALUE rb_env_clear | ( | void | ) |
Definition at line 3891 of file hash.c.
References env_delete(), env_keys(), envtbl, NIL_P, Qnil, RARRAY_AREF, RARRAY_LEN, rb_f_getenv(), RB_GC_GUARD, and val.
Referenced by Init_Hash(), and rb_execarg_run_options().
int rb_env_path_tainted | ( | void | ) |
Definition at line 3311 of file hash.c.
References env, getenv, PATH_ENV, path_tainted, and path_tainted_p().
Referenced by security().
Definition at line 3600 of file hash.c.
References cnt, env, FREE_ENVIRON, GET_ENVIRON, LONG2FIX, and strchr().
Referenced by env_delete_if(), env_each_key(), env_each_pair(), env_each_value(), env_keep_if(), env_reject_bang(), env_select(), and env_select_bang().
Definition at line 3244 of file hash.c.
References env, env_name, env_name_new(), getenv, and Qnil.
Referenced by env_reject_bang(), env_select(), env_select_bang(), env_update_i(), env_values_at(), Init_Hash(), and rb_env_clear().
Definition at line 126 of file hash.c.
References CHAR_BIT, FIXNUM_P, hash_recursive(), hval, INTEGER_PACK_NATIVE_BYTE_ORDER, LONG2FIX, rb_exec_recursive_outer(), rb_integer_pack(), rb_objid_hash(), rb_to_int(), RB_TYPE_P, and T_BIGNUM.
Referenced by cdhash_hash(), hash_i(), nucomp_hash(), nurat_hash(), obj_any_hash(), range_hash(), rb_ary_hash(), rb_struct_hash(), and time_hash().
Definition at line 3034 of file hash.c.
References add_new_i(), hash(), rb_hash_tbl_raw(), st_update(), and val.
Referenced by ary_add_hash(), ary_add_hash_by(), lazy_uniq_i(), uniq_func(), and uniq_iter().
Definition at line 2857 of file hash.c.
References any_p_i(), any_p_i_fast(), Qfalse, Qtrue, rb_block_arity(), rb_block_given_p(), rb_hash_foreach(), and RHASH_EMPTY_P.
Referenced by Init_Hash().
Definition at line 845 of file hash.c.
References rb_hash_default_value(), RHASH, st_lookup, and val.
Referenced by count_imemo_objects_i(), cParser_initialize(), cState_configure(), cto_i(), dump_output(), econv_opts(), econv_primitive_convert(), extract_binmode(), generate_json_object(), group_by_i(), hash2ptr_dispparams(), hash2result(), hash_proc_call(), Init_Hash(), int_param(), io_s_write(), iseq_build_callinfo_from_hash(), JSON_parse_object(), mString_Extend_json_create(), open_key_args(), parse_main(), pruby_get_instance(), rawmode_opt(), rb_econv_open_opts(), rb_econv_prepare_options(), rb_hash_dig(), rb_hash_values_at(), rb_io_extract_modeenc(), rb_io_initialize(), rb_iseq_build_from_ary(), rb_obj_dig(), rb_str_sub_bang(), rb_thread_variable_get(), rb_threadptr_pending_interrupt_check_mask(), rb_vm_fstring_table(), realpath_rec(), recursive_list_access(), str_gsub(), str_transcode0(), tr_setup_table(), transcode_loop(), and zstream_run().
Definition at line 1576 of file hash.c.
References hash_aset(), hash_aset_str(), hash_tbl(), no_new_key(), rb_cString, rb_hash_modify(), rb_obj_class(), RHASH, RHASH_ITER_LEV, RHASH_UPDATE_ITER, st_table::type, and val.
Referenced by add_activated_refinement(), args_kw_argv_to_hash(), args_setup_kw_parameters(), args_stored_kw_argv_to_hash(), cdhash_set_label_i(), check_exec_fds(), check_exec_fds_1(), check_exec_options_i_extract(), collect_values_of_values(), core_hash_merge(), count_imemo_objects_i(), count_nodes(), count_objects(), count_objects_size(), count_symbols(), coverage(), coverage_peek_result_i(), cState_to_h(), cto_i(), debug_lines(), dsymbol_alloc(), enum_to_h_i(), env_select(), env_to_hash(), etc_systmpdir(), fdbm_invert(), fdbm_to_hash(), fgdbm_invert(), fgdbm_to_hash(), fsdbm_invert(), fsdbm_to_hash(), gc_profile_record_get(), group_by_i(), handle_interrupt_arg_check_i(), ibf_load_object_hash(), Init_GC(), Init_Hash(), Init_ossl_asn1(), Init_ossl_x509name(), io_s_write(), iseq_build_from_ary_body(), iseq_data_to_ary(), JSON_parse_object(), kwmerge_i(), make_rest_kw_hash(), match_named_captures_iter(), mString_to_json_raw_object(), ole_const_load(), olerecord_ivar_set(), olerecord_set_ivar(), ossl_dh_get_params(), ossl_dsa_get_params(), ossl_rsa_get_params(), ossl_sslctx_get_session_cache_stats(), parser_set_compile_option_flag(), pruby_register_instance(), r_object0(), rb_ary_to_h(), rb_during_gc(), rb_econv_prepare_options(), rb_enc_aliases_enc_i(), rb_hash_invert_i(), rb_hash_s_create(), rb_inflate_add_dictionary(), rb_mod_refine(), rb_struct_to_h(), rb_thread_variable_set(), rb_uninterruptible(), rb_using_refinement(), rb_vm_add_root_module(), reachable_object_from_root_i(), realpath_rec(), recursive_list_access(), recursive_push(), reg_named_captures_iter(), reject_i(), replace_i(), ripper_init_eventids1_table(), ripper_init_eventids2_table(), select_i(), separate_symbol(), set_if_not_nil(), set_state_ivars(), set_zero(), set_zero_i(), setup_gc_stat_symbols(), sig_list(), tr_setup_table(), tr_trans(), tracepoint_stat_event_hooks(), transform_values_i(), vm_caller_setup_arg_block(), vm_caller_setup_arg_kw(), when_vals(), and yycompile0().
Definition at line 2573 of file hash.c.
References assoc_cmp(), assoc_i(), st_hash_type::compare, hash(), st_hash_type::hash, reset_hash_type_arg::hash, key, lookup2_call(), reset_hash_type_arg::orighash, Qnil, Qundef, rb_assoc_new(), rb_ensure(), rb_hash_foreach(), reset_hash_type(), RHASH, RHASH_EMPTY_P, and st_table::type.
Referenced by Init_Hash().
Definition at line 1506 of file hash.c.
References clear_i(), hash(), rb_hash_foreach(), rb_hash_modify_check(), RHASH, RHASH_ITER_LEV, and st_clear().
Referenced by enum_uniq(), Init_Hash(), local_var_list_finish(), and rb_hash_replace().
Definition at line 2727 of file hash.c.
References rb_hash_foreach(), rb_hash_new(), result, RHASH_EMPTY_P, and set_if_not_nil().
Referenced by Init_Hash().
Definition at line 2749 of file hash.c.
References delete_if_nil(), hash(), Qnil, rb_hash_foreach(), rb_hash_modify_check(), and RHASH.
Referenced by Init_Hash().
Definition at line 2778 of file hash.c.
References hash(), identhash, rb_hash_compare_by_id_p(), rb_hash_modify(), rb_hash_rehash(), and RHASH.
Referenced by Init_Hash().
Definition at line 2797 of file hash.c.
References Qfalse, Qtrue, and RHASH.
Referenced by Init_Hash(), and rb_hash_compare_by_id().
Definition at line 958 of file hash.c.
References FL_TEST, hash(), HASH_PROC_DEFAULT, id_yield, Qnil, rb_check_arity, rb_funcallv, and RHASH_IFNONE.
Referenced by Init_Hash().
Definition at line 1017 of file hash.c.
References FL_TEST, HASH_PROC_DEFAULT, Qnil, and RHASH_IFNONE.
Referenced by Init_Hash().
Definition at line 817 of file hash.c.
References CLASS_OF, FL_TEST, HASH_PROC_DEFAULT, id_default, id_yield, Qnil, Qundef, rb_funcall(), rb_method_basic_definition_p(), and RHASH_IFNONE.
Referenced by rb_hash_aref(), rb_hash_shift(), and rb_str_format().
Definition at line 1138 of file hash.c.
References Qnil, Qundef, and rb_hash_delete_entry().
Referenced by pruby_unregister_instance().
Definition at line 1112 of file hash.c.
References FL_SET, HASH_DELETED, Qundef, RHASH, RHASH_ITER_LEV, st_data_t, st_delete, st_delete_safe, and val.
Referenced by rb_gc_free_dsymbol(), rb_hash_delete(), rb_hash_delete_m(), rb_hash_shift(), rb_sym2id(), and recursive_pop().
Definition at line 1272 of file hash.c.
References delete_if_i(), hash(), hash_enum_size(), rb_hash_foreach(), rb_hash_modify_check(), RETURN_SIZED_ENUMERATOR, and RHASH.
Referenced by env_reject(), fdbm_reject(), fgdbm_reject(), fsdbm_reject(), and Init_Hash().
Definition at line 1169 of file hash.c.
References Qnil, Qundef, rb_block_given_p(), rb_hash_delete_entry(), rb_hash_modify_check(), rb_yield(), and val.
Referenced by Init_Hash().
Definition at line 2893 of file hash.c.
References argv, Qnil, rb_check_arity, rb_hash_aref(), rb_obj_dig(), and UNLIMITED_ARGUMENTS.
Referenced by Init_Hash().
Definition at line 457 of file hash.c.
References FL_EXIVAR, FL_TAINT, hash_dup(), HASH_PROC_DEFAULT, rb_copy_generic_ivar(), rb_obj_class(), and RBASIC.
Referenced by args_setup_kw_rest_parameter(), io_s_write(), rb_using_refinement(), and vm_cref_dup().
Definition at line 1760 of file hash.c.
References each_key_i(), hash(), hash_enum_size(), rb_hash_foreach(), and RETURN_SIZED_ENUMERATOR.
Referenced by Init_Hash().
Definition at line 1807 of file hash.c.
References each_pair_i(), each_pair_i_fast(), hash(), hash_enum_size(), rb_block_arity(), rb_hash_foreach(), and RETURN_SIZED_ENUMERATOR.
Referenced by Init_Hash().
Definition at line 1727 of file hash.c.
References each_value_i(), hash(), hash_enum_size(), rb_hash_foreach(), and RETURN_SIZED_ENUMERATOR.
Referenced by Init_Hash().
Definition at line 1695 of file hash.c.
References Qfalse, Qtrue, and RHASH_EMPTY_P.
Referenced by Init_Hash().
Definition at line 2267 of file hash.c.
References hash_equal(), and TRUE.
Referenced by Init_Hash().
Definition at line 2252 of file hash.c.
References FALSE, and hash_equal().
Referenced by Init_Hash().
Definition at line 931 of file hash.c.
References rb_hash_fetch_m().
Referenced by olerecord_ivar_get(), olerecord_ivar_set(), and rb_hash_fetch_values().
Definition at line 902 of file hash.c.
References key, NIL_P, PRIsVALUE, rb_any_to_s(), rb_block_given_p(), rb_check_arity, rb_eKeyError, rb_inspect(), rb_protect(), rb_raise(), rb_str_ellipsize(), rb_warn(), rb_yield(), RHASH, st_lookup, and val.
Referenced by Init_Hash(), and rb_hash_fetch().
Definition at line 1386 of file hash.c.
References argc, rb_ary_new2, rb_ary_push(), rb_hash_fetch(), and result.
Referenced by Init_Hash().
Definition at line 2670 of file hash.c.
References flatten_i(), id_flatten_bang, INT2FIX, level, NUM2INT, rb_ary_new_capa(), rb_funcallv, rb_hash_foreach(), rb_hash_to_a(), and RHASH_SIZE.
Referenced by Init_Hash().
Definition at line 402 of file hash.c.
References hash_foreach_arg::arg, func, hash_foreach_arg::func, hash(), hash_foreach_arg::hash, hash_foreach_call(), hash_foreach_ensure(), rb_ensure(), RHASH, and RHASH_ITER_LEV.
Referenced by core_hash_merge_kwd(), dump_option(), env_replace(), env_update(), hash_le(), hash_sum(), initialize(), inspect_hash(), iseq_data_to_ary(), iseq_set_sequence(), JSON_parse_string(), ole_invoke(), ole_rec2variant(), rb_hash_any_p(), rb_hash_assoc(), rb_hash_clear(), rb_hash_compact(), rb_hash_compact_bang(), rb_hash_delete_if(), rb_hash_each_key(), rb_hash_each_pair(), rb_hash_each_value(), rb_hash_flatten(), rb_hash_has_value(), rb_hash_hash(), rb_hash_invert(), rb_hash_keep_if(), rb_hash_key(), rb_hash_keys(), rb_hash_rassoc(), rb_hash_rehash(), rb_hash_reject(), rb_hash_reject_bang(), rb_hash_replace(), rb_hash_select(), rb_hash_select_bang(), rb_hash_shift(), rb_hash_to_a(), rb_hash_transform_values(), rb_hash_transform_values_bang(), rb_hash_update(), rb_hash_update_by(), rb_hash_values(), rb_mod_s_used_modules(), rb_thread_s_handle_interrupt(), rb_thread_variables(), reachable_objects_from_root(), recursive_eql(), setup_parameters_complex(), using_module_recursive(), and w_object().
Definition at line 76 of file hash.c.
References rb_obj_freeze().
Referenced by rb_coverage_peek_result(), and rb_econv_prepare_options().
Definition at line 2978 of file hash.c.
References hash_le(), Qfalse, RHASH_SIZE, and to_hash().
Referenced by Init_Hash().
Definition at line 2999 of file hash.c.
References hash_le(), Qfalse, RHASH_SIZE, and to_hash().
Referenced by Init_Hash().
Definition at line 2141 of file hash.c.
References Qfalse, rb_hash_foreach(), rb_hash_search_value(), and val.
Referenced by Init_Hash().
Definition at line 2295 of file hash.c.
References hash_i(), hval, rb_hash_end(), rb_hash_foreach(), rb_hash_start(), rb_hash_uint(), RHASH_SIZE, size, and ST2FIX.
Referenced by Init_Hash().
Definition at line 87 of file hash.c.
References RHASH_IFNONE.
Definition at line 1100 of file hash.c.
References rb_hash_key(), and rb_warn().
Referenced by Init_Hash().
Definition at line 622 of file hash.c.
References hash(), Qnil, rb_block_given_p(), rb_block_proc(), rb_check_arity, rb_hash_modify(), RHASH_SET_IFNONE, and SET_PROC_DEFAULT.
Referenced by Init_Hash().
Definition at line 1605 of file hash.c.
References Check_Type, COPY_DEFAULT, hash(), st_table::num_entries, rb_hash_modify_check(), rb_hash_rehash(), RHASH, st_clear(), st_copy, st_free_table, T_HASH, and to_hash().
Referenced by Init_Hash().
Definition at line 1959 of file hash.c.
References inspect_hash(), rb_exec_recursive(), rb_usascii_str_new2, and RHASH_EMPTY_P.
Referenced by Init_Hash().
Definition at line 2345 of file hash.c.
References rb_hash_foreach(), rb_hash_invert_i(), and rb_hash_new().
Referenced by env_invert(), and Init_Hash().
Definition at line 2308 of file hash.c.
References rb_hash_aset(), and ST_CONTINUE.
Referenced by rb_hash_invert().
int rb_hash_iter_lev | ( | VALUE | h | ) |
Definition at line 270 of file hash.c.
References RHASH_ITER_LEV.
Definition at line 1479 of file hash.c.
References hash(), hash_enum_size(), keep_if_i(), rb_hash_foreach(), rb_hash_modify_check(), RETURN_SIZED_ENUMERATOR, and RHASH.
Referenced by Init_Hash().
Definition at line 1086 of file hash.c.
References key_i(), Qnil, and rb_hash_foreach().
Referenced by Init_Hash(), and rb_hash_index().
Definition at line 2017 of file hash.c.
References keys_i(), Qundef, RARRAY_PTR_USE, rb_ary_new_capa(), rb_ary_set_len(), rb_gc_writebarrier_remember(), rb_hash_foreach(), RHASH, RHASH_SIZE, size, ST_DATA_COMPATIBLE_P, and st_keys_check().
Referenced by Init_Hash(), local_var_list_finish(), rb_struct_s_def(), and struct_make_members_list().
Definition at line 2936 of file hash.c.
References hash_le(), Qfalse, RHASH_SIZE, and to_hash().
Referenced by Init_Hash().
Definition at line 867 of file hash.c.
References Qnil, and rb_hash_lookup2().
Referenced by add_activated_refinement(), check_exec_fds(), check_exec_fds_1(), compat_key(), default_proc_for_compat_func(), find_refinement(), ossl_asn1_default_tag(), prepare_iseq_build(), rb_exec_async_signal_safe(), rb_mod_refine(), rb_pipe(), rb_using_refinement(), reachable_object_from_root_i(), recursive_check(), tr_find(), tr_trans(), vm_caller_setup_arg_block(), and when_vals().
Definition at line 856 of file hash.c.
References RHASH, st_lookup, and val.
Referenced by check_rounding_mode_option(), hash_le_i(), lookup2_call(), no_exception_p(), rb_hash_lookup(), rb_io_extract_encoding_option(), rb_str_format(), recursive_check(), recursive_pop(), recursive_push(), and strio_read_nonblock().
Definition at line 2957 of file hash.c.
References hash_le(), Qfalse, RHASH_SIZE, and to_hash().
Referenced by Init_Hash().
Definition at line 2515 of file hash.c.
References rb_hash_update(), and rb_obj_dup().
Referenced by Init_Hash().
|
static |
Definition at line 496 of file hash.c.
References hash_tbl(), no_new_key(), NORETURN(), and rb_hash_modify_check().
Referenced by rb_hash_aset(), rb_hash_compare_by_id(), rb_hash_initialize(), rb_hash_reject_bang(), rb_hash_update(), and rb_hash_update_by().
|
static |
Definition at line 468 of file hash.c.
References rb_check_frozen.
Referenced by rb_hash_clear(), rb_hash_compact_bang(), rb_hash_delete_if(), rb_hash_delete_m(), rb_hash_initialize_copy(), rb_hash_keep_if(), rb_hash_modify(), rb_hash_rehash(), rb_hash_replace(), rb_hash_select_bang(), rb_hash_set_default(), rb_hash_set_default_proc(), rb_hash_shift(), and rb_hash_transform_values_bang().
VALUE rb_hash_new | ( | void | ) |
Definition at line 441 of file hash.c.
References hash_alloc(), and rb_cHash.
Referenced by args_kw_argv_to_hash(), args_setup_kw_parameters(), args_setup_kw_rest_parameter(), args_stored_kw_argv_to_hash(), ary_tmp_hash_new(), check_exec_fds(), check_exec_options_i_extract(), core_hash_from_ary(), count_nodes(), count_objects(), count_objects_size(), count_symbols(), cState_to_h(), date__httpdate(), date__iso8601(), date__jisx0301(), date__parse(), date__rfc2822(), date__rfc3339(), date__xmlschema(), date_s__strptime_internal(), enum_group_by(), enum_to_h(), enum_uniq(), env_select(), env_to_hash(), etc_systmpdir(), fdbm_invert(), fdbm_to_hash(), fgdbm_invert(), fgdbm_to_hash(), fsdbm_invert(), fsdbm_to_hash(), gc_latest_gc_info(), gc_profile_record_get(), gc_stat(), ibf_load_object_hash(), Init_GC(), Init_ossl_asn1(), Init_ossl_x509name(), Init_sizeof(), Init_VM(), Init_vm_objects(), io_s_write(), iseq_build_from_ary_body(), iseq_compile_each(), iseq_data_to_ary(), JSON_parse_object(), lazy_uniq(), local_var_list_init(), make_compile_option_value(), make_rest_kw_hash(), match_named_captures(), mString_to_json_raw_object(), nil_to_h(), ole_const_load(), olerecord_set_ivar(), ossl_dh_get_params(), ossl_dsa_get_params(), ossl_rsa_get_params(), ossl_sslctx_get_session_cache_stats(), process_options(), pruby_init(), r_object0(), rb_ary_to_h(), rb_coverage_peek_result(), rb_coverage_start(), rb_during_gc(), rb_econv_prepare_options(), rb_enc_aliases(), rb_execarg_parent_start1(), rb_Hash(), rb_hash_compact(), rb_hash_invert(), rb_hash_reject(), rb_hash_select(), rb_hash_transform_values(), rb_ident_hash_new(), rb_inflate_s_allocate(), rb_realpath_internal(), rb_reg_named_captures(), rb_struct_to_h(), rb_vm_fstring_table(), recursive_list_access(), recursive_push(), ripper_init_eventids1_table(), ripper_init_eventids2_table(), ruby_thread_init(), separate_symbol(), setup_gc_stat_symbols(), setup_hash(), sig_list(), tr_setup_table(), tr_trans(), tracepoint_stat_s(), vm_caller_setup_arg_kw(), vm_default_params(), and vm_stat().
Definition at line 2631 of file hash.c.
References Qnil, rassoc_i(), and rb_hash_foreach().
Referenced by Init_Hash().
Definition at line 793 of file hash.c.
References hash(), hash_alloc(), rb_eRuntimeError, rb_hash_foreach(), rb_hash_modify_check(), rb_hash_rehash_i(), rb_raise(), RHASH, RHASH_ITER_LEV, st_free_table, and st_init_table_with_size.
Referenced by ibf_load_object_hash(), Init_Hash(), iseq_set_sequence(), rb_hash_compare_by_id(), and rb_hash_initialize_copy().
Definition at line 764 of file hash.c.
References ST_CONTINUE, and st_insert.
Referenced by rb_hash_rehash().
Definition at line 1328 of file hash.c.
References HAS_EXTRA_STATES, hash_enum_size(), PRIsVALUE, rb_hash_foreach(), rb_hash_new(), rb_warn(), reject_i(), result, RETURN_SIZED_ENUMERATOR, RHASH_EMPTY_P, RTEST, and ruby_verbose.
Referenced by Init_Hash().
Definition at line 1291 of file hash.c.
References delete_if_i(), hash(), hash_enum_size(), Qnil, rb_hash_foreach(), rb_hash_modify(), RETURN_SIZED_ENUMERATOR, RHASH, and RHASH_SIZE.
Referenced by Init_Hash().
Definition at line 1645 of file hash.c.
References COPY_DEFAULT, hash(), hash_tbl(), rb_hash_clear(), rb_hash_foreach(), rb_hash_modify_check(), replace_i(), RHASH, to_hash(), and st_table::type.
Referenced by Init_Hash().
Definition at line 662 of file hash.c.
References argc, hash(), hash_alloc(), key, NIL_P, Qnil, RARRAY_AREF, RARRAY_LEN, rb_builtin_class_name(), rb_check_array_type(), rb_eArgError, rb_hash_aset(), rb_hash_s_try_convert(), rb_raise(), rb_warn(), RHASH, st_copy, st_init_table_with_size, and val.
Referenced by Init_Hash().
Definition at line 753 of file hash.c.
References rb_check_hash_type().
Referenced by has_extra_methods(), Init_Hash(), and rb_hash_s_create().
Definition at line 2116 of file hash.c.
References Qtrue, rb_equal(), ST_CONTINUE, and ST_STOP.
Referenced by rb_hash_has_value().
Definition at line 1421 of file hash.c.
References hash_enum_size(), rb_hash_foreach(), rb_hash_new(), result, RETURN_SIZED_ENUMERATOR, RHASH_EMPTY_P, and select_i().
Referenced by Init_Hash().
Definition at line 1452 of file hash.c.
References hash(), hash_enum_size(), keep_if_i(), Qnil, rb_hash_foreach(), rb_hash_modify_check(), RETURN_SIZED_ENUMERATOR, and RHASH.
Referenced by Init_Hash().
Definition at line 994 of file hash.c.
References rb_hash_modify_check(), and SET_DEFAULT.
Referenced by Init_Hash().
Definition at line 1039 of file hash.c.
References NIL_P, rb_check_convert_type(), rb_eTypeError, rb_hash_modify_check(), rb_obj_classname(), rb_obj_is_proc(), rb_raise(), SET_DEFAULT, SET_PROC_DEFAULT, and T_DATA.
Referenced by gc_stat_internal(), and Init_Hash().
Definition at line 93 of file hash.c.
References hash(), RB_OBJ_WRITE, and RHASH.
Definition at line 1218 of file hash.c.
References shift_var::key, Qnil, Qundef, rb_assoc_new(), rb_hash_default_value(), rb_hash_delete_entry(), rb_hash_foreach(), rb_hash_modify_check(), RHASH, RHASH_ITER_LEV, shift_i_safe(), st_shift(), and shift_var::val.
Referenced by Init_Hash().
Definition at line 1678 of file hash.c.
References INT2FIX, and RHASH_SIZE.
Referenced by hash_enum_size(), and Init_Hash().
Definition at line 483 of file hash.c.
References hash_tbl(), and OBJ_WB_UNPROTECT.
Referenced by collect_values_of_values().
Definition at line 490 of file hash.c.
References hash_tbl().
Referenced by iseq_build_from_ary_body(), iseq_compile_each(), rb_ary_and(), rb_ary_diff(), rb_ary_uniq_bang(), rb_check_exec_env(), rb_check_exec_options(), rb_execarg_extract_options(), rb_extract_keywords(), rb_hash_add_new_element(), rb_reset_coverages(), rb_thread_start_timer_thread(), and unknown_keyword_error().
Definition at line 1900 of file hash.c.
References OBJ_INFECT, rb_ary_new_capa(), rb_hash_foreach(), RHASH_SIZE, and to_a_i().
Referenced by Init_Hash(), and rb_hash_flatten().
Definition at line 1988 of file hash.c.
References hash(), hash_dup(), HASH_PROC_DEFAULT, rb_cHash, rb_obj_class(), and RBASIC.
Referenced by Init_Hash().
Definition at line 3014 of file hash.c.
References hash_proc_call(), and rb_func_proc_new().
Referenced by Init_Hash().
Definition at line 1842 of file hash.c.
References hash_enum_size(), rb_hash_foreach(), rb_hash_new(), result, RETURN_SIZED_ENUMERATOR, RHASH_EMPTY_P, and transform_values_i().
Referenced by Init_Hash().
Definition at line 1872 of file hash.c.
References hash(), hash_enum_size(), rb_hash_foreach(), rb_hash_modify_check(), RETURN_SIZED_ENUMERATOR, RHASH, and transform_values_i().
Referenced by Init_Hash().
Definition at line 2427 of file hash.c.
References rb_block_given_p(), rb_hash_foreach(), rb_hash_modify(), rb_hash_update_block_i(), rb_hash_update_i(), and to_hash().
Referenced by Init_Hash(), and rb_hash_merge().
|
static |
Definition at line 2378 of file hash.c.
References update_arg::arg, if(), key, update_arg::new_key, update_arg::new_value, NOINSERT_UPDATE_CALLBACK, update_arg::old_value, rb_yield_values(), and ST_CONTINUE.
Referenced by rb_hash_update_block_i().
Definition at line 2397 of file hash.c.
References rb_hash_update_block_callback(), RHASH_UPDATE, and ST_CONTINUE.
Referenced by rb_hash_update().
VALUE rb_hash_update_by | ( | VALUE | hash1, |
VALUE | hash2, | ||
rb_hash_update_func * | func | ||
) |
Definition at line 2478 of file hash.c.
References func, update_func_arg::func, update_func_arg::hash, rb_hash_foreach(), rb_hash_modify(), rb_hash_update_func_i(), rb_hash_update_i(), and to_hash().
|
static |
Definition at line 2354 of file hash.c.
References update_arg::arg, key, update_arg::new_key, update_arg::new_value, NOINSERT_UPDATE_CALLBACK, update_arg::old_value, and ST_CONTINUE.
Referenced by rb_hash_update_i().
|
static |
Definition at line 2447 of file hash.c.
References update_arg::arg, update_func_arg::func, if(), key, update_arg::new_key, update_arg::new_value, NOINSERT_UPDATE_CALLBACK, update_arg::old_value, ST_CONTINUE, and update_func_arg::value.
Referenced by rb_hash_update_func_i().
Definition at line 2467 of file hash.c.
References update_func_arg::hash, rb_hash_update_func_callback(), RHASH_UPDATE, ST_CONTINUE, and update_func_arg::value.
Referenced by rb_hash_update_by().
Definition at line 2371 of file hash.c.
References rb_hash_update_callback(), RHASH_UPDATE, and ST_CONTINUE.
Referenced by rb_hash_update(), and rb_hash_update_by().
Definition at line 2061 of file hash.c.
References Qundef, RARRAY_PTR_USE, rb_ary_new_capa(), rb_ary_set_len(), rb_gc_writebarrier_remember(), rb_hash_foreach(), RHASH, RHASH_SIZE, size, ST_DATA_COMPATIBLE_P, st_values_check(), and values_i().
Referenced by enum_uniq(), Init_Hash(), rb_ary_or(), and rb_ary_uniq().
Definition at line 1358 of file hash.c.
References argc, rb_ary_new2, rb_ary_push(), rb_hash_aref(), and result.
Referenced by Init_Hash().
|
static |
Definition at line 283 of file hash.c.
References FLONUM_P, key64_hash(), rb_float_value(), rb_hash_start(), and st_data_t.
VALUE rb_ident_hash_new | ( | void | ) |
Definition at line 2808 of file hash.c.
References hash(), rb_hash_new(), RHASH, and st_init_table.
Referenced by handle_interrupt_arg_check_i(), hidden_identity_hash_new(), Init_sym(), parser_set_compile_option_flag(), rb_struct_s_def(), rb_uninterruptible(), reachable_object_from_root_i(), reachable_objects_from_root(), recursive_list_access(), struct_make_members_list(), and yycompile0().
st_table* rb_init_identtable | ( | void | ) |
Definition at line 2816 of file hash.c.
References st_init_table.
Referenced by obj_alloc_by_klass(), rb_marshal_dump_limited(), rb_marshal_load_with_proc(), and w_object().
st_table* rb_init_identtable_with_size | ( | st_index_t | size | ) |
Definition at line 2822 of file hash.c.
References st_init_table_with_size.
Definition at line 263 of file hash.c.
References any_hash(), objid_hash(), and ST2FIX.
Referenced by InitVM_Object(), and rb_obj_equal().
long rb_objid_hash | ( | st_index_t | index | ) |
Definition at line 251 of file hash.c.
References key64_hash(), and rb_hash_start().
Referenced by any_hash(), objid_hash(), rb_dbl_long_hash(), rb_hash(), and rb_obj_equal().
Definition at line 2175 of file hash.c.
References eql_i(), Qtrue, rb_hash_foreach(), and equal_data::result.
Referenced by hash_equal().
Definition at line 1305 of file hash.c.
References rb_hash_aset(), rb_yield_values(), RTEST, and ST_CONTINUE.
Referenced by rb_hash_reject().
Definition at line 1596 of file hash.c.
References rb_hash_aset(), and ST_CONTINUE.
Referenced by rb_hash_replace().
Definition at line 2539 of file hash.c.
References reset_hash_type_arg::hash, reset_hash_type_arg::orighash, Qundef, and RHASH.
Referenced by rb_hash_assoc().
Definition at line 3384 of file hash.c.
References ALLOC_N, ALLOCV_END, ALLOCV_N, buf, envix(), fail, free(), GET_ENVIRON, L, len, malloc, max(), NULL, origenviron, PRIuSIZE, rb_sprintf(), rb_sys_fail_str(), REALLOC_N, ruby_strdup(), snprintf, strlen(), and xfree().
Referenced by env_aset(), env_delete(), rb_execarg_run_options(), and ruby_unsetenv().
void ruby_unsetenv | ( | const char * | name | ) |
Definition at line 3528 of file hash.c.
References ruby_setenv().
Definition at line 1398 of file hash.c.
References rb_hash_aset(), rb_yield_values(), RTEST, and ST_CONTINUE.
Referenced by rb_hash_select().
Definition at line 2706 of file hash.c.
References NIL_P, rb_hash_aset(), and ST_CONTINUE.
Referenced by rb_hash_compact().
Definition at line 571 of file hash.c.
References FL_SET_RAW, HASH_PROC_DEFAULT, rb_eTypeError, rb_proc_arity(), rb_proc_lambda_p(), rb_raise(), and RHASH_SET_IFNONE.
Definition at line 1195 of file hash.c.
References key, shift_var::key, ST_STOP, and shift_var::val.
Referenced by rb_hash_shift().
Definition at line 327 of file hash.c.
References foreach_safe_arg::arg, foreach_safe_i(), func, foreach_safe_arg::func, rb_eRuntimeError, rb_raise(), st_data_t, st_foreach_check(), and foreach_safe_arg::tbl.
Referenced by cvar_list(), gen_ivar_each(), mod_cvar_at(), obj_ivar_each(), rb_const_list(), rb_generic_ivar_table(), and rb_ivar_foreach().
|
static |
Definition at line 540 of file hash.c.
References update_arg::arg, hash(), update_arg::hash, update_arg::new_key, update_arg::new_value, update_arg::old_key, update_arg::old_value, Qundef, RB_OBJ_WRITTEN, result, RHASH, and st_update().
Definition at line 1882 of file hash.c.
References rb_ary_push(), rb_assoc_new(), and ST_CONTINUE.
Referenced by rb_hash_to_a().
Definition at line 730 of file hash.c.
References rb_convert_type(), and T_HASH.
Referenced by env_replace(), env_update(), rb_hash_ge(), rb_hash_gt(), rb_hash_initialize_copy(), rb_hash_le(), rb_hash_lt(), rb_hash_replace(), rb_hash_update(), and rb_hash_update_by().
Definition at line 1818 of file hash.c.
References rb_hash_aset(), rb_yield(), and ST_CONTINUE.
Referenced by rb_hash_transform_values(), and rb_hash_transform_values_bang().
Definition at line 2042 of file hash.c.
References rb_ary_push(), and ST_CONTINUE.
Referenced by id2key(), and rb_hash_values().
char** environ |
Referenced by compat_init_setproctitle(), and Init_Hash().
|
static |
Definition at line 83 of file hash.c.
Referenced by env_delete_if(), env_keep_if(), env_reject_bang(), env_select_bang(), Init_Hash(), rb_env_clear(), and rb_execarg_parent_start1().
|
static |
Definition at line 84 of file hash.c.
Referenced by Init_Hash(), and rb_hash_default_value().
|
static |
Definition at line 84 of file hash.c.
Referenced by Init_Hash(), and rb_hash_flatten().
|
static |
Definition at line 84 of file hash.c.
Referenced by hash_recursive(), and Init_Hash().
|
static |
Definition at line 84 of file hash.c.
Referenced by Init_Hash(), rb_hash_default(), and rb_hash_default_value().
|
static |
|
static |
|
static |
Definition at line 3045 of file hash.c.
Referenced by ruby_setenv().
|
static |
Definition at line 3043 of file hash.c.
Referenced by env_path_tainted(), and rb_env_path_tainted().
VALUE rb_cHash |
Definition at line 81 of file hash.c.
Referenced by cState_from_state_s(), generate_json(), has_extra_methods(), Init_Hash(), rb_extract_keywords(), rb_hash_new(), rb_hash_to_h(), vm_redefinition_check_flag(), and w_object().