summaryrefslogtreecommitdiff
path: root/ext/-test-/memory_view/memory_view.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/-test-/memory_view/memory_view.c')
-rw-r--r--ext/-test-/memory_view/memory_view.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/ext/-test-/memory_view/memory_view.c b/ext/-test-/memory_view/memory_view.c
index c847eac98a..cb07064cd7 100644
--- a/ext/-test-/memory_view/memory_view.c
+++ b/ext/-test-/memory_view/memory_view.c
@@ -307,6 +307,16 @@ mdview_get_memory_view(VALUE obj, rb_memory_view_t *view, int flags)
view->ndim = ndim;
view->shape = shape;
view->strides = strides;
+ view->sub_offsets = NULL;
+
+ return true;
+}
+
+static bool
+mdview_release_memory_view(VALUE obj, rb_memory_view_t *view)
+{
+ if (view->shape) xfree(view->shape);
+ if (view->strides) xfree(view->strides);
return true;
}
@@ -319,7 +329,7 @@ mdview_memory_view_available_p(VALUE obj)
static const rb_memory_view_entry_t mdview_memory_view_entry = {
mdview_get_memory_view,
- NULL,
+ mdview_release_memory_view,
mdview_memory_view_available_p
};