object.c File Reference
`#include "ruby/ruby.h"`
`#include "ruby/st.h"`
`#include "ruby/util.h"`
`#include <stdio.h>`
`#include <errno.h>`
`#include <ctype.h>`
`#include <math.h>`
`#include <float.h>`
`#include "constant.h"`
`#include "internal.h"`

Go to the source code of this file.

## Data Structures

struct | conv_method_tbl

## Macros

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

## Functions

VALUE | rb_equal (VALUE obj1, VALUE obj2)
int | rb_eql (VALUE obj1, VALUE obj2)
VALUE | rb_obj_equal (VALUE obj1, VALUE obj2)
VALUE | rb_obj_hash (VALUE obj)
VALUE | rb_obj_not (VALUE obj)
VALUE | rb_obj_not_equal (VALUE obj1, VALUE obj2)
VALUE | rb_class_real (VALUE cl)
VALUE | rb_obj_class (VALUE obj)
static VALUE | rb_obj_singleton_class (VALUE obj)
static void | init_copy (VALUE dest, VALUE obj)
VALUE | rb_obj_clone (VALUE obj)
VALUE | rb_obj_dup (VALUE obj)
VALUE | rb_obj_init_copy (VALUE obj, VALUE orig)
VALUE | rb_obj_init_dup_clone (VALUE obj, VALUE orig)
VALUE | rb_any_to_s (VALUE obj)
VALUE | rb_inspect (VALUE obj)
static int | inspect_i (ID id, VALUE value, VALUE str)
static VALUE | inspect_obj (VALUE obj, VALUE str, int recur)
static VALUE | rb_obj_inspect (VALUE obj)
VALUE | rb_obj_is_instance_of (VALUE obj, VALUE c)
VALUE | rb_obj_is_kind_of (VALUE obj, VALUE c)
VALUE | rb_obj_tap (VALUE obj)
static VALUE | rb_obj_dummy (void)
VALUE | rb_obj_tainted (VALUE obj)
VALUE | rb_obj_taint (VALUE obj)
VALUE | rb_obj_untaint (VALUE obj)
VALUE | rb_obj_untrusted (VALUE obj)
VALUE | rb_obj_untrust (VALUE obj)
VALUE | rb_obj_trust (VALUE obj)
void | rb_obj_infect (VALUE obj1, VALUE obj2)
VALUE | rb_obj_freeze (VALUE obj)
VALUE | rb_obj_frozen_p (VALUE obj)
static VALUE | nil_to_i (VALUE obj)
static VALUE | nil_to_f (VALUE obj)
static VALUE | nil_to_s (VALUE obj)
static VALUE | nil_to_a (VALUE obj)
static VALUE | nil_inspect (VALUE obj)
static VALUE | true_to_s (VALUE obj)
static VALUE | true_and (VALUE obj, VALUE obj2)
static VALUE | true_or (VALUE obj, VALUE obj2)
static VALUE | true_xor (VALUE obj, VALUE obj2)
static VALUE | false_to_s (VALUE obj)
static VALUE | false_and (VALUE obj, VALUE obj2)
static VALUE | false_or (VALUE obj, VALUE obj2)
static VALUE | false_xor (VALUE obj, VALUE obj2)
static VALUE | rb_true (VALUE obj)
static VALUE | rb_false (VALUE obj)
static VALUE | rb_obj_match (VALUE obj1, VALUE obj2)
static VALUE | rb_obj_not_match (VALUE obj1, VALUE obj2)
static VALUE | rb_obj_cmp (VALUE obj1, VALUE obj2)
static VALUE | rb_mod_to_s (VALUE klass)
static VALUE | rb_mod_freeze (VALUE mod)
static VALUE | rb_mod_eqq (VALUE mod, VALUE arg)
VALUE | rb_class_inherited_p (VALUE mod, VALUE arg)
static VALUE | rb_mod_lt (VALUE mod, VALUE arg)
static VALUE | rb_mod_ge (VALUE mod, VALUE arg)
static VALUE | rb_mod_gt (VALUE mod, VALUE arg)
static VALUE | rb_mod_cmp (VALUE mod, VALUE arg)
static VALUE | rb_module_s_alloc (VALUE klass)
static VALUE | rb_class_s_alloc (VALUE klass)
static VALUE | rb_mod_initialize (VALUE module)
static VALUE | rb_class_initialize (int argc, VALUE *argv, VALUE klass)
VALUE | rb_obj_alloc (VALUE klass)
static VALUE | rb_class_allocate_instance (VALUE klass)
VALUE | rb_class_new_instance (int argc, VALUE *argv, VALUE klass)
VALUE | rb_class_superclass (VALUE klass)
VALUE | rb_class_get_superclass (VALUE klass)
static VALUE | rb_mod_attr_reader (int argc, VALUE *argv, VALUE klass)
VALUE | rb_mod_attr (int argc, VALUE *argv, VALUE klass)
static VALUE | rb_mod_attr_writer (int argc, VALUE *argv, VALUE klass)
static VALUE | rb_mod_attr_accessor (int argc, VALUE *argv, VALUE klass)
static VALUE | rb_mod_const_get (int argc, VALUE *argv, VALUE mod)
static VALUE | rb_mod_const_set (VALUE mod, VALUE name, VALUE value)
static VALUE | rb_mod_const_defined (int argc, VALUE *argv, VALUE mod)
static VALUE | rb_obj_ivar_get (VALUE obj, VALUE iv)
static VALUE | rb_obj_ivar_set (VALUE obj, VALUE iv, VALUE val)
static VALUE | rb_obj_ivar_defined (VALUE obj, VALUE iv)
static VALUE | rb_mod_cvar_get (VALUE obj, VALUE iv)
static VALUE | rb_mod_cvar_set (VALUE obj, VALUE iv, VALUE val)
static VALUE | rb_mod_cvar_defined (VALUE obj, VALUE iv)
static VALUE | convert_type (VALUE val, const char *tname, const char *method, int raise)
VALUE | rb_convert_type (VALUE val, int type, const char *tname, const char *method)
VALUE | rb_check_convert_type (VALUE val, int type, const char *tname, const char *method)
static VALUE | rb_to_integer (VALUE val, const char *method)
VALUE | rb_check_to_integer (VALUE val, const char *method)
VALUE | rb_to_int (VALUE val)
static VALUE | rb_convert_to_integer (VALUE val, int base)
VALUE | rb_Integer (VALUE val)
static VALUE | rb_f_integer (int argc, VALUE *argv, VALUE obj)
double | rb_cstr_to_dbl (const char *p, int badcheck)
double | rb_str_to_dbl (VALUE str, int badcheck)
VALUE | rb_Float (VALUE val)
static VALUE | rb_f_float (VALUE obj, VALUE arg)
VALUE | rb_to_float (VALUE val)
VALUE | rb_check_to_float (VALUE val)
double | rb_num2dbl (VALUE val)
VALUE | rb_String (VALUE val)
static VALUE | rb_f_string (VALUE obj, VALUE arg)
VALUE | rb_Array (VALUE val)
static VALUE | rb_f_array (VALUE obj, VALUE arg)
void | Init_Object (void)
| Initializes the world of objects and classes. More...

