diff options
Diffstat (limited to 'memory_view.c')
| -rw-r--r-- | memory_view.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/memory_view.c b/memory_view.c index 7bcb39972f..2de756d681 100644 --- a/memory_view.c +++ b/memory_view.c @@ -65,7 +65,7 @@ const rb_data_type_t rb_memory_view_exported_object_registry_data_type = { exported_object_registry_free, 0, }, - 0, 0, RUBY_TYPED_FREE_IMMEDIATELY + 0, 0, RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_WB_PROTECTED }; static int @@ -101,6 +101,7 @@ register_exported_object(VALUE obj) { RB_VM_LOCKING() { st_update(exported_object_table, (st_data_t)obj, exported_object_add_ref, 0); + RB_OBJ_WRITTEN(rb_memory_view_exported_object_registry, Qundef, obj); } } @@ -845,7 +846,7 @@ rb_memory_view_release(rb_memory_view_t* view) if (rv) { unregister_exported_object(view->obj); view->obj = Qnil; - xfree((void *)view->item_desc.components); + SIZED_FREE_N((rb_memory_view_item_component_t *)view->item_desc.components, view->item_desc.length); } return rv; } |
