Ruby  2.1.10p492(2016-04-01revision54464)
Data Structures | Macros | Functions | Variables
object.c File Reference
#include "ruby/ruby.h"
#include "ruby/st.h"
#include "ruby/util.h"
#include "ruby/encoding.h"
#include <stdio.h>
#include <errno.h>
#include <ctype.h>
#include <math.h>
#include <float.h>
#include "constant.h"
#include "internal.h"
#include "id.h"
#include "probes.h"

Go to the source code of this file.

Data Structures

struct  conv_method_tbl
 

Macros

#define id_eq   idEq
 
#define id_eql   idEqlP
 
#define id_match   idEqTilde
 
#define id_inspect   idInspect
 
#define id_init_copy   idInitialize_copy
 
#define id_init_clone   idInitialize_clone
 
#define id_init_dup   idInitialize_dup
 
#define id_const_missing   idConst_missing
 
#define CLASS_OR_MODULE_P(obj)
 
#define id_for_setter(name, type, message)   check_setter_id(name, rb_is_##type##_id, rb_is_##type##_name, message)
 
#define IMPLICIT_CONVERSIONS   7
 
#define OutOfRange()
 
#define rb_intern(str)   rb_intern_const(str)
 

Functions

VALUE rb_obj_hide (VALUE obj)
 
VALUE rb_obj_reveal (VALUE obj, VALUE klass)
 
VALUE rb_obj_setup (VALUE obj, VALUE klass, VALUE type)
 
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)
 
