diff options
| author | Peter Zhu <peter@peterzhu.ca> | 2025-10-17 21:41:12 -0400 |
|---|---|---|
| committer | Peter Zhu <peter@peterzhu.ca> | 2025-10-18 10:40:43 -0400 |
| commit | eb4a6f0cda35e9f7dc926d5cf66efdfaf3136ac3 (patch) | |
| tree | 58a30a608ccd51c728a62854a6171429f0e5733f | |
| parent | d7f412e685aee3138213734ad81ffd5fe0e4be8c (diff) | |
Fix memory leak of TypedData data in Namespace
| -rw-r--r-- | namespace.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/namespace.c b/namespace.c index bd805ae0d3..e860de20ef 100644 --- a/namespace.c +++ b/namespace.c @@ -208,7 +208,7 @@ free_loading_table_entry(st_data_t key, st_data_t value, st_data_t arg) } static void -namespace_entry_free(void *ptr) +namespace_root_free(void *ptr) { rb_namespace_t *ns = (rb_namespace_t *)ptr; if (ns->loading_table) { @@ -218,6 +218,13 @@ namespace_entry_free(void *ptr) } } +static void +namespace_entry_free(void *ptr) +{ + namespace_root_free(ptr); + xfree(ptr); +} + static size_t namespace_entry_memsize(const void *ptr) { @@ -242,7 +249,7 @@ const rb_data_type_t rb_root_namespace_data_type = { "Namespace::Root", { rb_namespace_entry_mark, - namespace_entry_free, + namespace_root_free, namespace_entry_memsize, rb_namespace_gc_update_references, }, |
