diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2021-08-20 14:03:08 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2021-08-20 14:04:07 +0900 |
commit | b32987a3d783d6c7a5dec9a9a9c3550ca7c549d0 (patch) | |
tree | 2cb0633b5486e1c48aad2cc2ef0bf576f2fc787c /class.c | |
parent | 754adbee91c2d4a4e84e9271724ca33f630d1916 (diff) | |
download | ruby-b32987a3d783d6c7a5dec9a9a9c3550ca7c549d0.tar.gz |
Simplify repeated member access macros
Diffstat (limited to 'class.c')
-rw-r--r-- | class.c | 28 |
1 files changed, 14 insertions, 14 deletions
@@ -89,14 +89,14 @@ rb_module_add_to_subclasses_list(VALUE module, VALUE iclass) void rb_class_remove_from_super_subclasses(VALUE klass) { - rb_subclass_entry_t *entry; + rb_subclass_entry_t **prev = RCLASS_PARENT_SUBCLASSES(klass); - if (RCLASS_PARENT_SUBCLASSES(klass)) { - entry = *RCLASS_PARENT_SUBCLASSES(klass); + if (prev) { + rb_subclass_entry_t *entry = *prev, *next = entry->next; - *RCLASS_PARENT_SUBCLASSES(klass) = entry->next; - if (entry->next) { - RCLASS_PARENT_SUBCLASSES(entry->next->klass) = RCLASS_PARENT_SUBCLASSES(klass); + *prev = next; + if (next) { + RCLASS_PARENT_SUBCLASSES(next->klass) = prev; } xfree(entry); } @@ -107,14 +107,14 @@ rb_class_remove_from_super_subclasses(VALUE klass) void rb_class_remove_from_module_subclasses(VALUE klass) { - rb_subclass_entry_t *entry; + rb_subclass_entry_t **prev = RCLASS_MODULE_SUBCLASSES(klass); - if (RCLASS_MODULE_SUBCLASSES(klass)) { - entry = *RCLASS_MODULE_SUBCLASSES(klass); - *RCLASS_MODULE_SUBCLASSES(klass) = entry->next; + if (prev) { + rb_subclass_entry_t *entry = *prev, *next = entry->next; - if (entry->next) { - RCLASS_MODULE_SUBCLASSES(entry->next->klass) = RCLASS_MODULE_SUBCLASSES(klass); + *prev = next; + if (next) { + RCLASS_MODULE_SUBCLASSES(next->klass) = prev; } xfree(entry); @@ -1124,10 +1124,10 @@ do_include_modules_at(const VALUE klass, VALUE c, VALUE module, int search_super add_subclass = FALSE; } - { + if (add_subclass) { VALUE m = module; if (BUILTIN_TYPE(m) == T_ICLASS) m = RBASIC(m)->klass; - if (add_subclass) rb_module_add_to_subclasses_list(m, iclass); + rb_module_add_to_subclasses_list(m, iclass); } if (FL_TEST(klass, RMODULE_IS_REFINEMENT)) { |