Ruby
2.4.2p198(2017-09-14revision59899)
|
Data Structures | |
struct | clone_method_arg |
struct | clone_const_arg |
struct | method_entry_arg |
Macros | |
#define | id_attached id__attached__ |
#define | METACLASS_OF(k) RBASIC(k)->klass |
#define | SET_METACLASS_OF(k, cls) RBASIC_SET_CLASS(k, cls) |
#define | META_CLASS_OF_CLASS_CLASS_P(k) (METACLASS_OF(k) == (k)) |
whether k is a meta^(n)-class of Class class More... | |
#define | HAVE_METACLASS_P(k) |
whether k has a metaclass More... | |
#define | ENSURE_EIGENCLASS(klass) (HAVE_METACLASS_P(klass) ? METACLASS_OF(klass) : make_metaclass(klass)) |
ensures klass belongs to its own eigenclass. More... | |
#define | SPECIAL_SINGLETON(x, c) |
#define ENSURE_EIGENCLASS | ( | klass | ) | (HAVE_METACLASS_P(klass) ? METACLASS_OF(klass) : make_metaclass(klass)) |
ensures klass belongs to its own eigenclass.
Definition at line 472 of file class.c.
Referenced by make_metaclass(), and rb_singleton_class().
#define HAVE_METACLASS_P | ( | k | ) |
whether k has a metaclass
1 | if k has a metaclass |
0 | otherwise |
#define id_attached id__attached__ |
Definition at line 33 of file class.c.
Referenced by rb_singleton_class_attached(), rb_singleton_class_get(), rb_singleton_class_has_metaclass_p(), rb_singleton_class_internal_p(), and singleton_class_of().
#define META_CLASS_OF_CLASS_CLASS_P | ( | k | ) | (METACLASS_OF(k) == (k)) |
whether k is a meta^(n)-class of Class class
1 | if k is a meta^(n)-class of Class class (n >= 0) |
0 | otherwise |
Definition at line 441 of file class.c.
Referenced by make_metaclass().
#define METACLASS_OF | ( | k | ) | RBASIC(k)->klass |
Definition at line 433 of file class.c.
Referenced by make_metaclass(), make_singleton_class(), and rb_singleton_class_has_metaclass_p().
#define SET_METACLASS_OF | ( | k, | |
cls | |||
) | RBASIC_SET_CLASS(k, cls) |
Definition at line 434 of file class.c.
Referenced by make_metaclass(), and make_singleton_class().
#define SPECIAL_SINGLETON | ( | x, | |
c | |||
) |
Definition at line 1563 of file class.c.
Referenced by special_singleton_class_of().
|
static |
Definition at line 876 of file class.c.
References ID_TABLE_CONTINUE, and rb_add_refined_method_entry().
Referenced by include_modules_at().
Definition at line 535 of file class.c.
References rb_class_boot(), rb_cObject, rb_const_set(), rb_intern, and rb_name_class().
Referenced by Init_class_hierarchy().
Allocates a struct RClass for a new class.
flags | initial value for basic.flags of the returned class. |
klass | the class of the returned class. |
klass
must refer Class
class or an ancestor of Class. initialize
'd.Definition at line 163 of file class.c.
References FL_PROMOTED1, FL_WB_PROTECTED, NEWOBJ_OF, Qnil, rb_next_class_serial(), RCLASS_EXT, RCLASS_REFINED_CLASS, RCLASS_SERIAL, RCLASS_SET_ORIGIN(), RGENGC_WB_PROTECTED_CLASS, T_MASK, and ZALLOC.
Referenced by rb_class_boot(), rb_include_class_new(), rb_module_new(), rb_prepend_module(), and rb_singleton_class_clone_and_attach().
Definition at line 139 of file class.c.
References rb_class_remove_from_module_subclasses().
Referenced by rb_class_detach_module_subclasses().
Definition at line 127 of file class.c.
References rb_class_remove_from_super_subclasses().
Referenced by rb_class_detach_subclasses().
Definition at line 299 of file class.c.
References FL_SINGLETON, FL_TEST, rb_cBasicObject, rb_eTypeError, rb_raise(), and RCLASS_SUPER.
Referenced by rb_mod_init_copy().
|
static |
Definition at line 1178 of file class.c.
References BUILTIN_TYPE, FL_SINGLETON, FL_TEST, func, method_entry_arg::list, method_entry_i(), mod, rb_ary_new(), rb_id_table_foreach(), rb_scan_args(), RCLASS_M_TBL, RCLASS_ORIGIN, RCLASS_SUPER, recur, method_entry_arg::recur, RTEST, st_foreach, st_free_table, st_init_numtable, T_ICLASS, and TRUE.
Referenced by rb_class_instance_methods(), rb_class_private_instance_methods(), rb_class_protected_instance_methods(), rb_class_public_instance_methods(), rb_obj_methods(), rb_obj_private_methods(), rb_obj_protected_methods(), and rb_obj_public_methods().
|
static |
Definition at line 281 of file class.c.
References ALLOC, rb_const_entry_struct::file, ID_TABLE_CONTINUE, clone_const_arg::klass, MEMCPY, Qundef, rb_id_table_insert(), RB_OBJ_WRITTEN, clone_const_arg::tbl, and rb_const_entry_struct::value.
Referenced by clone_const_i().
|
static |
Definition at line 293 of file class.c.
References clone_const().
Referenced by rb_mod_init_copy(), and rb_singleton_class_clone_and_attach().
|
static |
Definition at line 250 of file class.c.
References rb_method_definition_struct::body, rb_method_iseq_struct::cref, rb_method_entry_struct::def, rb_method_definition_struct::iseq, rb_method_iseq_struct::iseqptr, METHOD_ENTRY_VISI, rb_add_method_iseq(), rb_method_entry_set(), rb_vm_rewrite_cref(), rb_method_definition_struct::type, and VM_METHOD_TYPE_ISEQ.
Referenced by clone_method_i().
|
static |
Definition at line 268 of file class.c.
References clone_method(), ID_TABLE_CONTINUE, clone_method_arg::new_klass, and clone_method_arg::old_klass.
Referenced by rb_mod_init_copy(), and rb_singleton_class_clone_and_attach().
Definition at line 853 of file class.c.
References Check_Type, NIL_P, OBJ_INFECT, rb_eArgError, rb_frozen_class_p(), rb_raise(), rb_refinement_module_get_refined_class(), and T_MODULE.
Referenced by rb_include_module(), and rb_prepend_module().
Definition at line 883 of file class.c.
References add_refined_method_entry_i(), BUILTIN_TYPE, FALSE, FL_SET, FL_TEST, rb_clear_constant_cache(), rb_clear_method_cache_by_class(), rb_id_table_foreach(), rb_id_table_size(), rb_include_class_new(), rb_module_add_to_subclasses_list(), rb_refinement_module_get_refined_class(), RBASIC, RCLASS_M_TBL, RCLASS_ORIGIN, RCLASS_SET_SUPER(), RCLASS_SUPER, RMODULE_CONST_TBL, RMODULE_INCLUDED_INTO_REFINEMENT, RMODULE_IS_REFINEMENT, RMODULE_M_TBL, T_CLASS, T_ICLASS, and TRUE.
Referenced by rb_include_class_new(), rb_include_module(), and rb_prepend_module().
void Init_class_hierarchy | ( | void | ) |
Definition at line 546 of file class.c.
References boot_defclass(), rb_cBasicObject, rb_cClass, rb_class_name(), rb_cModule, rb_cObject, rb_const_set(), rb_gc_register_mark_object(), rb_intern_const, and RBASIC_SET_CLASS.
Referenced by InitVM_Object().
void InitVM_Object | ( | void | ) |
Initializes the world of objects and classes.
At first, the function bootstraps the class hierarchy. It initializes the most fundamental classes and their metaclasses.
BasicObject
Object
Module
Class
After the bootstrap step, the class hierarchy becomes as the following diagram.Then, the function defines classes, modules and methods as usual.
Definition at line 3407 of file object.c.
References CLASS_OF, false_and(), false_or(), false_to_s(), false_xor(), Init_class_hierarchy(), nil_inspect(), nil_to_a(), nil_to_f(), nil_to_h(), nil_to_i(), nil_to_s(), Qfalse, Qnil, Qtrue, rb_any_to_s(), rb_cBasicObject, rb_cClass, rb_cData, rb_cFalseClass, rb_class_allocate_instance(), rb_class_inherited_p(), rb_class_initialize(), rb_class_instance_methods(), rb_class_new_instance(), rb_class_private_instance_methods(), rb_class_protected_instance_methods(), rb_class_public_instance_methods(), rb_class_s_alloc(), rb_class_superclass(), rb_cModule, rb_cNilClass, rb_cObject, rb_cTrueClass, rb_define_alias(), rb_define_alloc_func(), rb_define_class(), rb_define_global_const(), rb_define_global_function(), rb_define_method(), rb_define_module(), rb_define_private_method(), rb_deprecate_constant(), rb_equal(), rb_f_array(), rb_f_float(), rb_f_hash(), rb_f_integer(), rb_f_sprintf(), rb_f_string(), rb_false(), rb_include_module(), rb_mKernel, rb_mod_ancestors(), rb_mod_attr(), rb_mod_attr_accessor(), rb_mod_attr_reader(), rb_mod_attr_writer(), rb_mod_class_variables(), rb_mod_cmp(), rb_mod_const_defined(), rb_mod_const_get(), rb_mod_const_missing(), rb_mod_const_set(), rb_mod_constants(), rb_mod_cvar_defined(), rb_mod_cvar_get(), rb_mod_cvar_set(), rb_mod_deprecate_constant(), rb_mod_eqq(), rb_mod_freeze(), rb_mod_ge(), rb_mod_gt(), rb_mod_include_p(), rb_mod_included_modules(), rb_mod_init_copy(), rb_mod_initialize(), rb_mod_initialize_clone(), rb_mod_lt(), rb_mod_name(), rb_mod_private_constant(), rb_mod_public_constant(), rb_mod_remove_const(), rb_mod_remove_cvar(), rb_mod_singleton_p(), rb_mod_to_s(), rb_module_s_alloc(), rb_obj_alloc(), rb_obj_class(), rb_obj_clone2(), rb_obj_cmp(), rb_obj_dummy(), rb_obj_dup(), rb_obj_equal(), rb_obj_freeze(), rb_obj_frozen_p(), rb_obj_hash(), rb_obj_init_copy(), rb_obj_init_dup_clone(), rb_obj_inspect(), rb_obj_instance_variables, rb_obj_is_instance_of(), rb_obj_is_kind_of(), rb_obj_itself(), rb_obj_ivar_defined(), rb_obj_ivar_get(), rb_obj_ivar_set(), rb_obj_match(), rb_obj_methods(), rb_obj_not(), rb_obj_not_equal(), rb_obj_not_match(), rb_obj_private_methods(), rb_obj_protected_methods(), rb_obj_public_methods(), rb_obj_remove_instance_variable(), rb_obj_singleton_class(), rb_obj_singleton_methods(), rb_obj_taint(), rb_obj_tainted(), rb_obj_tap(), rb_obj_trust(), rb_obj_untaint(), rb_obj_untrust(), rb_obj_untrusted(), rb_true(), rb_undef_alloc_func(), rb_undef_method(), true_and(), true_or(), true_to_s(), and true_xor().
Definition at line 1107 of file class.c.
References ins_methods_push(), METHOD_VISI_PRIVATE, METHOD_VISI_UNDEF, and ST_CONTINUE.
Referenced by rb_class_instance_methods(), rb_obj_methods(), and rb_obj_singleton_methods().
Definition at line 1130 of file class.c.
References ins_methods_push(), METHOD_VISI_PRIVATE, and ST_CONTINUE.
Referenced by rb_class_private_instance_methods(), and rb_obj_private_methods().
Definition at line 1121 of file class.c.
References ins_methods_push(), METHOD_VISI_PROTECTED, and ST_CONTINUE.
Referenced by rb_class_protected_instance_methods(), and rb_obj_protected_methods().
Definition at line 1139 of file class.c.
References ins_methods_push(), METHOD_VISI_PUBLIC, and ST_CONTINUE.
Referenced by rb_class_public_instance_methods(), and rb_obj_public_methods().
Definition at line 1101 of file class.c.
References ID2SYM, and rb_ary_push().
Referenced by ins_methods_i(), ins_methods_priv_i(), ins_methods_prot_i(), and ins_methods_pub_i().
Creates a metaclass of klass.
klass | a class |
Definition at line 486 of file class.c.
References ENSURE_EIGENCLASS, FL_SET, FL_SINGLETON, META_CLASS_OF_CLASS_CLASS_P, METACLASS_OF, OBJ_INFECT, Qundef, rb_cClass, rb_class_boot(), rb_singleton_class_attached(), RB_TYPE_P, RCLASS_SET_SUPER(), RCLASS_SUPER, SET_METACLASS_OF, and T_ICLASS.
Referenced by rb_make_metaclass().
Creates a singleton class for obj.
Definition at line 520 of file class.c.
References FL_SET, FL_SINGLETON, METACLASS_OF, rb_class_boot(), rb_class_real(), rb_singleton_class_attached(), RBASIC, RBASIC_SET_CLASS, and SET_METACLASS_OF.
Referenced by rb_make_metaclass().
|
static |
Definition at line 1153 of file class.c.
References rb_method_entry_struct::def, ID_TABLE_CONTINUE, method_entry_arg::list, METHOD_ENTRY_VISI, METHOD_VISI_UNDEF, rb_method_entry_struct::owner, Qnil, rb_resolve_refined_method(), method_entry_arg::recur, st_add_direct, st_data_t, st_lookup, rb_method_definition_struct::type, UNDEFINED_METHOD_ENTRY_P, and VM_METHOD_TYPE_REFINED.
Referenced by class_instance_method_list(), and rb_obj_singleton_methods().
|
static |
Definition at line 946 of file class.c.
References rb_method_definition_struct::body, rb_method_entry_struct::def, ID_TABLE_CONTINUE, ID_TABLE_DELETE, NULL, rb_method_refined_struct::orig_me, Qundef, rb_id_table_insert(), rb_method_entry_clone(), rb_method_entry_copy(), RB_OBJ_WRITE, RB_OBJ_WRITTEN, RCLASS_M_TBL, rb_method_definition_struct::refined, rb_method_definition_struct::type, and VM_METHOD_TYPE_REFINED.
Referenced by rb_prepend_module().
void rb_check_inheritable | ( | VALUE | super | ) |
Ensures a class can be derived from super.
super | a reference to an object. |
TypeError | if super is not a Class or super is a singleton class. |
Definition at line 220 of file class.c.
References FL_SINGLETON, PRIsVALUE, rb_cClass, rb_eTypeError, rb_obj_class(), rb_raise(), RB_TYPE_P, RBASIC, and T_CLASS.
Referenced by rb_class_initialize(), and rb_class_new().
A utility function that wraps class_alloc.
allocates a class and initializes safely.
super | a class from which the new class derives. |
Definition at line 201 of file class.c.
References class_alloc(), OBJ_INFECT, rb_cClass, RCLASS_M_TBL_INIT(), RCLASS_SET_SUPER(), and T_CLASS.
Referenced by boot_defclass(), make_metaclass(), make_singleton_class(), rb_class_new(), and rb_class_s_alloc().
void rb_class_detach_module_subclasses | ( | VALUE | klass | ) |
Definition at line 145 of file class.c.
References class_detach_module_subclasses(), Qnil, and rb_class_foreach_subclass().
Referenced by obj_free().
void rb_class_detach_subclasses | ( | VALUE | klass | ) |
Definition at line 133 of file class.c.
References class_detach_subclasses(), Qnil, and rb_class_foreach_subclass().
Referenced by obj_free().
Definition at line 113 of file class.c.
References f, rb_subclass_entry::klass, rb_subclass_entry::next, and RCLASS_EXT.
Referenced by check_override_opt_method(), rb_class_clear_method_cache(), rb_class_detach_module_subclasses(), and rb_class_detach_subclasses().
Calls Class::inherited.
super | A class which will be called #inherited. NULL means Object class. |
klass | A Class object which derived from super |
Class::inherited's
returns Class
object. Definition at line 620 of file class.c.
References CONST_ID, rb_cObject, and rb_funcall().
Referenced by anonymous_struct(), rb_class_initialize(), rb_define_class(), and rb_define_class_id_under().
Definition at line 1241 of file class.c.
References class_instance_method_list(), and ins_methods_i().
Referenced by InitVM_Object().
Creates a new class.
super | a class from which the new class derives. |
TypeError | super is not inheritable. |
TypeError | super is the Class class. |
Definition at line 242 of file class.c.
References Check_Type, rb_check_inheritable(), rb_class_boot(), and T_CLASS.
Referenced by anonymous_struct(), Init_IO(), Init_VM(), and rb_define_class_id().
Definition at line 1279 of file class.c.
References class_instance_method_list(), and ins_methods_priv_i().
Referenced by InitVM_Object().
Definition at line 1256 of file class.c.
References class_instance_method_list(), and ins_methods_prot_i().
Referenced by InitVM_Object().
Definition at line 1294 of file class.c.
References class_instance_method_list(), and ins_methods_pub_i().
Referenced by InitVM_Object().
void rb_class_remove_from_module_subclasses | ( | VALUE | klass | ) |
Definition at line 94 of file class.c.
References rb_subclass_entry::klass, rb_subclass_entry::next, NULL, RCLASS_EXT, and xfree().
Referenced by class_detach_module_subclasses(), and obj_free().
void rb_class_remove_from_super_subclasses | ( | VALUE | klass | ) |
Definition at line 76 of file class.c.
References rb_subclass_entry::klass, rb_subclass_entry::next, NULL, RCLASS_EXT, and xfree().
Referenced by class_detach_subclasses(), obj_free(), and RCLASS_SET_SUPER().
Definition at line 36 of file class.c.
References ALLOC, rb_subclass_entry::klass, rb_subclass_entry::next, NULL, Qundef, and RCLASS_EXT.
Referenced by RCLASS_SET_SUPER().
Defines a top-level class.
name | name of the class |
super | a class from which the new class will derive. |
TypeError | if the constant name name is already taken but the constant is not a Class . |
TypeError | if the class is already defined but the class can not be reopened because its superclass is not super. |
ArgumentError | if the super is NULL. |
Definition at line 646 of file class.c.
References id, PRIsVALUE, rb_class_inherited(), rb_class_real(), rb_cObject, rb_const_defined(), rb_const_get(), rb_const_set(), rb_define_class_id(), rb_eArgError, rb_eTypeError, rb_intern, rb_name_class(), rb_obj_class(), rb_raise(), RB_TYPE_P, rb_vm_add_root_module(), RCLASS_SUPER, and T_CLASS.
Referenced by Init_Array(), Init_bigdecimal(), Init_Binding(), Init_Complex(), Init_Cont(), Init_date_core(), Init_dbm(), Init_Dir(), Init_Encoding(), Init_Exception(), Init_File(), Init_gdbm(), Init_Hash(), Init_IO(), Init_Numeric(), Init_pathname(), Init_Proc(), Init_Rational(), Init_Regexp(), Init_sdbm(), Init_socket(), Init_String(), Init_stringio(), Init_strscan(), Init_Thread(), Init_thread_sync(), Init_Time(), Init_VM(), Init_vm_eval(), Init_vm_trace(), Init_win32ole(), Init_win32ole_error(), Init_win32ole_event(), Init_win32ole_method(), Init_win32ole_param(), Init_win32ole_record(), Init_win32ole_type(), Init_win32ole_typelib(), Init_win32ole_variable(), Init_win32ole_variant(), InitVM_Enumerator(), InitVM_escape(), InitVM_Object(), InitVM_Random(), InitVM_Struct(), parser_compile_error(), rsock_init_addrinfo(), rsock_init_basicsocket(), rsock_init_ipsocket(), rsock_init_socket_init(), rsock_init_sockssocket(), rsock_init_tcpserver(), rsock_init_tcpsocket(), rsock_init_udpsocket(), rsock_init_unixserver(), rsock_init_unixsocket(), ruby_Init_Continuation_body(), and struct_define_without_accessor().
Defines a new class.
id | ignored |
super | A class from which the new class will derive. NULL means Object class. |
TypeError | if super is not a Class object. |
Definition at line 599 of file class.c.
References rb_class_new(), rb_cObject, rb_make_metaclass(), and RBASIC.
Referenced by rb_define_class(), and rb_define_class_id_under().
Defines a class under the namespace of outer.
outer | a class which contains the new class. |
id | name of the new class |
super | a class from which the new class will derive. NULL means Object class. |
TypeError | if the constant name name is already taken but the constant is not a Class . |
TypeError | if the class is already defined but the class can not be reopened because its superclass is not super. |
Definition at line 716 of file class.c.
References PRIsVALUE, rb_class_inherited(), rb_class_path(), rb_class_real(), rb_const_defined_at(), rb_const_get_at(), rb_const_set(), rb_define_class_id(), rb_eArgError, rb_eTypeError, rb_gc_register_mark_object(), rb_id2str, rb_obj_class(), rb_raise(), rb_set_class_path_string(), RB_TYPE_P, RCLASS_SUPER, and T_CLASS.
Referenced by new_struct(), and rb_define_class_under().
Defines a class under the namespace of outer.
outer | a class which contains the new class. |
name | name of the new class |
super | a class from which the new class will derive. NULL means Object class. |
TypeError | if the constant name name is already taken but the constant is not a Class . |
TypeError | if the class is already defined but the class can not be reopened because its superclass is not super. |
Definition at line 693 of file class.c.
References rb_define_class_id_under(), and rb_intern.
Referenced by exp1(), Init_bubblebabble(), Init_Complex(), Init_cparse(), Init_digest(), Init_Exception(), Init_fiddle(), Init_fiddle_closure(), Init_fiddle_function(), Init_fiddle_handle(), Init_fiddle_pointer(), Init_File(), Init_GC(), Init_generator(), Init_IO(), Init_ISeq(), Init_md5(), Init_objspace(), Init_openssl(), Init_ossl_asn1(), Init_ossl_bn(), Init_ossl_cipher(), Init_ossl_config(), Init_ossl_dh(), Init_ossl_digest(), Init_ossl_dsa(), Init_ossl_engine(), Init_ossl_hmac(), Init_ossl_ns_spki(), Init_ossl_ocsp(), Init_ossl_pkcs12(), Init_ossl_pkcs5(), Init_ossl_pkcs7(), Init_ossl_pkey(), Init_ossl_rand(), Init_ossl_rsa(), Init_ossl_ssl(), Init_ossl_ssl_session(), Init_ossl_x509attr(), Init_ossl_x509cert(), Init_ossl_x509crl(), Init_ossl_x509ext(), Init_ossl_x509name(), Init_ossl_x509req(), Init_ossl_x509revoked(), Init_ossl_x509store(), Init_parser(), Init_psych_emitter(), Init_psych_parser(), Init_psych_to_ruby(), Init_psych_yaml_tree(), Init_pty(), Init_Rational(), Init_rmd160(), Init_sha1(), Init_strscan(), Init_thread_sync(), Init_vm_backtrace(), Init_zlib(), InitVM_Enumerator(), InitVM_process(), InitVM_transcode(), rb_struct_define_under(), rsock_init_ancdata(), rsock_init_sockifaddr(), rsock_init_sockopt(), set_syserr(), and struct_define_without_accessor().
Definition at line 768 of file class.c.
References id, PRIsVALUE, rb_cObject, rb_const_defined(), rb_const_get(), rb_const_set(), rb_define_module_id(), rb_eTypeError, rb_intern, rb_obj_class(), rb_raise(), RB_TYPE_P, rb_vm_add_root_module(), and T_MODULE.
Referenced by exp1(), Init_bigdecimal(), Init_bubblebabble(), Init_Comparable(), Init_coverage(), Init_cparse(), Init_digest(), Init_Enumerable(), Init_etc(), Init_Exception(), Init_fcntl(), Init_fiddle(), Init_fiddle_closure(), Init_File(), Init_GC(), Init_generator(), Init_marshal(), Init_md5(), Init_nkf(), Init_object_tracing(), Init_objspace(), Init_objspace_dump(), Init_openssl(), Init_ossl_asn1(), Init_ossl_bn(), Init_ossl_cipher(), Init_ossl_config(), Init_ossl_digest(), Init_ossl_engine(), Init_ossl_hmac(), Init_ossl_ns_spki(), Init_ossl_ocsp(), Init_ossl_pkcs12(), Init_ossl_pkcs5(), Init_ossl_pkcs7(), Init_ossl_pkey(), Init_ossl_rand(), Init_ossl_ssl(), Init_ossl_ssl_session(), Init_ossl_x509(), Init_ossl_x509attr(), Init_ossl_x509cert(), Init_ossl_x509crl(), Init_ossl_x509ext(), Init_ossl_x509name(), Init_ossl_x509req(), Init_ossl_x509revoked(), Init_ossl_x509store(), Init_parser(), Init_psych(), Init_psych_emitter(), Init_psych_parser(), Init_psych_to_ruby(), Init_psych_yaml_tree(), Init_pty(), Init_readline(), Init_rmd160(), Init_sha1(), Init_signal(), Init_sizeof(), Init_syslog(), Init_zlib(), InitVM_Object(), InitVM_process(), InitVM_resolv(), and process_options().
Definition at line 757 of file class.c.
References rb_module_new(), and rb_name_class().
Referenced by rb_define_module(), and rb_define_module_id_under().
Definition at line 796 of file class.c.
References PRIsVALUE, rb_const_defined_at(), rb_const_get_at(), rb_const_set(), rb_define_module_id(), rb_eTypeError, rb_gc_register_mark_object(), rb_id2str, rb_obj_class(), rb_raise(), rb_set_class_path_string(), RB_TYPE_P, and T_MODULE.
Referenced by rb_define_module_under().
Definition at line 790 of file class.c.
References rb_define_module_id_under(), and rb_intern.
Referenced by Init_bubblebabble(), init_constants(), Init_digest(), Init_File(), Init_GC(), Init_generator(), Init_IO(), Init_ossl_asn1(), Init_ossl_dh(), Init_ossl_dsa(), Init_ossl_ns_spki(), Init_ossl_ocsp(), Init_ossl_pkcs5(), Init_ossl_pkey(), Init_ossl_rand(), Init_ossl_rsa(), Init_ossl_ssl(), Init_ossl_ssl_session(), Init_ossl_x509(), Init_ossl_x509attr(), Init_ossl_x509cert(), Init_ossl_x509crl(), Init_ossl_x509ext(), Init_ossl_x509name(), Init_ossl_x509req(), Init_ossl_x509revoked(), Init_ossl_x509store(), Init_parser(), Init_psych_to_ruby(), Init_psych_yaml_tree(), Init_stringio(), Init_syslog(), Init_win32ole_variant_m(), InitVM_console(), InitVM_escape(), InitVM_process(), InitVM_Random(), and InitVM_resolv().
void rb_freeze_singleton_class | ( | VALUE | x | ) |
Definition at line 1638 of file class.c.
References FL_FREEZE, FL_SINGLETON, FL_TEST, OBJ_FREEZE_RAW, RBASIC, RBASIC_CLASS, and RCLASS_ORIGIN.
Referenced by rb_obj_freeze_inline().
Definition at line 818 of file class.c.
References BUILTIN_TYPE, class_alloc(), include_modules_at(), OBJ_INFECT, OBJ_WB_UNPROTECT, rb_cClass, rb_id_table_create(), RB_TYPE_P, RBASIC, RBASIC_SET_CLASS, RCLASS_CONST_TBL, RCLASS_IV_TBL, RCLASS_M_TBL, RCLASS_ORIGIN, RCLASS_SET_SUPER(), st_init_numtable, and T_ICLASS.
Referenced by add_activated_refinement(), include_modules_at(), rb_using_refinement(), and umethod_bind().
Definition at line 864 of file class.c.
References ensure_includable(), include_modules_at(), rb_eArgError, rb_raise(), RCLASS_ORIGIN, and TRUE.
Referenced by Init_Array(), Init_date_core(), Init_dbm(), Init_digest(), Init_Dir(), Init_File(), Init_GC(), Init_gdbm(), Init_Hash(), Init_IO(), Init_Numeric(), Init_ossl_asn1(), Init_ossl_ssl(), Init_ossl_x509name(), Init_Range(), Init_sdbm(), Init_String(), Init_stringio(), Init_syslog(), Init_Time(), Init_zlib(), InitVM_Enumerator(), InitVM_Object(), InitVM_Random(), InitVM_Struct(), rb_extend_object(), and rb_mod_append_features().
Creates a new singleton class for an object.
obj | An object. |
unused | ignored. |
Definition at line 577 of file class.c.
References BUILTIN_TYPE, make_metaclass(), make_singleton_class(), and T_CLASS.
Referenced by anonymous_struct(), rb_class_initialize(), rb_define_class_id(), and singleton_class_of().
Definition at line 1085 of file class.c.
References BUILTIN_TYPE, rb_ary_new(), rb_ary_push(), RBASIC, RCLASS_ORIGIN, RCLASS_SUPER, and T_ICLASS.
Referenced by InitVM_Object(), and rb_threadptr_pending_interrupt_check_mask().
Definition at line 1053 of file class.c.
References BUILTIN_TYPE, Check_Type, Qfalse, Qtrue, RBASIC, RCLASS_SUPER, T_ICLASS, and T_MODULE.
Referenced by InitVM_Object().
Definition at line 1017 of file class.c.
References BUILTIN_TYPE, rb_ary_new(), rb_ary_push(), RB_TYPE_P, RBASIC, RCLASS_ORIGIN, RCLASS_SUPER, T_ICLASS, and T_MODULE.
Referenced by InitVM_Object().
Definition at line 314 of file class.c.
References class_init_copy_check(), CLASS_OF, clone_const_i(), clone_method_i(), CONST_ID, FL_SINGLETON, FL_TEST, id, clone_const_arg::klass, clone_method_arg::new_klass, OBJ_INIT_COPY, clone_method_arg::old_klass, rb_free_const_table(), rb_id_table_create(), rb_id_table_foreach(), rb_singleton_class_attached(), rb_singleton_class_clone(), rb_st_copy(), RB_TYPE_P, RBASIC, RBASIC_SET_CLASS, RCLASS_CONST_TBL, RCLASS_EXT, RCLASS_IV_TBL, RCLASS_M_TBL, RCLASS_M_TBL_INIT(), RCLASS_SET_SUPER(), RCLASS_SUPER, st_data_t, st_delete, st_free_table, T_CLASS, and clone_const_arg::tbl.
Referenced by InitVM_Object().
Definition at line 57 of file class.c.
References ALLOC, rb_subclass_entry::klass, rb_subclass_entry::next, NULL, and RCLASS_EXT.
Referenced by include_modules_at().
VALUE rb_module_new | ( | void | ) |
Definition at line 749 of file class.c.
References class_alloc(), rb_cModule, RCLASS_M_TBL_INIT(), and T_MODULE.
Referenced by rb_define_module_id(), rb_eval_string_wrap(), rb_load_internal0(), rb_mod_refine(), and rb_module_s_alloc().
Definition at line 1330 of file class.c.
References class_instance_method_list(), CLASS_OF, ins_methods_i(), rb_check_arity, rb_obj_singleton_methods(), and RTEST.
Referenced by InitVM_Object().
Definition at line 1364 of file class.c.
References class_instance_method_list(), CLASS_OF, and ins_methods_priv_i().
Referenced by InitVM_Object().
Definition at line 1349 of file class.c.
References class_instance_method_list(), CLASS_OF, and ins_methods_prot_i().
Referenced by InitVM_Object().
Definition at line 1379 of file class.c.
References class_instance_method_list(), CLASS_OF, and ins_methods_pub_i().
Referenced by InitVM_Object().
Definition at line 1418 of file class.c.
References CLASS_OF, FL_SINGLETON, FL_TEST, ins_methods_i(), method_entry_arg::list, method_entry_i(), Qtrue, rb_ary_new(), rb_id_table_foreach(), rb_scan_args(), RB_TYPE_P, RCLASS_M_TBL, RCLASS_ORIGIN, RCLASS_SUPER, recur, method_entry_arg::recur, RTEST, st_foreach, st_free_table, st_init_numtable, and T_ICLASS.
Referenced by InitVM_Object(), and rb_obj_methods().
Definition at line 973 of file class.c.
References class_alloc(), ensure_includable(), FALSE, include_modules_at(), move_refined_method(), OBJ_WB_UNPROTECT, rb_eArgError, rb_id_table_foreach(), rb_raise(), rb_vm_check_redefinition_by_prepend(), RCLASS_M_TBL, RCLASS_M_TBL_INIT(), RCLASS_ORIGIN, RCLASS_SET_ORIGIN(), RCLASS_SET_SUPER(), RCLASS_SUPER, and T_ICLASS.
Referenced by InitVM_escape(), r_object0(), and rb_mod_prepend_features().
Returns the singleton class of obj.
Creates it if necessary.
obj | an arbitrary object. |
TypeError | if obj is a Integer or a Symbol. |
Definition at line 1689 of file class.c.
References ENSURE_EIGENCLASS, RB_TYPE_P, singleton_class_of(), and T_CLASS.
Referenced by Init_date_core(), Init_eval(), Init_eval_method(), Init_nkf(), Init_Proc(), Init_Time(), Init_top_self(), Init_VM(), InitVM_process(), InitVM_resolv(), num_sadded(), r_object0(), rb_extend_object(), rb_mod_define_method(), rb_mod_modfunc(), rb_mod_private_method(), rb_mod_public_method(), rb_obj_define_method(), rb_obj_singleton_class(), singleton_class_for_eval(), and vm_define_method().
Attach a object to a singleton class.
Definition at line 421 of file class.c.
References FL_SINGLETON, FL_TEST, id_attached, rb_class_ivar_set(), RCLASS_IV_TBL, and st_init_numtable.
Referenced by make_metaclass(), make_singleton_class(), rb_clone_setup(), rb_mod_init_copy(), rb_obj_clone2(), and rb_singleton_class_clone_and_attach().
Definition at line 365 of file class.c.
References Qundef, and rb_singleton_class_clone_and_attach().
Referenced by rb_clone_setup(), rb_mod_init_copy(), and rb_singleton_class_clone_and_attach().
Definition at line 371 of file class.c.
References BUILTIN_TYPE, class_alloc(), clone_const_i(), clone_method_i(), FL_SET, FL_SINGLETON, FL_TEST, clone_const_arg::klass, clone_method_arg::new_klass, clone_method_arg::old_klass, Qundef, rb_id_table_create(), rb_id_table_foreach(), rb_singleton_class_attached(), rb_singleton_class_clone(), rb_st_copy(), RBASIC, RBASIC_SET_CLASS, RCLASS_CONST_TBL, RCLASS_EXT, RCLASS_IV_TBL, RCLASS_M_TBL, RCLASS_M_TBL_INIT(), RCLASS_SET_SUPER(), RCLASS_SUPER, T_CLASS, and clone_const_arg::tbl.
Referenced by rb_obj_clone2(), and rb_singleton_class_clone().
Returns the singleton class of obj, or nil if obj is not a singleton object.
obj | an arbitrary object. |
Definition at line 1658 of file class.c.
References FL_SINGLETON, FL_TEST, id_attached, Qnil, rb_ivar_get(), rb_special_singleton_class(), RBASIC, and SPECIAL_CONST_P.
Referenced by rb_obj_singleton_method().
|
static |
Definition at line 444 of file class.c.
References id_attached, METACLASS_OF, and rb_attr_get().
Referenced by rb_singleton_class_internal_p().
int rb_singleton_class_internal_p | ( | VALUE | sklass | ) |
Definition at line 450 of file class.c.
References id_attached, rb_attr_get(), rb_singleton_class_has_metaclass_p(), RB_TYPE_P, and T_CLASS.
Referenced by internal_object_p().
Definition at line 1579 of file class.c.
References special_singleton_class_of().
Referenced by rb_singleton_class_get(), and singleton_class_for_eval().
|
static |
Definition at line 186 of file class.c.
References rb_id_table_create(), and RCLASS_M_TBL.
Referenced by rb_class_boot(), rb_mod_init_copy(), rb_module_new(), rb_prepend_module(), and rb_singleton_class_clone_and_attach().
Returns the singleton class of obj. Creates it if necessary.
Definition at line 1594 of file class.c.
References BUILTIN_TYPE, FIXNUM_P, FL_SINGLETON, FL_TAINT, FL_TEST, FL_TEST_RAW, FL_UNSET, FLONUM_P, id_attached, NIL_P, OBJ_TAINT, OBJ_TAINTED, rb_bug(), rb_eTypeError, RB_FL_SET_RAW, rb_ivar_get(), rb_make_metaclass(), RB_OBJ_FROZEN_RAW, rb_raise(), RBASIC, RCLASS_SERIAL, RSTRING_FSTR, SPECIAL_CONST_P, special_singleton_class_of(), STATIC_SYM_P, T_BIGNUM, T_FLOAT, T_STRING, and T_SYMBOL.
Referenced by rb_define_singleton_method(), and rb_singleton_class().
Definition at line 1570 of file class.c.
References Qfalse, Qnil, Qtrue, rb_cFalseClass, rb_cNilClass, rb_cTrueClass, and SPECIAL_SINGLETON.
Referenced by rb_special_singleton_class(), and singleton_class_of().