summaryrefslogtreecommitdiff
path: root/internal
diff options
context:
space:
mode:
authorSatoshi Tagomori <s-tagomori@sakura.ad.jp>2025-11-30 17:50:50 +0900
committerSatoshi Tagomori <tagomoris@gmail.com>2025-12-02 23:49:49 +0900
commit9eafeaed67903bbf2f2dca5eb473c1bf774712f6 (patch)
tree3e537f55788e21db35de2f5157abe5c3a7452156 /internal
parent84bc1f038a4df63ff09490c981753d7234a52ce4 (diff)
Box: Free rb_classext_t struct for a box when the box is GCed
Diffstat (limited to 'internal')
-rw-r--r--internal/box.h1
-rw-r--r--internal/class.h1
2 files changed, 2 insertions, 0 deletions
diff --git a/internal/box.h b/internal/box.h
index 41cad63482..c341f046d3 100644
--- a/internal/box.h
+++ b/internal/box.h
@@ -34,6 +34,7 @@ struct rb_box_struct {
VALUE ruby_dln_libmap;
VALUE gvar_tbl;
+ struct st_table *classext_cow_classes;
bool is_user;
bool is_optional;
diff --git a/internal/class.h b/internal/class.h
index f122d2f189..296a07ae29 100644
--- a/internal/class.h
+++ b/internal/class.h
@@ -513,6 +513,7 @@ void rb_undef_methods_from(VALUE klass, VALUE super);
VALUE rb_class_inherited(VALUE, VALUE);
VALUE rb_keyword_error_new(const char *, VALUE);
+rb_classext_t *rb_class_unlink_classext(VALUE klass, const rb_box_t *box);
void rb_class_classext_free(VALUE klass, rb_classext_t *ext, bool is_prime);
void rb_iclass_classext_free(VALUE klass, rb_classext_t *ext, bool is_prime);