## Variables

VALUE | rb_cBasicObject
VALUE | rb_mKernel
VALUE | rb_cObject
VALUE | rb_cModule
VALUE | rb_cClass
VALUE | rb_cData
VALUE | rb_cNilClass
VALUE | rb_cTrueClass
VALUE | rb_cFalseClass
static ID | id_eq
static ID | id_eql
static ID | id_match
static ID | id_inspect
static ID | id_init_copy
static ID | id_init_clone
static ID | id_init_dup
static st_table * | immediate_frozen_tbl = 0
static struct conv_method_tbl | conv_method_names []

## Macro Definition Documentation

#define OutOfRange | ( |  | ) |

Value:
((end - p > max_width) ? \
(w = max_width, ellipsis = "...") : \
(w = (int)(end - p), ellipsis = ""))

Referenced by rb_cstr_to_dbl().

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

## Function Documentation

static VALUE convert_type | ( | VALUE | val,
|  | const char * | tname,
|  | const char * | method,
|  | int | raise
| ) |  |

static

Definition at line 2041 of file object.c.

References conv_method_names, i, conv_method_tbl::id, conv_method_tbl::method, NIL_P, Qfalse, Qnil, Qtrue, Qundef, rb_check_funcall(), rb_eTypeError, rb_intern, rb_obj_classname(), and rb_raise().

Referenced by rb_check_convert_type(), rb_check_to_integer(), rb_convert_to_integer(), rb_convert_type(), and rb_to_integer().

static VALUE false_and | ( | VALUE | obj,
|  | VALUE | obj2
| ) |  |

static

Definition at line 1126 of file object.c.

References Qfalse.

Referenced by Init_Object().

static VALUE false_or | ( | VALUE | obj,
|  | VALUE | obj2
| ) |  |

static

Definition at line 1142 of file object.c.

References Qfalse, Qtrue, and RTEST.

Referenced by Init_Object().

static VALUE false_to_s | ( | VALUE | obj | ) |

static

Definition at line 1110 of file object.c.

References rb_usascii_str_new2().

Referenced by Init_Object().

static VALUE false_xor | ( | VALUE | obj,
|  | VALUE | obj2
| ) |  |

static

Definition at line 1161 of file object.c.

References Qfalse, Qtrue, and RTEST.

Referenced by Init_Object().

static void init_copy | ( | VALUE | dest,
|  | VALUE | obj
| ) |  |

static

Definition at line 199 of file object.c.

References ALLOC_N, FL_EXIVAR, FL_TAINT, FL_UNTRUSTED, len, MEMCPY, OBJ_FROZEN, rb_copy_generic_ivar(), rb_eTypeError, rb_free_const_table(), rb_gc_copy_finalizer(), rb_obj_classname(), rb_raise(), RBASIC, RCLASS_CONST_TBL, RCLASS_IV_TBL, ROBJECT, ROBJECT_EMBED, ROBJECT_EMBED_LEN_MAX, ROBJECT_IVPTR, st_copy, st_free_table, T_CLASS, T_MASK, T_MODULE, T_OBJECT, TYPE, and xfree().

Referenced by rb_obj_clone(), and rb_obj_dup().

static int inspect_i | ( | ID | id,
|  | VALUE | value,
|  | VALUE | str
| ) |  |

static

Definition at line 371 of file object.c.

References CLASS_OF, OBJ_INFECT, rb_id2name(), rb_inspect(), rb_is_instance_id(), rb_str_append(), rb_str_cat2(), RSTRING_PTR, and ST_CONTINUE.

Referenced by inspect_obj().

static VALUE inspect_obj | ( | VALUE | obj,
|  | VALUE | str,
|  | int | recur
| ) |  |

static

Definition at line 397 of file object.c.

References inspect_i(), OBJ_INFECT, rb_ivar_foreach(), rb_str_cat2(), and RSTRING_PTR.

Referenced by rb_obj_inspect().

static VALUE nil_inspect | ( | VALUE | obj | ) |

static

Definition at line 1010 of file object.c.

References rb_usascii_str_new2().

Referenced by Init_Object().

static VALUE nil_to_a | ( | VALUE | obj | ) |

static

Definition at line 997 of file object.c.

References rb_ary_new2().

Referenced by Init_Object().

static VALUE nil_to_f | ( | VALUE | obj | ) |

static

Definition at line 967 of file object.c.

References DBL2NUM.

Referenced by Init_Object().

static VALUE nil_to_i | ( | VALUE | obj | ) |

static

Definition at line 952 of file object.c.

References INT2FIX.

Referenced by Init_Object().

static VALUE nil_to_s | ( | VALUE | obj | ) |

static

Definition at line 980 of file object.c.

References rb_usascii_str_new().

Referenced by Init_Object().

VALUE rb_any_to_s | ( | VALUE | obj | ) |

Definition at line 353 of file object.c.

References OBJ_INFECT, rb_obj_classname(), and rb_sprintf().

Referenced by Init_Object(), name_err_mesg_to_str(), rb_hash_fetch_m(), rb_io_inspect(), rb_mod_to_s(), rb_obj_as_string(), rb_obj_basic_to_s_p(), rb_obj_inspect(), and rb_reg_inspect().

