diff options
author | Peter Zhu <peter@peterzhu.ca> | 2023-04-14 16:28:14 -0400 |
---|---|---|
committer | Peter Zhu <peter@peterzhu.ca> | 2023-04-16 11:06:31 -0400 |
commit | a0d1069e03fd52355e26d8cc3cbbed34632876e6 (patch) | |
tree | 3abec6a571c2a53631fc1d385e2bf7fe429251af /class.c | |
parent | 24b137336b71f77bf9ae9c532c0a5520709f73e8 (diff) |
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.
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/7719
Diffstat (limited to 'class.c')
-rw-r--r-- | class.c | 10 |
1 files changed, 1 insertions, 9 deletions
@@ -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; |