diff options
author | Matt Valentine-House <[email protected]> | 2021-01-26 16:49:57 +0000 |
---|---|---|
committer | Aaron Patterson <[email protected]> | 2021-02-01 08:42:54 -0800 |
commit | e0f999a2ed8b1b9298e51d5dfa902044709ce00a (patch) | |
tree | e5b4a93fd71bbb51b909686968d85951c33b4bb9 /class.c | |
parent | 7341b0146557bccd783484b279569b530c888a14 (diff) |
Add RCLASS_SUBCLASSES Macro
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/4124
Diffstat (limited to 'class.c')
-rw-r--r-- | class.c | 20 |
1 files changed, 10 insertions, 10 deletions
@@ -53,14 +53,14 @@ rb_class_subclass_add(VALUE super, VALUE klass) entry->klass = klass; entry->next = NULL; - head = RCLASS_EXT(super)->subclasses; + head = RCLASS_SUBCLASSES(super); if (head) { entry->next = head; RCLASS_PARENT_SUBCLASSES(head->klass) = &entry->next; } - RCLASS_EXT(super)->subclasses = entry; - RCLASS_PARENT_SUBCLASSES(klass) = &RCLASS_EXT(super)->subclasses; + RCLASS_SUBCLASSES(super) = entry; + RCLASS_PARENT_SUBCLASSES(klass) = &RCLASS_SUBCLASSES(super); } } @@ -73,14 +73,14 @@ rb_module_add_to_subclasses_list(VALUE module, VALUE iclass) entry->klass = iclass; entry->next = NULL; - head = RCLASS_EXT(module)->subclasses; + head = RCLASS_SUBCLASSES(module); if (head) { entry->next = head; RCLASS_MODULE_SUBCLASSES(head->klass) = &entry->next; } - RCLASS_EXT(module)->subclasses = entry; - RCLASS_MODULE_SUBCLASSES(iclass) = &RCLASS_EXT(module)->subclasses; + RCLASS_SUBCLASSES(module) = entry; + RCLASS_MODULE_SUBCLASSES(iclass) = &RCLASS_SUBCLASSES(module); } void @@ -123,7 +123,7 @@ rb_class_remove_from_module_subclasses(VALUE klass) void rb_class_foreach_subclass(VALUE klass, void (*f)(VALUE, VALUE), VALUE arg) { - rb_subclass_entry_t *cur = RCLASS_EXT(klass)->subclasses; + rb_subclass_entry_t *cur = RCLASS_SUBCLASSES(klass); /* do not be tempted to simplify this loop into a for loop, the order of operations is important here if `f` modifies the linked list */ @@ -181,7 +181,7 @@ class_alloc(VALUE flags, VALUE klass) RCLASS_M_TBL(obj) = 0; RCLASS_IV_INDEX_TBL(obj) = 0; RCLASS_SET_SUPER((VALUE)obj, 0); - RCLASS_EXT(obj)->subclasses = NULL; + RCLASS_SUBCLASSES(obj) = NULL; RCLASS_PARENT_SUBCLASSES(obj) = NULL; RCLASS_MODULE_SUBCLASSES(obj) = NULL; */ @@ -979,7 +979,7 @@ rb_include_module(VALUE klass, VALUE module) rb_raise(rb_eArgError, "cyclic include detected"); if (RB_TYPE_P(klass, T_MODULE)) { - rb_subclass_entry_t *iclass = RCLASS_EXT(klass)->subclasses; + rb_subclass_entry_t *iclass = RCLASS_SUBCLASSES(klass); int do_include = 1; while (iclass) { VALUE check_class = iclass->klass; @@ -1190,7 +1190,7 @@ rb_prepend_module(VALUE klass, VALUE module) rb_vm_check_redefinition_by_prepend(klass); } if (RB_TYPE_P(klass, T_MODULE)) { - rb_subclass_entry_t *iclass = RCLASS_EXT(klass)->subclasses; + rb_subclass_entry_t *iclass = RCLASS_SUBCLASSES(klass); VALUE klass_origin = RCLASS_ORIGIN(klass); struct rb_id_table *klass_m_tbl = RCLASS_M_TBL(klass); struct rb_id_table *klass_origin_m_tbl = RCLASS_M_TBL(klass_origin); |