VALUE rb_Array | ( | VALUE | val | ) |

Definition at line 2461 of file object.c.

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

Referenced by dir_entries(), get_iconv_opt_i(), range_last(), rb_f_array(), and readline_attempted_completion_function().

VALUE rb_check_convert_type | ( | VALUE | val,
|  | int | type,
|  | const char * | tname,
|  | const char * | method
| ) |  |

Definition at line 2086 of file object.c.

References convert_type(), FALSE, NIL_P, Qnil, rb_eTypeError, rb_obj_classname(), rb_raise(), T_DATA, TYPE, and v.

Referenced by ary_join_1(), caller_setup_args(), check_exec_redirect_fd(), get_hash(), rb_Array(), rb_check_array_type(), rb_check_hash_type(), rb_check_regexp_type(), rb_check_string_type(), rb_check_to_float(), rb_exec_getargs(), rb_file_initialize(), rb_gzwriter_initialize(), rb_hash_set_default_proc(), rb_io_check_io(), rb_scan_args(), rb_stat(), rb_str_sub_bang(), str_gsub(), syck_map_initialize(), syck_map_value_set(), syck_merge_i(), and yaml_org_handler().

VALUE rb_check_to_float | ( | VALUE | val | ) |

Definition at line 2401 of file object.c.

References Qnil, rb_check_convert_type(), rb_cNumeric, rb_obj_is_kind_of(), T_FLOAT, and TYPE.

Referenced by rand_range(), and random_rand().

VALUE rb_check_to_integer | ( | VALUE | val,
|  | const char * | method
| ) |  |

Definition at line 2120 of file object.c.

References convert_type(), FALSE, FIXNUM_P, Qnil, rb_cInteger, rb_obj_is_kind_of(), T_BIGNUM, TYPE, and v.

Referenced by esignal_init(), num_exact(), rand_range(), random_rand(), range_include(), range_step(), rb_io_extract_modeenc(), rb_io_s_sysopen(), and sockopt_s_linger().

static VALUE rb_class_allocate_instance | ( | VALUE | klass | ) |

static

Definition at line 1611 of file object.c.

References NEWOBJ, OBJSETUP, and T_OBJECT.

Referenced by Init_Object().

VALUE rb_class_get_superclass | ( | VALUE | klass | ) |

Definition at line 1679 of file object.c.

References RCLASS_SUPER.

VALUE rb_class_inherited_p | ( | VALUE | mod,
|  | VALUE | arg
| ) |  |

Definition at line 1345 of file object.c.

References mod, Qfalse, Qnil, Qtrue, rb_eTypeError, rb_raise(), RCLASS_M_TBL, RCLASS_SUPER, T_CLASS, T_MODULE, and TYPE.

Referenced by Init_Object(), r_object0(), rb_mod_cmp(), rb_mod_define_method(), rb_mod_ge(), and rb_mod_lt().

static VALUE rb_class_initialize | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | klass
| ) |  |

static

Definition at line 1548 of file object.c.

References rb_cBasicObject, rb_check_inheritable(), rb_class_inherited(), rb_cObject, rb_eTypeError, rb_make_metaclass(), rb_mod_initialize(), rb_raise(), rb_scan_args(), RBASIC, and RCLASS_SUPER.

Referenced by Init_Object().

VALUE rb_class_new_instance | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | klass
| ) |  |

Definition at line 1631 of file object.c.

References rb_obj_alloc(), and rb_obj_call_init().

Referenced by console_dev(), copy_stream_body(), each_entry_i(), float_value(), glob_i(), gzfile_wrap(), iconv_fail(), Init_Exception(), Init_IO(), Init_Object(), Init_Regexp(), io_new_instance(), JSON_parse_array(), JSON_parse_object(), make_struct(), mark(), new_wrap(), path_basename(), path_dirname(), path_entries(), path_expand_path(), path_f_pathname(), path_readlink(), path_realdirpath(), path_realpath(), path_s_getwd(), path_s_glob(), path_split(), path_sub(), path_sub_ext(), process_sflag(), raise_method_missing(), rb_dl_dlopen(), rb_exit(), rb_f_abort(), rb_io_initialize(), rb_io_s_new(), rb_io_s_open(), rb_name_error(), rb_reg_s_union(), rb_struct_alloc(), rb_struct_new(), rb_syserr_new_str(), strio_s_open(), time_s_now(), and tk_s_new().

VALUE rb_class_real | ( | VALUE | cl | ) |

Definition at line 147 of file object.c.

References BUILTIN_TYPE, FL_SINGLETON, RBASIC, RCLASS_SUPER, and T_ICLASS.

Referenced by class2path(), make_singleton_class(), rb_class_name(), rb_define_class(), rb_define_class_id_under(), rb_f_autoload(), rb_obj_alloc(), rb_obj_class(), uninitialized_constant(), w_class(), and w_uclass().

static VALUE rb_class_s_alloc | ( | VALUE | klass | ) |

static

Definition at line 1477 of file object.c.

References rb_class_boot().

Referenced by Init_Object().

VALUE rb_class_superclass | ( | VALUE | klass | ) |

Definition at line 1661 of file object.c.

References Qnil, rb_cBasicObject, rb_eTypeError, rb_raise(), RCLASS_SUPER, T_ICLASS, and TYPE.

Referenced by get_digest_base_metadata(), Init_Object(), and ossl_asn1_default_tag().

static VALUE rb_convert_to_integer | ( | VALUE | val,
|  | int | base
| ) |  |

static

Definition at line 2140 of file object.c.

References convert_type(), FALSE, FIXNUM_MAX, FIXNUM_MIN, NIL_P, rb_check_string_type(), rb_dbl2big(), rb_eArgError, rb_eTypeError, rb_raise(), rb_str_to_inum(), rb_to_integer(), RFLOAT_VALUE, T_BIGNUM, T_FIXNUM, T_FLOAT, T_NIL, T_STRING, TRUE, and TYPE.

Referenced by rb_f_integer(), and rb_Integer().

VALUE rb_convert_type | ( | VALUE | val,
|  | int | type,
|  | const char * | tname,
|  | const char * | method
| ) |  |

Definition at line 2071 of file object.c.

