summaryrefslogtreecommitdiff
path: root/class.c
diff options
context:
space:
mode:
Diffstat (limited to 'class.c')
-rw-r--r--class.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/class.c b/class.c
index 4ca8c77dee..6d81654142 100644
--- a/class.c
+++ b/class.c
@@ -827,7 +827,9 @@ rb_class_update_superclasses(VALUE klass)
superclasses = class_superclasses_including_self(super);
RCLASS_WRITE_SUPERCLASSES(super, super_depth, superclasses, true, true);
}
- RCLASS_WRITE_SUPERCLASSES(klass, super_depth + 1, superclasses, false, false);
+
+ size_t depth = super_depth == RCLASS_MAX_SUPERCLASS_DEPTH ? super_depth : super_depth + 1;
+ RCLASS_WRITE_SUPERCLASSES(klass, depth, superclasses, false, false);
}
void