Project

General

Profile

« Previous | Next » 

Revision e056ac59

Added by yugui (Yuki Sonoda) about 16 years ago

  • class.c: refactored singleton class related matters.
    Handles eigenclasses and plain classes transparently.

    (make_metaclass): renamed from make_metametaclass.
    (METACLASS_OF): new utility macro
    (META_CLASS_OF_CLASS_CLASS): ditto.
    (ENSURE_EIGENCLASS): ditto.
    (make_singleton_class): extracted from rb_singleton_class.
    (boot_defclass): moved from object.c
    (Init_class_hierarchy): extracted from Init_Object.
    (rb_make_metaclass): refactored.
    (singleton_class_of): extracted from rb_singleton_class.
    (rb_singleton_class): refactored.
    (rb_define_singleton_method): it needs a metaclass only
    but not its metametaclass.

  • object.c: booting class hierarchy was moved to class.c
    for keeping dependency between compilation units least.
    (Init_Object): extracting the booting into
    Init_class_hierarchy.
    (boot_defclass): moved to class.c.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24720 b2dd03c8-39d4-4d8f-98ff-823fe69b080e