References convert_type(), rb_eTypeError, rb_obj_classname(), rb_raise(), TRUE, TYPE, and v.

Referenced by addrinfo_mload(), cParser_initialize(), iseq_build_from_ary_body(), iseq_build_from_ary_exception(), nucomp_s_convert(), nurat_s_convert(), open_key_args(), path_entries(), path_s_glob(), rb_Float(), rb_io_get_io(), rb_str_to_str(), rb_String(), rb_to_float(), register_label(), strio_copy(), tk_symbolkey2str(), to_ary(), and to_hash().

double rb_cstr_to_dbl | ( | const char * | p,
|  | int | badcheck
| ) |  |

Definition at line 2232 of file object.c.

References bad, buf, DBL_DIG, errno, ISDIGIT, ISSPACE, OutOfRange, p, rb_eArgError, rb_invalid_str(), rb_raise(), rb_warning(), and strtod.

Referenced by rb_str_to_dbl(), and tkstr_to_float().

int rb_eql | ( | VALUE | obj1,
|  | VALUE | obj2
| ) |  |

Definition at line 60 of file object.c.

References id_eql, rb_funcall(), and RTEST.

Referenced by cdhash_cmp(), eql_i(), hash_equal(), rb_any_cmp(), and recursive_eql().

VALUE rb_equal | ( | VALUE | obj1,
|  | VALUE | obj2
| ) |  |

Definition at line 49 of file object.c.

References id_eq, Qfalse, Qtrue, rb_funcall(), result, and RTEST.

Referenced by assoc_i(), chunk_ii(), count_i(), eql_i(), exc_equal(), find_index_i(), hash_equal(), Init_Object(), key_i(), member_i(), name_err_mesg_equal(), num_div(), num_eql(), num_remainder(), num_step(), num_zero_p(), pst_equal(), rassoc_i(), rb_ary_assoc(), rb_ary_count(), rb_ary_delete(), rb_ary_equal(), rb_ary_includes(), rb_ary_index(), rb_ary_rassoc(), rb_ary_rindex(), rb_big_eq(), rb_hash_search_value(), rb_method_definition_eq(), rb_obj_cmp(), rb_str_equal(), recursive_equal(), syserr_eqq(), time_eql(), time_mdump(), and vtm_add_offset().

static VALUE rb_f_array | ( | VALUE | obj,
|  | VALUE | arg
| ) |  |

static

Definition at line 2485 of file object.c.

References rb_Array().

Referenced by Init_Object().

static VALUE rb_f_float | ( | VALUE | obj,
|  | VALUE | arg
| ) |  |

static

Definition at line 2381 of file object.c.

References rb_Float().

Referenced by Init_Object().

static VALUE rb_f_integer | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | obj
| ) |  |

static

Definition at line 2213 of file object.c.

References arg, NULL, NUM2INT, Qnil, rb_convert_to_integer(), and rb_scan_args().

Referenced by Init_Object().

static VALUE rb_f_string | ( | VALUE | obj,
|  | VALUE | arg
| ) |  |

static

Definition at line 2455 of file object.c.

References rb_String().

Referenced by Init_Object().

static VALUE rb_false | ( | VALUE | obj | ) |

static

Definition at line 1189 of file object.c.

References Qfalse.

Referenced by Init_Object().

VALUE rb_Float | ( | VALUE | val | ) |

Definition at line 2344 of file object.c.

References DBL2NUM, FIX2LONG, rb_big2dbl(), rb_convert_type(), rb_eTypeError, rb_raise(), rb_str_to_dbl(), T_BIGNUM, T_FIXNUM, T_FLOAT, T_NIL, T_STRING, TRUE, and TYPE.

Referenced by flo_coerce(), foletypelib_version(), int_round(), JSON_parse_float(), num_ceil(), num_coerce(), num_fdiv(), num_floor(), num_round(), num_truncate(), rb_f_float(), rb_num2dbl(), rb_str_format(), time_minus(), and time_to_f().

VALUE rb_inspect | ( | VALUE | obj | ) |

Definition at line 365 of file object.c.

References id_inspect, rb_funcall(), and rb_obj_as_string().

Referenced by advice_arg_check(), cannot_be_coerced_into_BigDecimal(), coerce_rescue(), control_frame_dump(), env_inspect(), get_exception_sym2type(), get_iconv_opt_i(), iconv_fail(), iconv_failure_inspect(), insn_data_to_s_detail(), insn_operand_intern(), inspect_ary(), inspect_enumerator(), inspect_i(), inspect_range(), inspect_struct(), iseq_build_from_ary_body(), method_inspect(), name_err_mesg_to_str(), ossl_x509_inspect(), rb_cmperr(), rb_hash_fetch_m(), rb_mod_to_s(), rb_p(), rb_stat_inspect(), rb_str_format(), rb_throw_obj(), rb_to_id(), rb_vmdebug_debug_print_post(), rb_vmdebug_proc_dump_raw(), recursive_pop(), ruby_debug_print_value(), and vm_check_if_namespace().

VALUE rb_Integer | ( | VALUE | val | ) |

Definition at line 2185 of file object.c.

References rb_convert_to_integer().

Referenced by function_call(), get_freefunc(), JSON_parse_integer(), ossl_x509stctx_set_time(), rb_dlcfunc_initialize(), rb_dlptr_initialize(), rb_dlptr_s_to_ptr(), rb_gzfile_set_mtime(), rb_str_format(), time_mdump(), time_to_time_t(), and value_to_generic().

VALUE rb_mod_attr | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | klass
| ) |  |

Definition at line 1706 of file object.c.

References Qfalse, Qnil, Qtrue, rb_attr(), rb_mod_attr_reader(), rb_to_id(), rb_warning(), RTEST, and TRUE.

Referenced by Init_Object().

static VALUE rb_mod_attr_accessor | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | klass
| ) |  |

static

Definition at line 1751 of file object.c.

References argc, i, Qnil, rb_attr(), rb_to_id(), and TRUE.

Referenced by Init_Object().

static VALUE rb_mod_attr_reader | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | klass
| ) |  |

static

Definition at line 1695 of file object.c.

References argc, FALSE, i, Qnil, rb_attr(), rb_to_id(), and TRUE.

