summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenta Murata <mrkn@mrkn.jp>2020-12-23 00:43:26 +0900
committerKenta Murata <mrkn@mrkn.jp>2020-12-23 09:24:55 +0900
commit01ab29cc285ec92c07cd67db6f8616690bd217f8 (patch)
tree24db23d86f456cdf75c0b893593b60b6be894c29
parentdb0385d6576bb9d2486e799c935e6b1fa1e7dfcc (diff)
[memory_view] Make some rb_memroy_view_t members const
-rw-r--r--ext/-test-/memory_view/memory_view.c4
-rw-r--r--include/ruby/memory_view.h8
-rw-r--r--memory_view.c6
3 files changed, 10 insertions, 8 deletions
diff --git a/ext/-test-/memory_view/memory_view.c b/ext/-test-/memory_view/memory_view.c
index 79a64cfa5c..3156dd3101 100644
--- a/ext/-test-/memory_view/memory_view.c
+++ b/ext/-test-/memory_view/memory_view.c
@@ -314,8 +314,8 @@ mdview_get_memory_view(VALUE obj, rb_memory_view_t *view, int flags)
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);
+ if (view->shape) xfree((void *)view->shape);
+ if (view->strides) xfree((void *)view->strides);
return true;
}
diff --git a/include/ruby/memory_view.h b/include/ruby/memory_view.h
index 6ff5cbf070..b5e82650b4 100644
--- a/include/ruby/memory_view.h
+++ b/include/ruby/memory_view.h
@@ -80,7 +80,7 @@ typedef struct {
* item structure. rb_memory_view_prepare_item_desc and
* rb_memory_view_get_item allocate this memory if needed,
* and rb_memory_view_release frees it. */
- rb_memory_view_item_component_t *components;
+ const rb_memory_view_item_component_t *components;
/* The number of components in an item. */
size_t length;
@@ -91,15 +91,15 @@ typedef struct {
/* ndim size array indicating the number of elements in each dimension.
* This can be NULL when ndim == 1. */
- ssize_t *shape;
+ const ssize_t *shape;
/* ndim size array indicating the number of bytes to skip to go to the
* next element in each dimension. */
- ssize_t *strides;
+ const ssize_t *strides;
/* The offset in each dimension when this memory view exposes a nested array.
* Or, NULL when this memory view exposes a flat array. */
- ssize_t *sub_offsets;
+ const ssize_t *sub_offsets;
/* the private data for managing this exported memory */
void *const private;
diff --git a/memory_view.c b/memory_view.c
index 743a736cce..2d4f9dcf0e 100644
--- a/memory_view.c
+++ b/memory_view.c
@@ -748,7 +748,9 @@ rb_memory_view_prepare_item_desc(rb_memory_view_t *view)
{
if (view->item_desc.components == NULL) {
const char *err;
- ssize_t n = rb_memory_view_parse_item_format(view->format, &view->item_desc.components, &view->item_desc.length, &err);
+ rb_memory_view_item_component_t **p_components =
+ (rb_memory_view_item_component_t **)&view->item_desc.components;
+ ssize_t n = rb_memory_view_parse_item_format(view->format, p_components, &view->item_desc.length, &err);
if (n < 0) {
rb_raise(rb_eRuntimeError,
"Unable to parse item format at %"PRIdSIZE" in \"%s\"",
@@ -841,7 +843,7 @@ rb_memory_view_release(rb_memory_view_t* view)
unregister_exported_object(view->obj);
view->obj = Qnil;
if (view->item_desc.components) {
- xfree(view->item_desc.components);
+ xfree((void *)view->item_desc.components);
}
}
return rv;