summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--class.c16
-rw-r--r--internal/class.h1
2 files changed, 9 insertions, 8 deletions
diff --git a/class.c b/class.c
index 2e084d1a96..22f1208179 100644
--- a/class.c
+++ b/class.c
@@ -76,11 +76,11 @@ rb_module_add_to_subclasses_list(VALUE module, VALUE iclass)
head = RCLASS_EXT(module)->subclasses;
if (head) {
entry->next = head;
- RCLASS_EXT(head->klass)->module_subclasses = &entry->next;
+ RCLASS_MODULE_SUBCLASSES(head->klass) = &entry->next;
}
RCLASS_EXT(module)->subclasses = entry;
- RCLASS_EXT(iclass)->module_subclasses = &RCLASS_EXT(module)->subclasses;
+ RCLASS_MODULE_SUBCLASSES(iclass) = &RCLASS_EXT(module)->subclasses;
}
void
@@ -106,18 +106,18 @@ rb_class_remove_from_module_subclasses(VALUE klass)
{
rb_subclass_entry_t *entry;
- if (RCLASS_EXT(klass)->module_subclasses) {
- entry = *RCLASS_EXT(klass)->module_subclasses;
- *RCLASS_EXT(klass)->module_subclasses = entry->next;
+ if (RCLASS_MODULE_SUBCLASSES(klass)) {
+ entry = *RCLASS_MODULE_SUBCLASSES(klass);
+ *RCLASS_MODULE_SUBCLASSES(klass) = entry->next;
if (entry->next) {
- RCLASS_EXT(entry->next->klass)->module_subclasses = RCLASS_EXT(klass)->module_subclasses;
+ RCLASS_MODULE_SUBCLASSES(entry->next->klass) = RCLASS_MODULE_SUBCLASSES(klass);
}
xfree(entry);
}
- RCLASS_EXT(klass)->module_subclasses = NULL;
+ RCLASS_MODULE_SUBCLASSES(klass) = NULL;
}
void
@@ -183,7 +183,7 @@ class_alloc(VALUE flags, VALUE klass)
RCLASS_SET_SUPER((VALUE)obj, 0);
RCLASS_EXT(obj)->subclasses = NULL;
RCLASS_PARENT_SUBCLASSES(obj) = NULL;
- RCLASS_EXT(obj)->module_subclasses = NULL;
+ RCLASS_MODULE_SUBCLASSES(obj) = NULL;
*/
RCLASS_SET_ORIGIN((VALUE)obj, (VALUE)obj);
RCLASS_SERIAL(obj) = rb_next_class_serial();
diff --git a/internal/class.h b/internal/class.h
index da1df196be..1697ae1276 100644
--- a/internal/class.h
+++ b/internal/class.h
@@ -93,6 +93,7 @@ typedef struct rb_classext_struct rb_classext_t;
#endif
#define RCLASS_INCLUDER(c) (RCLASS_EXT(c)->includer)
#define RCLASS_PARENT_SUBCLASSES(c) (RCLASS_EXT(c)->parent_subclasses)
+#define RCLASS_MODULE_SUBCLASSES(c) (RCLASS_EXT(c)->module_subclasses)
#define RICLASS_IS_ORIGIN FL_USER5
#define RCLASS_CLONED FL_USER6