Referenced by Init_Object(), and rb_mod_attr().

static VALUE rb_mod_attr_writer | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | klass
| ) |  |

static

Definition at line 1725 of file object.c.

References argc, FALSE, i, Qnil, rb_attr(), rb_to_id(), and TRUE.

Referenced by Init_Object().

static VALUE rb_mod_cmp | ( | VALUE | mod,
|  | VALUE | arg
| ) |  |

static

Definition at line 1446 of file object.c.

References cmp, INT2FIX, NIL_P, Qnil, rb_class_inherited_p(), T_CLASS, T_MODULE, and TYPE.

Referenced by Init_Object().

static VALUE rb_mod_const_defined | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | mod
| ) |  |

static

Definition at line 1835 of file object.c.

References id, name, Qtrue, rb_const_defined(), rb_const_defined_at(), rb_id2name(), rb_is_const_id(), rb_name_error(), rb_scan_args(), rb_to_id(), recur, and RTEST.

Referenced by Init_Object().

static VALUE rb_mod_const_get | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | mod
| ) |  |

static

Definition at line 1776 of file object.c.

References id, name, Qtrue, rb_const_get(), rb_const_get_at(), rb_id2name(), rb_is_const_id(), rb_name_error(), rb_scan_args(), rb_to_id(), recur, and RTEST.

Referenced by Init_Object().

static VALUE rb_mod_const_set | ( | VALUE | mod,
|  | VALUE | name,
|  | VALUE | value
| ) |  |

static

Definition at line 1808 of file object.c.

References rb_const_set(), rb_id2name(), rb_is_const_id(), rb_name_error(), and rb_to_id().

Referenced by Init_Object().

static VALUE rb_mod_cvar_defined | ( | VALUE | obj,
|  | VALUE | iv
| ) |  |

static

Definition at line 2014 of file object.c.

References rb_cvar_defined(), rb_id2name(), rb_is_class_id(), rb_name_error(), and rb_to_id().

Referenced by Init_Object().

static VALUE rb_mod_cvar_get | ( | VALUE | obj,
|  | VALUE | iv
| ) |  |

static

Definition at line 1960 of file object.c.

References rb_cvar_get(), rb_id2name(), rb_is_class_id(), rb_name_error(), and rb_to_id().

Referenced by Init_Object().

static VALUE rb_mod_cvar_set | ( | VALUE | obj,
|  | VALUE | iv,
|  | VALUE | val
| ) |  |

static

Definition at line 1988 of file object.c.

References rb_cvar_set(), rb_id2name(), rb_is_class_id(), rb_name_error(), and rb_to_id().

Referenced by Init_Object().

static VALUE rb_mod_eqq | ( | VALUE | mod,
|  | VALUE | arg
| ) |  |

static

Definition at line 1327 of file object.c.

References rb_obj_is_kind_of().

Referenced by Init_Object().

static VALUE rb_mod_freeze | ( | VALUE | mod | ) |

static

Definition at line 1310 of file object.c.

References rb_class_name(), and rb_obj_freeze().

Referenced by Init_Object().

static VALUE rb_mod_ge | ( | VALUE | mod,
|  | VALUE | arg
| ) |  |

static

Definition at line 1403 of file object.c.

References rb_class_inherited_p(), rb_eTypeError, rb_raise(), T_CLASS, T_MODULE, and TYPE.

Referenced by Init_Object(), and rb_mod_gt().

static VALUE rb_mod_gt | ( | VALUE | mod,
|  | VALUE | arg
| ) |  |

static

Definition at line 1428 of file object.c.

References Qfalse, and rb_mod_ge().

Referenced by Init_Object().

static VALUE rb_mod_initialize | ( | VALUE | module | ) |

static

Definition at line 1509 of file object.c.

References Qnil, rb_block_given_p(), and rb_mod_module_exec().

Referenced by Init_Object(), and rb_class_initialize().

static VALUE rb_mod_lt | ( | VALUE | mod,
|  | VALUE | arg
| ) |  |

static

Definition at line 1383 of file object.c.

References Qfalse, and rb_class_inherited_p().

Referenced by Init_Object().

static VALUE rb_mod_to_s | ( | VALUE | klass | ) |

static

Definition at line 1278 of file object.c.

References FL_SINGLETON, FL_TEST, rb_any_to_s(), rb_class_name(), rb_inspect(), rb_iv_get(), rb_str_append(), rb_str_cat2(), rb_str_dup(), rb_usascii_str_new2(), T_CLASS, T_MODULE, TYPE, and v.

Referenced by Init_Object().

static VALUE rb_module_s_alloc | ( | VALUE | klass | ) |

static

Definition at line 1468 of file object.c.

References mod, rb_module_new(), and RBASIC.

Referenced by Init_Object().

double rb_num2dbl | ( | VALUE | val | ) |

Definition at line 2411 of file object.c.

References rb_eTypeError, rb_Float(), rb_raise(), RFLOAT_VALUE, T_FLOAT, T_NIL, T_STRING, and TYPE.

Referenced by thread_join_m().

VALUE rb_obj_alloc | ( | VALUE | klass | ) |

Definition at line 1593 of file object.c.

References FL_SINGLETON, FL_TEST, ID_ALLOCATOR, rb_cBasicObject, rb_class_real(), rb_eTypeError, rb_funcall(), rb_obj_class(), rb_raise(), and RCLASS_SUPER.

Referenced by bsock_s_for_fd(), build_exception(), enum_chunk(), enum_slice_before(), Init_Hash(), Init_Object(), Init_readline(), Init_Thread(), Init_tkutil(), Init_top_self(), int_ossl_asn1_decode0_cons(), int_ossl_asn1_decode0_prim(), obj_alloc_by_path(), ossl_sslctx_session_new_cb(), ossl_sslctx_session_remove_cb(), prep_window(), pty_getpty(), pty_open(), r_object0(), rb_catch(), rb_class_new_instance(), rb_digest_class_s_digest(), rb_f_catch(), rb_io_s_for_fd(), rb_last_status_set(), rb_obj_clone(), rb_obj_dup(), rb_range_new(), rsock_s_accept(), rsock_s_accept_nonblock(), and syck_resolver_transfer().

