Skip to content

Commit

Permalink
[memory_view] Make some rb_memroy_view_t members const
Browse files Browse the repository at this point in the history
  • Loading branch information
mrkn committed Dec 23, 2020
1 parent db0385d commit 01ab29c
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 8 deletions.
4 changes: 2 additions & 2 deletions ext/-test-/memory_view/memory_view.c
Expand Up @@ -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;
}
Expand Down
8 changes: 4 additions & 4 deletions include/ruby/memory_view.h
Expand Up @@ -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;
Expand All @@ -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;
Expand Down
6 changes: 4 additions & 2 deletions memory_view.c
Expand Up @@ -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\"",
Expand Down Expand Up @@ -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;
Expand Down

0 comments on commit 01ab29c

Please sign in to comment.