void rb_obj_copy_ivar (VALUE dest, 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 (st_data_t k, st_data_t v, st_data_t a)
 
static VALUE inspect_obj (VALUE obj, VALUE str, int recur)
 
static VALUE rb_obj_inspect (VALUE obj)
 
static VALUE class_or_module_required (VALUE c)
 
static VALUE class_search_ancestor (VALUE cl, VALUE c)
 
VALUE rb_obj_is_instance_of (VALUE obj, VALUE c)
 
VALUE rb_obj_is_kind_of (VALUE obj, VALUE c)
 
VALUE rb_class_search_ancestor (VALUE cl, 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_to_h (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)
 
void rb_undefined_alloc (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 ID check_setter_id (VALUE name, int(*valid_id_p)(ID), int(*valid_name_p)(VALUE), const char *message)
 
static int rb_is_attr_id (ID id)
 
static int rb_is_attr_name (VALUE name)
 
static ID id_for_attr (VALUE name)
 
ID rb_check_attr_id (ID id)
 
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 rb_mod_singleton_p (VALUE klass)
 
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)
 
VALUE rb_check_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)
 
VALUE rb_Hash (VALUE val)
 
static VALUE rb_f_hash (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 st_tableimmediate_frozen_tbl = 0
 
static const char invalid_attribute_name [] = "invalid attribute name `%"PRIsVALUE"'"
 
static struct conv_method_tbl conv_method_names []
 

Macro Definition Documentation

◆ CLASS_OR_MODULE_P

#define CLASS_OR_MODULE_P (   obj)
Value:
(!SPECIAL_CONST_P(obj) && \
(BUILTIN_TYPE(obj) == T_CLASS || BUILTIN_TYPE(obj) == T_MODULE))
#define T_MODULE
Definition: ruby.h:480
#define BUILTIN_TYPE(x)
Definition: ruby.h:502
#define T_CLASS
Definition: ruby.h:478
#define SPECIAL_CONST_P(x)
Definition: ruby.h:1165

Definition at line 48 of file object.c.

Referenced by rb_class_inherited_p(), rb_mod_cmp(), rb_mod_ge(), and rb_mod_to_s().

◆ id_const_missing

#define id_const_missing   idConst_missing

Definition at line 46 of file object.c.

Referenced by rb_mod_const_get().

◆ id_eq

#define id_eq   idEq

Definition at line 39 of file object.c.

Referenced by rb_equal(), and rb_obj_not_equal().

◆ id_eql

#define id_eql   idEqlP

Definition at line 40 of file object.c.

Referenced by rb_eql().

◆ id_for_setter

#define id_for_setter (   name,
  type,
  message 
)    check_setter_id(name, rb_is_##type##_id, rb_is_##type##_name, message)

Definition at line 1910 of file object.c.

Referenced by id_for_attr(), rb_mod_const_set(), rb_mod_cvar_set(), and rb_obj_ivar_set().

◆ id_init_clone

#define id_init_clone   idInitialize_clone

Definition at line 44 of file object.c.

Referenced by rb_obj_clone().

◆ id_init_copy

#define id_init_copy   idInitialize_copy

Definition at line 43 of file object.c.

Referenced by rb_obj_init_dup_clone().

◆ id_init_dup

#define id_init_dup   idInitialize_dup

Definition at line 45 of file object.c.

Referenced by rb_obj_dup().

◆ id_inspect

#define id_inspect   idInspect

Definition at line 42 of file object.c.

Referenced by rb_inspect().

◆ id_match

#define id_match   idEqTilde

Definition at line 41 of file object.c.

Referenced by rb_obj_not_match().

◆ IMPLICIT_CONVERSIONS

#define IMPLICIT_CONVERSIONS   7

Definition at line 2602 of file object.c.

Referenced by convert_type().

◆ OutOfRange

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

Referenced by rb_cstr_to_dbl().

◆ rb_intern

#define rb_intern (   str)    rb_intern_const(str)

Referenced by convert_type(), and Init_Object().

Function Documentation

◆ check_setter_id()

static ID check_setter_id ( VALUE  name,
int(*)(ID valid_id_p,
int(*)(VALUE valid_name_p,
const char *  message 
)
static

◆ class_or_module_required()

static VALUE class_or_module_required ( VALUE  c)
static

◆ class_search_ancestor()

static VALUE class_search_ancestor ( VALUE  cl,
VALUE  c 
)
static

Definition at line 655 of file object.c.

References RCLASS_M_TBL_WRAPPER, and RCLASS_SUPER.

Referenced by rb_class_inherited_p(), rb_class_search_ancestor(), and rb_obj_is_kind_of().

◆ convert_type()

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

◆ false_and()

static VALUE false_and ( VALUE  obj,
VALUE  obj2 
)
static

Definition at line 1315 of file object.c.

References Qfalse.

Referenced by Init_Object().

◆ false_or()

static VALUE false_or ( VALUE  obj,
VALUE  obj2 
)
static

Definition at line 1331 of file object.c.

References Qfalse, Qtrue, and RTEST.

Referenced by Init_Object().

◆ false_to_s()

static VALUE false_to_s ( VALUE  obj)
static

Definition at line 1299 of file object.c.

References rb_usascii_str_new2.

Referenced by Init_Object().

◆ false_xor()

static VALUE false_xor ( VALUE  obj,
VALUE  obj2 
)
static

Definition at line 1350 of file object.c.

References Qfalse, Qtrue, and RTEST.

Referenced by Init_Object().

◆ id_for_attr()

static ID id_for_attr ( VALUE  name)
static

◆ init_copy()

static void init_copy ( VALUE  dest,
VALUE  obj 
)
static

◆ inspect_i()

static int inspect_i ( st_data_t  k,
st_data_t  v,
st_data_t  a 
)
static

◆ inspect_obj()

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

Definition at line 514 of file object.c.

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

Referenced by rb_obj_inspect().

◆ nil_inspect()

static VALUE nil_inspect ( VALUE  obj)
static

Definition at line 1199 of file object.c.

References rb_usascii_str_new2.

Referenced by Init_Object().

◆ nil_to_a()

static VALUE nil_to_a ( VALUE  obj)
static

Definition at line 1169 of file object.c.

References rb_ary_new2.

Referenced by Init_Object().

◆ nil_to_f()

static VALUE nil_to_f ( VALUE  obj)
static

Definition at line 1139 of file object.c.

References DBL2NUM.

Referenced by Init_Object().

◆ nil_to_h()

static VALUE nil_to_h ( VALUE  obj)
static

Definition at line 1186 of file object.c.

References rb_hash_new().

Referenced by Init_Object().

◆ nil_to_i()

static VALUE nil_to_i ( VALUE  obj)
static

Definition at line 1124 of file object.c.

References INT2FIX.

Referenced by Init_Object().

◆ nil_to_s()

static VALUE nil_to_s ( VALUE  obj)
static

Definition at line 1152 of file object.c.

References rb_usascii_str_new().

Referenced by Init_Object().

◆ rb_any_to_s()

VALUE rb_any_to_s ( VALUE  obj)

◆ rb_Array()

VALUE rb_Array ( VALUE  val)

◆ rb_check_attr_id()

ID rb_check_attr_id ( ID  id)

Definition at line 1958 of file object.c.

References id, invalid_attribute_name, QUOTE_ID, rb_is_attr_id(), and rb_name_error_str().

Referenced by rb_attr().

◆ rb_check_convert_type()

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

◆ rb_check_to_float()

VALUE rb_check_to_float ( VALUE  val)

Definition at line 2977 of file object.c.

References Qnil, rb_check_convert_type(), rb_cNumeric, rb_obj_is_kind_of(), RB_TYPE_P, T_FLOAT, and val.

Referenced by rand_random(), and rand_range().

◆ rb_check_to_int()

VALUE rb_check_to_int ( VALUE  val)

Definition at line 2706 of file object.c.

References rb_check_to_integer(), and val.

Referenced by exit_initialize().

◆ rb_check_to_integer()

VALUE rb_check_to_integer ( VALUE  val,
const char *  method 
)

◆ rb_class_allocate_instance()

static VALUE rb_class_allocate_instance ( VALUE  klass)
static

Definition at line 1838 of file object.c.

References FL_WB_PROTECTED, NEWOBJ_OF, RGENGC_WB_PROTECTED_OBJECT, and T_OBJECT.

Referenced by Init_Object().

◆ rb_class_get_superclass()

VALUE rb_class_get_superclass ( VALUE  klass)

Definition at line 1905 of file object.c.

References RCLASS.

◆ rb_class_inherited_p()

VALUE rb_class_inherited_p ( VALUE  mod,
VALUE  arg 
)

◆ rb_class_initialize()

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

◆ rb_class_new_instance()

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

◆ rb_class_real()

VALUE rb_class_real ( VALUE  cl)

◆ rb_class_s_alloc()

static VALUE rb_class_s_alloc ( VALUE  klass)
static

Definition at line 1678 of file object.c.

References rb_class_boot().

Referenced by Init_Object().

◆ rb_class_search_ancestor()

VALUE rb_class_search_ancestor ( VALUE  cl,
VALUE  c 
)

Definition at line 666 of file object.c.

References class_or_module_required(), class_search_ancestor(), and RCLASS_ORIGIN.

Referenced by umethod_bind().

◆ rb_class_superclass()

VALUE rb_class_superclass ( VALUE  klass)

◆ rb_convert_to_integer()

static VALUE rb_convert_to_integer ( VALUE  val,
int  base 
)
static

◆ rb_convert_type()

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

◆ rb_cstr_to_dbl()

double rb_cstr_to_dbl ( const char *  p,
int  badcheck 
)

◆ rb_eql()

int rb_eql ( VALUE  obj1,
VALUE  obj2 
)

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

◆ rb_equal()

VALUE rb_equal ( VALUE  obj1,
VALUE  obj2 
)

◆ rb_f_array()

static VALUE rb_f_array ( VALUE  obj,
VALUE  arg 
)
static

Definition at line 3063 of file object.c.

References rb_Array().

Referenced by Init_Object().

◆ rb_f_float()

static VALUE rb_f_float ( VALUE  obj,
VALUE  arg 
)
static

Definition at line 2957 of file object.c.

References rb_Float().

Referenced by Init_Object().

◆ rb_f_hash()

static VALUE rb_f_hash ( VALUE  obj,
VALUE  arg 
)
static

Definition at line 3098 of file object.c.

References rb_Hash().

Referenced by Init_Object().

◆ rb_f_integer()

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

Definition at line 2787 of file object.c.

References argc, argv, NULL, NUM2INT, Qnil, rb_convert_to_integer(), and rb_scan_args().

Referenced by Init_Object().

◆ rb_f_string()

static VALUE rb_f_string ( VALUE  obj,
VALUE  arg 
)
static

Definition at line 3032 of file object.c.

References rb_String().

Referenced by Init_Object().

◆ rb_false()

static VALUE rb_false ( VALUE  obj)
static

Definition at line 1380 of file object.c.

References Qfalse.

Referenced by Init_Object().

◆ rb_Float()

VALUE rb_Float ( VALUE  val)

◆ rb_Hash()

VALUE rb_Hash ( VALUE  val)

◆ rb_inspect()

VALUE rb_inspect ( VALUE  obj)

◆ rb_Integer()

VALUE rb_Integer ( VALUE  val)

◆ rb_is_attr_id()

static int rb_is_attr_id ( ID  id)
static

Definition at line 1938 of file object.c.

References rb_is_const_id(), and rb_is_local_id().

Referenced by rb_check_attr_id().

◆ rb_is_attr_name()

static int rb_is_attr_name ( VALUE  name)
static

Definition at line 1944 of file object.c.

References name, rb_is_const_name(), and rb_is_local_name().

◆ rb_mod_attr()

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

Definition at line 1991 of file object.c.

References argc, argv, id_for_attr(), Qfalse, Qnil, Qtrue, rb_attr(), rb_mod_attr_reader(), rb_warning(), RTEST, and TRUE.

Referenced by Init_Object().

◆ rb_mod_attr_accessor()

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

Definition at line 2040 of file object.c.

References argc, argv, id_for_attr(), Qnil, rb_attr(), and TRUE.

Referenced by Init_Object().

◆ rb_mod_attr_reader()

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

Definition at line 1980 of file object.c.

References argc, argv, FALSE, id_for_attr(), Qnil, rb_attr(), and TRUE.

Referenced by Init_Object(), and rb_mod_attr().

◆ rb_mod_attr_writer()

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

Definition at line 2012 of file object.c.

References argc, argv, FALSE, id_for_attr(), Qnil, rb_attr(), and TRUE.

Referenced by Init_Object().

◆ rb_mod_cmp()

static VALUE rb_mod_cmp ( VALUE  mod,
VALUE  arg 
)
static

Definition at line 1651 of file object.c.

References CLASS_OR_MODULE_P, cmp, INT2FIX, mod, NIL_P, Qnil, and rb_class_inherited_p().

Referenced by Init_Object().

◆ rb_mod_const_defined()

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

◆ rb_mod_const_get()

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

◆ rb_mod_const_set()

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

Definition at line 2203 of file object.c.

References id_for_setter, mod, name, PRIsVALUE, and rb_const_set().

Referenced by Init_Object().

◆ rb_mod_cvar_defined()

static VALUE rb_mod_cvar_defined ( VALUE  obj,
VALUE  iv 
)
static

◆ rb_mod_cvar_get()

static VALUE rb_mod_cvar_get ( VALUE  obj,
VALUE  iv 
)
static

◆ rb_mod_cvar_set()

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

Definition at line 2522 of file object.c.

References id_for_setter, PRIsVALUE, rb_cvar_set(), and val.

Referenced by Init_Object().

◆ rb_mod_eqq()

static VALUE rb_mod_eqq ( VALUE  mod,
VALUE  arg 
)
static

Definition at line 1542 of file object.c.

References mod, and rb_obj_is_kind_of().

Referenced by Init_Object().

◆ rb_mod_freeze()

static VALUE rb_mod_freeze ( VALUE  mod)
static

Definition at line 1525 of file object.c.

References mod, rb_class_name(), and rb_obj_freeze().

Referenced by Init_Object().

◆ rb_mod_ge()

static VALUE rb_mod_ge ( VALUE  mod,
VALUE  arg 
)
static

Definition at line 1611 of file object.c.

References CLASS_OR_MODULE_P, mod, rb_class_inherited_p(), rb_eTypeError, and rb_raise().

Referenced by Init_Object(), and rb_mod_gt().

◆ rb_mod_gt()

static VALUE rb_mod_gt ( VALUE  mod,
VALUE  arg 
)
static

Definition at line 1632 of file object.c.

References mod, Qfalse, and rb_mod_ge().

Referenced by Init_Object().

◆ rb_mod_initialize()

static VALUE rb_mod_initialize ( VALUE  module)
static

Definition at line 1710 of file object.c.

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

Referenced by Init_Object(), and rb_class_initialize().

◆ rb_mod_lt()

static VALUE rb_mod_lt ( VALUE  mod,
VALUE  arg 
)
static

Definition at line 1591 of file object.c.

References mod, Qfalse, and rb_class_inherited_p().

Referenced by Init_Object().

◆ rb_mod_singleton_p()

static VALUE rb_mod_singleton_p ( VALUE  klass)
static

Definition at line 2580 of file object.c.

References FL_SINGLETON, FL_TEST, Qfalse, Qtrue, RB_TYPE_P, and T_CLASS.

Referenced by Init_Object().

◆ rb_mod_to_s()

static VALUE rb_mod_to_s ( VALUE  klass)
static

◆ rb_module_s_alloc()

static VALUE rb_module_s_alloc ( VALUE  klass)
static

Definition at line 1669 of file object.c.

References mod, rb_module_new(), and RBASIC_SET_CLASS.

Referenced by Init_Object().

◆ rb_num2dbl()

double rb_num2dbl ( VALUE  val)

Definition at line 2987 of file object.c.

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

Referenced by thread_join_m().

◆ rb_obj_alloc()

VALUE rb_obj_alloc ( VALUE  klass)

◆ rb_obj_class()

VALUE rb_obj_class ( VALUE  obj)

Definition at line 226 of file object.c.

References CLASS_OF, and rb_class_real().

Referenced by ary_make_shared_copy(), BigDecimal_new(), cannot_be_coerced_into_BigDecimal(), cbsubst_initialize(), coerce_failed(), copy_path_class(), d_lite_plus(), dup_obj(), dup_obj_as_complex(), enc_inspect(), encoded_dup(), exc_equal(), extract_user_token(), get_new_timeval(), get_timeval(), Init_Object(), inspect_enumerator(), inspect_struct(), io_reopen(), ip_eval(), ip_invoke_with_position(), mString_to_json_raw_object(), mSyslog_log(), name_err_mesg_equal(), not_encoding(), ossl_asn1_default_tag(), 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_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_dlptr_inspect(), rb_fiddle_ptr_inspect(), rb_hash_aset(), rb_hash_dup_empty(), rb_hash_to_h(), rb_ivar_set(), rb_obj_alloc(), rb_obj_clone(), rb_obj_dup(), rb_obj_init_copy(), rb_obj_is_instance_of(), rb_profile_frame_classpath(), rb_stat_cmp(), rb_str_dup(), rb_str_new_frozen(), rb_str_new_shared(), rb_str_new_with_class(), rb_str_substr(), rb_str_to_s(), rb_struct_eql(), rb_struct_equal(), rb_struct_hash(), rb_struct_initialize_m(), rb_struct_members(), rb_struct_members_m(), rb_tmp_class_path(), str_byte_substr(), str_gsub(), strscan_inspect(), syserr_initialize(), take_items(), tcl_protect_core(), time_dup(), tk_funcall(), undumpable(), and vm_search_super_method().

◆ rb_obj_clone()

VALUE rb_obj_clone ( VALUE  obj)

◆ rb_obj_cmp()

static VALUE rb_obj_cmp ( VALUE  obj1,
VALUE  obj2 
)
static

Definition at line 1436 of file object.c.

References INT2FIX, Qnil, and rb_equal().

Referenced by Init_Object().

◆ rb_obj_copy_ivar()

void rb_obj_copy_ivar ( VALUE  dest,
VALUE  obj 
)

Definition at line 255 of file object.c.

References ALLOC_N, MEMCPY, RBASIC, ROBJECT, ROBJECT_EMBED, ROBJECT_EMBED_LEN_MAX, ROBJECT_IVPTR, and xfree().

Referenced by init_copy().

◆ rb_obj_dummy()

static VALUE rb_obj_dummy ( void  )
static

Definition at line 924 of file object.c.

References Qnil.

Referenced by Init_Object().

◆ rb_obj_dup()

VALUE rb_obj_dup ( VALUE  obj)

◆ rb_obj_equal()

VALUE rb_obj_equal ( VALUE  obj1,
VALUE  obj2 
)

Definition at line 142 of file object.c.

References Qfalse, and Qtrue.

Referenced by Init_Object(), and opt_eq_func().

◆ rb_obj_freeze()

VALUE rb_obj_freeze ( VALUE  obj)

◆ rb_obj_frozen_p()

VALUE rb_obj_frozen_p ( VALUE  obj)

Definition at line 1096 of file object.c.

References immediate_frozen_tbl, OBJ_FROZEN, Qfalse, Qtrue, SPECIAL_CONST_P, and st_lookup().

Referenced by dump_object(), generic_ivar_set(), and Init_Object().

◆ rb_obj_hash()

VALUE rb_obj_hash ( VALUE  obj)

Definition at line 162 of file object.c.

References LONG2FIX, NUM2LONG, rb_obj_id(), and rb_objid_hash().

Referenced by Init_Object().

◆ rb_obj_hide()

VALUE rb_obj_hide ( VALUE  obj)

◆ rb_obj_infect()

void rb_obj_infect ( VALUE  obj1,
VALUE  obj2 
)

Definition at line 1041 of file object.c.

References OBJ_INFECT.

◆ rb_obj_init_copy()

VALUE rb_obj_init_copy ( VALUE  obj,
VALUE  orig 
)

Definition at line 422 of file object.c.

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

Referenced by Init_Object().

◆ rb_obj_init_dup_clone()

VALUE rb_obj_init_dup_clone ( VALUE  obj,
VALUE  orig 
)

Definition at line 435 of file object.c.

References id_init_copy, and rb_funcall().

Referenced by Init_Object().

◆ rb_obj_inspect()

static VALUE rb_obj_inspect ( VALUE  obj)
static

◆ rb_obj_is_instance_of()

VALUE rb_obj_is_instance_of ( VALUE  obj,
VALUE  c 
)

◆ rb_obj_is_kind_of()

VALUE rb_obj_is_kind_of ( VALUE  obj,
VALUE  c 
)

Definition at line 646 of file object.c.

References CLASS_OF, class_or_module_required(), class_search_ancestor(), Qfalse, Qtrue, and RCLASS_ORIGIN.

Referenced by case_when_optimizable_literal(), check_match(), check_type_val2variant(), cState_from_state_s(), discrete_object_p(), encoding_table_get_name_core(), encoding_table_get_obj_core(), error_handle(), ev_advise(), EVENTSINK_Invoke(), f_kind_of_p(), fole_s_const_load(), fole_s_show_help(), folemethod_initialize(), foleparam_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(), linear_object_p(), 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_max(), range_size(), range_step(), range_step_size(), rb_ary_bsearch(), 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_enumeratorize_with_size(), rb_fiddle_ptr2cptr(), rb_fiddle_ptr_aset(), rb_fiddle_ptr_cmp(), rb_fiddle_ptr_eql(), rb_fiddle_ptr_s_to_ptr(), rb_method_call_status(), rb_mod_eqq(), rb_range_values(), rb_rescue2(), rb_set_errinfo(), rb_stat_cmp(), rb_thread_pending_interrupt_p(), rb_to_float(), rb_to_integer(), ruby_cleanup(), setup_exception(), syserr_eqq(), tcl_protect_core(), thread_start_func_2(), tk_funcall(), total_i(), umethod_bind(), vm_call_method(), and vm_search_super_method().

◆ rb_obj_ivar_defined()

static VALUE rb_obj_ivar_defined ( VALUE  obj,
VALUE  iv 
)
static

◆ rb_obj_ivar_get()

static VALUE rb_obj_ivar_get ( VALUE  obj,
VALUE  iv 
)
static

◆ rb_obj_ivar_set()

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

Definition at line 2416 of file object.c.

References id_for_setter, PRIsVALUE, rb_ivar_set(), and val.

Referenced by Init_Object().

◆ rb_obj_match()

static VALUE rb_obj_match ( VALUE  obj1,
VALUE  obj2 
)
static

Definition at line 1396 of file object.c.

References Qnil.

Referenced by Init_Object().

◆ rb_obj_not()

VALUE rb_obj_not ( VALUE  obj)

Definition at line 184 of file object.c.

References Qfalse, Qtrue, and RTEST.

Referenced by Init_Object().

◆ rb_obj_not_equal()

VALUE rb_obj_not_equal ( VALUE  obj1,
VALUE  obj2 
)

Definition at line 197 of file object.c.

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

Referenced by Init_Object().

◆ rb_obj_not_match()

static VALUE rb_obj_not_match ( VALUE  obj1,
VALUE  obj2 
)
static

Definition at line 1410 of file object.c.

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

Referenced by Init_Object().

◆ rb_obj_reveal()

VALUE rb_obj_reveal ( VALUE  obj,
VALUE  klass 
)

◆ rb_obj_setup()

VALUE rb_obj_setup ( VALUE  obj,
VALUE  klass,
VALUE  type 
)

Definition at line 71 of file object.c.

References FL_SET, FL_TAINT, rb_safe_level, RBASIC, RBASIC_SET_CLASS, and type.

◆ rb_obj_singleton_class()

static VALUE rb_obj_singleton_class ( VALUE  obj)
static

Definition at line 249 of file object.c.

References rb_singleton_class().

Referenced by Init_Object().

◆ rb_obj_taint()

VALUE rb_obj_taint ( VALUE  obj)

◆ rb_obj_tainted()

VALUE rb_obj_tainted ( VALUE  obj)

Definition at line 939 of file object.c.

References OBJ_TAINTED, Qfalse, and Qtrue.

Referenced by Init_Object(), and rb_obj_untrusted().

◆ rb_obj_tap()

VALUE rb_obj_tap ( VALUE  obj)

Definition at line 689 of file object.c.

References rb_yield().

Referenced by Init_Object().

◆ rb_obj_trust()

VALUE rb_obj_trust ( VALUE  obj)

Definition at line 1034 of file object.c.

References rb_obj_untaint(), and rb_warning().

Referenced by Init_Object().

◆ rb_obj_untaint()

VALUE rb_obj_untaint ( VALUE  obj)

Definition at line 987 of file object.c.

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

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

◆ rb_obj_untrust()

VALUE rb_obj_untrust ( VALUE  obj)

Definition at line 1019 of file object.c.

References rb_obj_taint(), and rb_warning().

Referenced by Init_Object(), and tk_obj_untrust().

◆ rb_obj_untrusted()

VALUE rb_obj_untrusted ( VALUE  obj)

Definition at line 1005 of file object.c.

References rb_obj_tainted(), and rb_warning().

Referenced by Init_Object().

◆ rb_str_to_dbl()

double rb_str_to_dbl ( VALUE  str,
int  badcheck 
)

◆ rb_String()

VALUE rb_String ( VALUE  val)

◆ rb_to_float()

VALUE rb_to_float ( VALUE  val)

◆ rb_to_int()

VALUE rb_to_int ( VALUE  val)

◆ rb_to_integer()

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

◆ rb_true()

static VALUE rb_true ( VALUE  obj)
static

Definition at line 1363 of file object.c.

References Qtrue.

Referenced by Init_Object().

◆ rb_undefined_alloc()

void rb_undefined_alloc ( VALUE  klass)

Definition at line 1775 of file object.c.

References PRIsVALUE, rb_eTypeError, and rb_raise().

Referenced by enc_s_alloc(), and rb_obj_alloc().

◆ true_and()

static VALUE true_and ( VALUE  obj,
VALUE  obj2 
)
static

Definition at line 1237 of file object.c.

References Qfalse, Qtrue, and RTEST.

Referenced by Init_Object().

◆ true_or()

static VALUE true_or ( VALUE  obj,
VALUE  obj2 
)
static

Definition at line 1259 of file object.c.

References Qtrue.

Referenced by Init_Object().

◆ true_to_s()

static VALUE true_to_s ( VALUE  obj)
static

Definition at line 1222 of file object.c.

References rb_usascii_str_new2.

Referenced by Init_Object().

◆ true_xor()

static VALUE true_xor ( VALUE  obj,
VALUE  obj2 
)
static

Definition at line 1275 of file object.c.

References Qfalse, Qtrue, and RTEST.

Referenced by Init_Object().

Variable Documentation

◆ conv_method_names

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}
}
#define NULL
Definition: _sdbm.c:102

Referenced by convert_type(), and Init_Object().

◆ immediate_frozen_tbl

st_table* immediate_frozen_tbl = 0
static

Definition at line 1046 of file object.c.

Referenced by rb_obj_freeze(), and rb_obj_frozen_p().

◆ invalid_attribute_name

const char invalid_attribute_name[] = "invalid attribute name `%"PRIsVALUE"'"
static

Definition at line 1949 of file object.c.

Referenced by id_for_attr(), and rb_check_attr_id().

◆ rb_cBasicObject

VALUE rb_cBasicObject

Definition at line 28 of file object.c.

Referenced by Init_Object(), rb_class_initialize(), rb_class_superclass(), and rb_obj_alloc().

◆ rb_cClass

VALUE rb_cClass

Definition at line 32 of file object.c.

Referenced by Init_Object().

◆ rb_cData

VALUE rb_cData

Definition at line 33 of file object.c.

Referenced by Init_Object().

◆ rb_cFalseClass

VALUE rb_cFalseClass

Definition at line 37 of file object.c.

Referenced by Init_Object().

◆ rb_cModule

VALUE rb_cModule

Definition at line 31 of file object.c.

Referenced by Init_Object().

◆ rb_cNilClass

VALUE rb_cNilClass

Definition at line 35 of file object.c.

Referenced by Init_Object().

◆ rb_cObject

VALUE rb_cObject

Definition at line 30 of file object.c.

Referenced by Init_Object(), rb_class_initialize(), rb_mod_const_defined(), and rb_mod_const_get().

◆ rb_cTrueClass

VALUE rb_cTrueClass

Definition at line 36 of file object.c.

Referenced by Init_Object().

◆ rb_mKernel

VALUE rb_mKernel

Definition at line 29 of file object.c.

Referenced by Init_Object().