aboutsummaryrefslogtreecommitdiffstats
path: root/class.c
diff options
context:
space:
mode:
authorPeter Zhu <peter@peterzhu.ca>2023-04-14 16:28:14 -0400
committerPeter Zhu <peter@peterzhu.ca>2023-04-16 11:06:31 -0400
commita0d1069e03fd52355e26d8cc3cbbed34632876e6 (patch)
tree3abec6a571c2a53631fc1d385e2bf7fe429251af /class.c
parent24b137336b71f77bf9ae9c532c0a5520709f73e8 (diff)
downloadruby-a0d1069e03fd52355e26d8cc3cbbed34632876e6.tar.gz
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.
Diffstat (limited to 'class.c')
-rw-r--r--class.c10
1 files changed, 1 insertions, 9 deletions
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;