VALUE rb_obj_class | ( | VALUE | obj | ) |

Definition at line 170 of file object.c.

References CLASS_OF, and rb_class_real().

Referenced by ary_make_shared_copy(), cannot_be_coerced_into_BigDecimal(), cbsubst_initialize(), copy_path_class(), d_lite_plus(), dup_obj(), dup_obj_as_complex(), encoded_dup(), exc_equal(), Init_Object(), inspect_struct(), io_reopen(), ip_eval(), ip_invoke_with_position(), match_init_copy(), name_err_mesg_equal(), ossl_cipher_init(), ossl_x509_inspect(), path_basename(), path_dirname(), path_each_entry(), path_entries(), path_expand_path(), path_readlink(), path_realdirpath(), path_realpath(), path_split(), path_sub(), path_sub_ext(), random_equal(), rb_ary_slice_bang(), rb_ary_subseq(), rb_ary_times(), rb_ary_to_a(), rb_ary_uniq(), rb_class_path(), rb_digest_base_block_length(), rb_digest_base_copy(), rb_digest_base_digest_length(), rb_digest_base_finish(), rb_digest_base_reset(), rb_digest_base_update(), rb_hash_aset(), rb_ivar_set(), rb_obj_alloc(), rb_obj_clone(), rb_obj_dup(), rb_obj_init_copy(), rb_obj_is_instance_of(), rb_reg_init_copy(), rb_stat_cmp(), rb_stat_init_copy(), rb_str_dup(), rb_str_new_frozen(), rb_str_new_shared(), rb_str_substr(), rb_str_to_s(), rb_struct_eql(), rb_struct_equal(), rb_struct_init_copy(), rb_struct_initialize_m(), rb_struct_members(), rb_struct_members_m(), recursive_hash(), RUBY_ALIAS_FUNCTION(), str_byte_substr(), str_gsub(), syserr_initialize(), tcl_protect_core(), time_dup(), tk_funcall(), VpDup(), and window_subwin().

VALUE rb_obj_clone | ( | VALUE | obj | ) |

Definition at line 272 of file object.c.

References FL_FINALIZE, FL_FREEZE, FL_MARK, FL_TAINT, FL_TEST, FL_UNTRUSTED, id_init_clone, init_copy(), rb_eTypeError, rb_funcall(), rb_obj_alloc(), rb_obj_class(), rb_obj_classname(), rb_raise(), rb_singleton_class_clone(), rb_special_const_p(), and RBASIC.

Referenced by exc_exception(), Init_Object(), rb_digest_instance_digest(), rb_digest_instance_hexdigest(), rb_digest_instance_new(), rb_eval_string_wrap(), and rb_load_internal().

static VALUE rb_obj_cmp | ( | VALUE | obj1,
|  | VALUE | obj2
| ) |  |

static

Definition at line 1233 of file object.c.

References INT2FIX, Qnil, and rb_equal().

Referenced by Init_Object().

static VALUE rb_obj_dummy | ( | void |  | ) |

static

Definition at line 754 of file object.c.

References Qnil.

Referenced by Init_Object().

VALUE rb_obj_dup | ( | VALUE | obj | ) |

Definition at line 308 of file object.c.

References id_init_dup, init_copy(), rb_eTypeError, rb_funcall(), rb_obj_alloc(), rb_obj_class(), rb_obj_classname(), rb_raise(), and rb_special_const_p().

Referenced by argf_initialize_copy(), chunk_i(), iconv_fail(), Init_Object(), lib_fromUTF8_core(), path_initialize(), path_to_s(), rb_hash_merge(), rb_hash_reject(), rb_io_init_copy(), setup_exception(), and slicebefore_i().

VALUE rb_obj_equal | ( | VALUE | obj1,
|  | VALUE | obj2
| ) |  |

Definition at line 95 of file object.c.

References Qfalse, and Qtrue.

Referenced by Init_Object(), and opt_eq_func().

VALUE rb_obj_freeze | ( | VALUE | obj | ) |

Definition at line 895 of file object.c.

References OBJ_FREEZE, OBJ_FROZEN, OBJ_UNTRUSTED, Qtrue, rb_eSecurityError, rb_raise(), rb_safe_level, SPECIAL_CONST_P, st_init_numtable, and st_insert.

Referenced by add_modules(), console_dev(), env_str_new(), Init_eval(), Init_File(), Init_GC(), Init_Object(), Init_ossl_ssl(), Init_Proc(), Init_strscan(), Init_tcltklib(), Init_tkutil(), Init_VM(), mk_ary_of_str(), ossl_sslctx_setup(), prep_io(), process_options(), pty_getpty(), pty_open(), rb_ary_flatten_bang(), rb_ary_freeze(), rb_f_getenv(), rb_get_expanded_load_path(), rb_hash_freeze(), rb_insns_name_array(), rb_mod_freeze(), rb_str_freeze(), rb_str_upto(), ruby_init_loadpath_safe(), run_finalizer(), set_arg0(), and tcltklib_compile_info().

VALUE rb_obj_frozen_p | ( | VALUE | obj | ) |

Definition at line 924 of file object.c.

References OBJ_FROZEN, Qfalse, Qtrue, SPECIAL_CONST_P, and st_lookup.

Referenced by generic_ivar_set(), and Init_Object().

VALUE rb_obj_hash | ( | VALUE | obj | ) |

Definition at line 112 of file object.c.

References LONG2FIX, NUM2LONG(), rb_hash_end(), rb_hash_start(), and rb_obj_id().

Referenced by Init_Object().

void rb_obj_infect | ( | VALUE | obj1,
|  | VALUE | obj2
| ) |  |

Definition at line 866 of file object.c.

References OBJ_INFECT.

VALUE rb_obj_init_copy | ( | VALUE | obj,
|  | VALUE | orig
| ) |  |

Definition at line 324 of file object.c.

References rb_check_frozen, rb_eTypeError, rb_obj_class(), rb_raise(), and TYPE.

Referenced by Init_Object(), and rb_mod_init_copy().

VALUE rb_obj_init_dup_clone | ( | VALUE | obj,
|  | VALUE | orig
| ) |  |

