From 7989a2ff46e0dc8dc26b1571215768801fa04463 Mon Sep 17 00:00:00 2001 From: Peter Zhu Date: Fri, 17 Oct 2025 17:28:55 -0400 Subject: [PATCH] Preallocate capacity for id table in rb_singleton_class_clone_and_attach We know the exact capacity for the constant table created in rb_singleton_class_clone_and_attach so we can preallocate it. --- class.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/class.c b/class.c index c8bf624140..77f2fba516 100644 --- a/class.c +++ b/class.c @@ -1193,7 +1193,7 @@ rb_singleton_class_clone_and_attach(VALUE obj, VALUE attach) if (RCLASS_CONST_TBL(klass)) { struct clone_const_arg arg; struct rb_id_table *table; - arg.tbl = table = rb_id_table_create(0); + arg.tbl = table = rb_id_table_create(rb_id_table_size(RCLASS_CONST_TBL(klass))); arg.klass = clone; rb_id_table_foreach(RCLASS_CONST_TBL(klass), clone_const_i, &arg); RCLASS_SET_CONST_TBL(clone, table, false);