From a0d1069e03fd52355e26d8cc3cbbed34632876e6 Mon Sep 17 00:00:00 2001 From: Peter Zhu Date: Fri, 14 Apr 2023 16:28:14 -0400 Subject: Make classes embedded on 32 bit Classes are now exactly 80 bytes when embedded, which perfectly fits the 3rd size pool on 32 bit systems. --- class.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) (limited to 'class.c') diff --git a/class.c b/class.c index 8677a26d2f..1ae235d6ab 100644 --- a/class.c +++ b/class.c @@ -193,22 +193,14 @@ rb_class_detach_module_subclasses(VALUE klass) static VALUE class_alloc(VALUE flags, VALUE klass) { - size_t alloc_size = sizeof(struct RClass); - -#if RCLASS_EXT_EMBEDDED - alloc_size += sizeof(rb_classext_t); -#endif + size_t alloc_size = sizeof(struct RClass) + sizeof(rb_classext_t); flags &= T_MASK; flags |= FL_PROMOTED1 /* start from age == 2 */; if (RGENGC_WB_PROTECTED_CLASS) flags |= FL_WB_PROTECTED; NEWOBJ_OF(obj, struct RClass, klass, flags, alloc_size, 0); -#if RCLASS_EXT_EMBEDDED memset(RCLASS_EXT(obj), 0, sizeof(rb_classext_t)); -#else - obj->ptr = ZALLOC(rb_classext_t); -#endif /* ZALLOC RCLASS_CONST_TBL(obj) = 0; -- cgit v1.2.1