Definition at line 336 of file object.c.

References id_init_copy, and rb_funcall().

Referenced by Init_Object().

static VALUE rb_obj_inspect | ( | VALUE | obj | ) |

static

Definition at line 427 of file object.c.

References i, inspect_obj(), len, Qundef, rb_any_to_s(), rb_exec_recursive(), rb_funcall(), rb_intern, rb_obj_basic_to_s_p(), rb_obj_classname(), rb_sprintf(), ROBJECT_IVPTR, ROBJECT_NUMIV, T_OBJECT, and TYPE.

Referenced by Init_Object().

VALUE rb_obj_is_instance_of | ( | VALUE | obj,
|  | VALUE | c
| ) |  |

Definition at line 473 of file object.c.

References Qfalse, Qtrue, rb_eTypeError, rb_obj_class(), rb_raise(), T_CLASS, T_ICLASS, T_MODULE, and TYPE.

Referenced by error_handle(), Init_Object(), match_init_copy(), ossl_pkey_initialize(), ossl_ssl_session_initialize(), ossl_ssl_session_set_time(), ossl_sslctx_flush_sessions(), ossl_sslctx_session_get_cb(), rb_reg_init_copy(), rb_stat_init_copy(), rb_struct_init_copy(), and syck_resolver_transfer().

VALUE rb_obj_is_kind_of | ( | VALUE | obj,
|  | VALUE | c
| ) |  |

Definition at line 518 of file object.c.

References CLASS_OF, Qfalse, Qtrue, rb_eTypeError, rb_raise(), RCLASS_M_TBL, RCLASS_SUPER, T_CLASS, T_ICLASS, T_MODULE, and TYPE.

Referenced by case_when_optimizable_literal(), discrete_object_p(), error_handle(), ev_advise(), eval_string_with_cref(), EVENTSINK_Invoke(), f_kind_of_p(), fole_s_const_load(), fole_s_show_help(), folemethod_initialize(), foleparam_initialize(), folevariant_initialize(), get_eval_string_core(), GetBNPtr(), gzfile_read_raw_rescue(), host_str(), Init_Object(), ip_eval(), ip_invoke_with_position(), ip_is_slave_of_p(), ip_rbTkWaitCommand(), ip_rbUpdateCommand(), ip_rbVwaitCommand(), make_exception(), ole_invoke(), ole_val2variant(), os_obj_of_i(), ossl_asn1cons_to_der(), ossl_asn1data_to_der(), ossl_bn_coerce(), ossl_bn_initialize(), parse(), path_cmp(), path_eq(), pending_exception_check0(), pending_exception_check1(), range_eq(), range_eql(), range_include(), range_max(), range_step(), rb_check_to_float(), rb_check_to_integer(), rb_digest_instance_equal(), rb_dlptr2cptr(), rb_dlptr_aset(), rb_dlptr_cmp(), rb_dlptr_eql(), rb_dlptr_s_to_ptr(), rb_method_call_status(), rb_mod_eqq(), rb_range_values(), rb_rescue2(), rb_set_errinfo(), rb_stat_cmp(), rb_to_float(), rb_to_integer(), ruby_cleanup(), setup_exception(), syck_resolver_node_import(), syserr_eqq(), tcl_protect_core(), thread_start_func_2(), tk_funcall(), total_i(), umethod_bind(), vm_call_method(), and yaml_org_handler().

static VALUE rb_obj_ivar_defined | ( | VALUE | obj,
|  | VALUE | iv
| ) |  |

static

Definition at line 1935 of file object.c.

References rb_id2name(), rb_is_instance_id(), rb_ivar_defined(), rb_name_error(), and rb_to_id().

Referenced by Init_Object().

static VALUE rb_obj_ivar_get | ( | VALUE | obj,
|  | VALUE | iv
| ) |  |

static

Definition at line 1875 of file object.c.

References rb_id2name(), rb_is_instance_id(), rb_ivar_get(), rb_name_error(), and rb_to_id().

Referenced by Init_Object().

static VALUE rb_obj_ivar_set | ( | VALUE | obj,
|  | VALUE | iv,
|  | VALUE | val
| ) |  |

static

Definition at line 1906 of file object.c.

References rb_id2name(), rb_is_instance_id(), rb_ivar_set(), rb_name_error(), and rb_to_id().

Referenced by Init_Object().

static VALUE rb_obj_match | ( | VALUE | obj1,
|  | VALUE | obj2
| ) |  |

static

Definition at line 1205 of file object.c.

References Qnil.

Referenced by Init_Object().

VALUE rb_obj_not | ( | VALUE | obj | ) |

Definition at line 127 of file object.c.

References Qfalse, Qtrue, and RTEST.

Referenced by Init_Object().

VALUE rb_obj_not_equal | ( | VALUE | obj1,
|  | VALUE | obj2
| ) |  |

Definition at line 140 of file object.c.

References id_eq, Qfalse, Qtrue, rb_funcall(), result, and RTEST.

Referenced by Init_Object().

static VALUE rb_obj_not_match | ( | VALUE | obj1,
|  | VALUE | obj2
| ) |  |

static

Definition at line 1219 of file object.c.

References id_match, Qfalse, Qtrue, rb_funcall(), result, and RTEST.

Referenced by Init_Object().

static VALUE rb_obj_singleton_class | ( | VALUE | obj | ) |

static

Definition at line 193 of file object.c.

References rb_singleton_class().

Referenced by Init_Object().

VALUE rb_obj_taint | ( | VALUE | obj | ) |

Definition at line 784 of file object.c.

References OBJ_TAINT, OBJ_TAINTED, rb_check_frozen, and rb_secure().

Referenced by Init_Object(), pack_pack(), path_taint(), rb_file_path(), rsock_s_recvfrom(), rsock_s_recvfrom_nonblock(), and tk_obj_untrust().

VALUE rb_obj_tainted | ( | VALUE | obj | ) |

Definition at line 767 of file object.c.

References OBJ_TAINTED, Qfalse, and Qtrue.

Referenced by Init_Object().

VALUE rb_obj_tap | ( | VALUE | obj | ) |

Definition at line 557 of file object.c.

References rb_yield().

Referenced by Init_Object().

