Namespaces: Don't initialize fields for T_ICLASS

ICLASS don't have instance variables or anything like that.

`gc_mark_classext_iclass` didn't mark it, and `classext_iclass_free`
wasn't freeing it.
This commit is contained in:
Jean Boussier 2025-05-22 11:21:11 +02:00
parent ec41b1e823
commit f18883b295
Notes: git 2025-05-22 10:10:24 +00:00

View File

@ -278,10 +278,12 @@ class_duplicate_iclass_classext(VALUE iclass, rb_classext_t *mod_ext, const rb_n
else {
RCLASSEXT_M_TBL(ext) = RCLASSEXT_M_TBL(mod_ext);
}
RCLASSEXT_FIELDS(ext) = (VALUE *)st_init_numtable();
RCLASSEXT_CONST_TBL(ext) = RCLASSEXT_CONST_TBL(mod_ext);
RCLASSEXT_CVC_TBL(ext) = RCLASSEXT_CVC_TBL(mod_ext);
RUBY_ASSERT(!RCLASSEXT_FIELDS(mod_ext));
// Those are cache and should be recreated when methods are called
// RCLASSEXT_CALLABLE_M_TBL(ext) = NULL;
// RCLASSEXT_CC_TBL(ext) = NULL;