Ruby  1.9.3p448(2013-06-27revision41675)
Data Structures | Defines | Functions | Variables
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

Defines

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

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_tableimmediate_frozen_tbl = 0
static struct conv_method_tbl conv_method_names []

Define 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]
static VALUE false_and ( VALUE  obj,
VALUE  obj2 
) [static]

Definition at line 1133 of file object.c.

References Qfalse.

Referenced by Init_Object().

static VALUE false_or ( VALUE  obj,
VALUE  obj2 
) [static]

Definition at line 1149 of file object.c.

References Qfalse, Qtrue, and RTEST.

Referenced by Init_Object().

static VALUE false_to_s ( VALUE  obj) [static]

Definition at line 1117 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 1168 of file object.c.

References Qfalse, Qtrue, and RTEST.

Referenced by Init_Object().

static void init_copy ( VALUE  dest,
VALUE  obj 
) [static]
static int inspect_i ( ID  id,
VALUE  value,
VALUE  str 
) [static]
static VALUE inspect_obj ( VALUE  obj,
VALUE  str,
int  recur 
) [static]

Definition at line 404 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 1017 of file object.c.

References rb_usascii_str_new2().

Referenced by Init_Object().

static VALUE nil_to_a ( VALUE  obj) [static]

Definition at line 1004 of file object.c.

References rb_ary_new2().

Referenced by Init_Object().

static VALUE nil_to_f ( VALUE  obj) [static]

Definition at line 974 of file object.c.

References DBL2NUM.

Referenced by Init_Object().

static VALUE nil_to_i ( VALUE  obj) [static]

Definition at line 959 of file object.c.

References INT2FIX.

Referenced by Init_Object().

static VALUE nil_to_s ( VALUE  obj) [static]

Definition at line 987 of file object.c.

References rb_usascii_str_new().

Referenced by Init_Object().

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

Definition at line 2408 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 
)
static VALUE rb_class_allocate_instance ( VALUE  klass) [static]

Definition at line 1618 of file object.c.

References NEWOBJ, OBJSETUP, and T_OBJECT.

Referenced by Init_Object().

Definition at line 1686 of file object.c.

References RCLASS_SUPER.

VALUE rb_class_inherited_p ( VALUE  mod,
VALUE  arg 
)
static VALUE rb_class_initialize ( int  argc,
VALUE argv,
VALUE  klass 
) [static]
VALUE rb_class_new_instance ( int  argc,
VALUE argv,
VALUE  klass 
)
static VALUE rb_class_s_alloc ( VALUE  klass) [static]

Definition at line 1484 of file object.c.

References rb_class_boot().

Referenced by Init_Object().

static VALUE rb_convert_to_integer ( VALUE  val,
int  base 
) [static]
VALUE rb_convert_type ( VALUE  val,
int  type,
const char *  tname,
const char *  method 
)
double rb_cstr_to_dbl ( const char *  p,
int  badcheck 
)
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 
)
static VALUE rb_f_array ( VALUE  obj,
VALUE  arg 
) [static]

Definition at line 2492 of file object.c.

References rb_Array().

Referenced by Init_Object().

static VALUE rb_f_float ( VALUE  obj,
VALUE  arg 
) [static]

Definition at line 2388 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 2220 of file object.c.

References 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 2462 of file object.c.

References rb_String().

Referenced by Init_Object().

static VALUE rb_false ( VALUE  obj) [static]

Definition at line 1196 of file object.c.

References Qfalse.

Referenced by Init_Object().

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

Definition at line 1713 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 1758 of file object.c.

References argc, 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 1702 of file object.c.

References argc, FALSE, 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 1732 of file object.c.

References argc, FALSE, 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 1453 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]
static VALUE rb_mod_const_get ( int  argc,
VALUE argv,
VALUE  mod 
) [static]
static VALUE rb_mod_const_set ( VALUE  mod,
VALUE  name,
VALUE  value 
) [static]

Definition at line 1815 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 2021 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 1967 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 1995 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 1334 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 1317 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 1410 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 1435 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 1516 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 1390 of file object.c.

References Qfalse, and rb_class_inherited_p().

Referenced by Init_Object().

static VALUE rb_mod_to_s ( VALUE  klass) [static]
static VALUE rb_module_s_alloc ( VALUE  klass) [static]

Definition at line 1475 of file object.c.

References mod, rb_module_new(), and RBASIC.

Referenced by Init_Object().

double rb_num2dbl ( VALUE  val)

Definition at line 2418 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)
static VALUE rb_obj_cmp ( VALUE  obj1,
VALUE  obj2 
) [static]

Definition at line 1240 of file object.c.

References INT2FIX, Qnil, and rb_equal().

Referenced by Init_Object().

static VALUE rb_obj_dummy ( void  ) [static]

Definition at line 761 of file object.c.

References Qnil.

Referenced by Init_Object().

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().

Definition at line 931 of file object.c.

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

Referenced by generic_ivar_set(), and Init_Object().

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 873 of file object.c.

References OBJ_INFECT.

VALUE rb_obj_init_copy ( VALUE  obj,
VALUE  orig 
)

Definition at line 331 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 343 of file object.c.

References id_init_copy, and rb_funcall().

Referenced by Init_Object().

static VALUE rb_obj_inspect ( VALUE  obj) [static]
VALUE rb_obj_is_kind_of ( VALUE  obj,
VALUE  c 
)
static VALUE rb_obj_ivar_defined ( VALUE  obj,
VALUE  iv 
) [static]

Definition at line 1942 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 1882 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 1913 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 1212 of file object.c.

References Qnil.

Referenced by Init_Object().

Definition at line 134 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 147 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 1226 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 200 of file object.c.

References rb_singleton_class().

Referenced by Init_Object().

Definition at line 774 of file object.c.

References OBJ_TAINTED, Qfalse, and Qtrue.

Referenced by Init_Object().

Definition at line 564 of file object.c.

References rb_yield().

Referenced by Init_Object().

Definition at line 862 of file object.c.

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

Referenced by Init_Object().

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

Definition at line 843 of file object.c.

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

Referenced by Init_Object(), and tk_obj_untrust().

Definition at line 828 of file object.c.

References OBJ_UNTRUSTED, Qfalse, and Qtrue.

Referenced by Init_Object().

double rb_str_to_dbl ( VALUE  str,
int  badcheck 
)
VALUE rb_String ( VALUE  val)
VALUE rb_to_int ( VALUE  val)
static VALUE rb_to_integer ( VALUE  val,
const char *  method 
) [static]
static VALUE rb_true ( VALUE  obj) [static]

Definition at line 1181 of file object.c.

References Qtrue.

Referenced by Init_Object().

static VALUE true_and ( VALUE  obj,
VALUE  obj2 
) [static]

Definition at line 1055 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 1077 of file object.c.

References Qtrue.

Referenced by Init_Object().

static VALUE true_to_s ( VALUE  obj) [static]

Definition at line 1040 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 1093 of file object.c.

References Qfalse, Qtrue, and RTEST.

Referenced by Init_Object().


Variable Documentation

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().

Definition at line 878 of file object.c.

Definition at line 25 of file object.c.

Definition at line 29 of file object.c.

Definition at line 30 of file object.c.

Definition at line 34 of file object.c.

Definition at line 28 of file object.c.

Definition at line 32 of file object.c.

Definition at line 27 of file object.c.

Definition at line 33 of file object.c.

Definition at line 26 of file object.c.