summaryrefslogtreecommitdiff
path: root/class.c
diff options
context:
space:
mode:
authorMatt Valentine-House <matt@eightbitraptor.com>2021-01-26 16:49:57 +0000
committerAaron Patterson <aaron.patterson@gmail.com>2021-02-01 08:42:54 -0800
commite0f999a2ed8b1b9298e51d5dfa902044709ce00a (patch)
treee5b4a93fd71bbb51b909686968d85951c33b4bb9 /class.c
parent7341b0146557bccd783484b279569b530c888a14 (diff)
downloadruby-e0f999a2ed8b1b9298e51d5dfa902044709ce00a.tar.gz
Add RCLASS_SUBCLASSES Macro
Diffstat (limited to 'class.c')
-rw-r--r--class.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/class.c b/class.c
index 2a18eabd12..f97956c1d3 100644
--- a/class.c
+++ b/class.c
@@ -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);