VALUE rb_obj_trust | ( | VALUE | obj | ) |

Definition at line 855 of file object.c.

References FL_UNSET, FL_UNTRUSTED, OBJ_UNTRUSTED, rb_check_frozen, and rb_secure().

Referenced by Init_Object().

VALUE rb_obj_untaint | ( | VALUE | obj | ) |

Definition at line 803 of file object.c.

References FL_TAINT, FL_UNSET, OBJ_TAINTED, rb_check_frozen, and rb_secure().

Referenced by Init_Object(), path_untaint(), and time_zone().

VALUE rb_obj_untrust | ( | VALUE | obj | ) |

Definition at line 836 of file object.c.

References OBJ_UNTRUST, OBJ_UNTRUSTED, rb_check_frozen, and rb_secure().

Referenced by Init_Object(), and tk_obj_untrust().

VALUE rb_obj_untrusted | ( | VALUE | obj | ) |

Definition at line 821 of file object.c.

References OBJ_UNTRUSTED, Qfalse, and Qtrue.

Referenced by Init_Object().

double rb_str_to_dbl | ( | VALUE | str,
|  | int | badcheck
| ) |  |

Definition at line 2316 of file object.c.

References ALLOCV, ALLOCV_END, len, MEMCPY, p, rb_cstr_to_dbl(), rb_eArgError, rb_raise(), RSTRING_LEN, RSTRING_PTR, StringValue, and v.

Referenced by f_to_f(), rb_Float(), and rb_str_to_f().

VALUE rb_String | ( | VALUE | val | ) |

Definition at line 2433 of file object.c.

References NIL_P, rb_check_string_type(), rb_convert_type(), and T_STRING.

Referenced by exc_to_s(), GetBNPtr(), make_version_str(), ossl_sslctx_set_ciphers(), and rb_f_string().

VALUE rb_to_float | ( | VALUE | val | ) |

Definition at line 2387 of file object.c.

References NIL_P, Qfalse, Qtrue, rb_cNumeric, rb_convert_type(), rb_eTypeError, rb_obj_classname(), rb_obj_is_kind_of(), rb_raise(), T_FLOAT, and TYPE.

Referenced by pack_pack(), and rand_range().

VALUE rb_to_int | ( | VALUE | val | ) |

Definition at line 2134 of file object.c.

References rb_to_integer().

Referenced by bit_coerce(), check_exec_redirect(), econv_args(), econv_primitive_convert(), fix_aref(), obj2vint(), pack_pack(), rand_init(), random_bytes(), random_load(), range_step(), rb_big_lshift(), rb_big_pack(), rb_big_rshift(), rb_dlcfunc_call(), rb_exec_arg_addopt(), rb_f_rand(), rb_hash(), rb_num2long(), rb_num2ulong(), rb_quad_pack(), time_nsec(), time_round(), and time_usec().

static VALUE rb_to_integer | ( | VALUE | val,
|  | const char * | method
| ) |  |

static

Definition at line 2104 of file object.c.

References convert_type(), FIXNUM_P, rb_cInteger, rb_eTypeError, rb_obj_classname(), rb_obj_is_kind_of(), rb_raise(), T_BIGNUM, TRUE, TYPE, and v.

Referenced by rb_convert_to_integer(), and rb_to_int().

static VALUE rb_true | ( | VALUE | obj | ) |

static

Definition at line 1174 of file object.c.

References Qtrue.

Referenced by Init_Object().

static VALUE true_and | ( | VALUE | obj,
|  | VALUE | obj2
| ) |  |

static

Definition at line 1048 of file object.c.

References Qfalse, Qtrue, and RTEST.

Referenced by Init_Object().

static VALUE true_or | ( | VALUE | obj,
|  | VALUE | obj2
| ) |  |

static

Definition at line 1070 of file object.c.

References Qtrue.

Referenced by Init_Object().

static VALUE true_to_s | ( | VALUE | obj | ) |

static

Definition at line 1033 of file object.c.

References rb_usascii_str_new2().

Referenced by Init_Object().

static VALUE true_xor | ( | VALUE | obj,
|  | VALUE | obj2
| ) |  |

static

Definition at line 1086 of file object.c.

References Qfalse, Qtrue, and RTEST.

Referenced by Init_Object().

## Variable Documentation

struct conv_method_tbl conv_method_names[]

static

Initial value:
= {
{"to_int", 0},
{"to_ary", 0},
{"to_str", 0},
{"to_sym", 0},
{"to_hash", 0},
{"to_proc", 0},
{"to_io", 0},
{"to_a", 0},
{"to_s", 0},
{NULL, 0}
}

Referenced by convert_type(), and Init_Object().

ID id_eq

static

Definition at line 36 of file object.c.

Referenced by Init_Object(), rb_equal(), and rb_obj_not_equal().

ID id_eql

static

Definition at line 36 of file object.c.

Referenced by Init_Object(), and rb_eql().

ID id_init_clone

static

Definition at line 37 of file object.c.

Referenced by Init_Object(), and rb_obj_clone().

ID id_init_copy

static

Definition at line 37 of file object.c.

Referenced by Init_Object(), and rb_obj_init_dup_clone().

ID id_init_dup

static

Definition at line 37 of file object.c.

Referenced by Init_Object(), and rb_obj_dup().

ID id_inspect

static

Definition at line 36 of file object.c.

Referenced by Init_Object(), and rb_inspect().

ID id_match

static

Definition at line 36 of file object.c.

Referenced by Init_Object(), and rb_obj_not_match().

st_table* immediate_frozen_tbl = 0

static

Definition at line 871 of file object.c.

VALUE rb_cBasicObject

Definition at line 25 of file object.c.

VALUE rb_cClass

Definition at line 29 of file object.c.

VALUE rb_cData

Definition at line 30 of file object.c.

VALUE rb_cFalseClass

Definition at line 34 of file object.c.

VALUE rb_cModule

Definition at line 28 of file object.c.

VALUE rb_cNilClass

Definition at line 32 of file object.c.

VALUE rb_cObject

Definition at line 27 of file object.c.

VALUE rb_cTrueClass

Definition at line 33 of file object.c.

VALUE rb_mKernel

Definition at line 26 of file object.c.