summaryrefslogtreecommitdiff
path: root/ext/fiddle
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-11-04 07:27:10 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-11-04 07:27:10 +0000
commit3553a86eb51365cc524cf5c549b37770448d550d (patch)
tree9a96e1d3ccc6de7a94b8d884ddb946b3c3701de3 /ext/fiddle
parent52912db4a81f9b9b69ab9e9fcd95e22d086d4289 (diff)
ext: use RARRAY_CONST_PTR
* ext/bigdecimal/bigdecimal.c: use RARRAY_CONST_PTR just fore reference instead of RARRAY_PTR, to keep the array WB-protected. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52448 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/fiddle')
-rw-r--r--ext/fiddle/closure.c6
-rw-r--r--ext/fiddle/function.c4
2 files changed, 5 insertions, 5 deletions
diff --git a/ext/fiddle/closure.c b/ext/fiddle/closure.c
index ca1b10a..502f47f 100644
--- a/ext/fiddle/closure.c
+++ b/ext/fiddle/closure.c
@@ -70,7 +70,7 @@ callback(ffi_cif *cif, void *resp, void **args, void *ctx)
cPointer = rb_const_get(mFiddle, rb_intern("Pointer"));
for (i = 0; i < argc; i++) {
- type = NUM2INT(RARRAY_PTR(rbargs)[i]);
+ type = NUM2INT(RARRAY_CONST_PTR(rbargs)[i]);
switch (type) {
case TYPE_VOID:
argc = 0;
@@ -123,7 +123,7 @@ callback(ffi_cif *cif, void *resp, void **args, void *ctx)
}
}
- ret = rb_funcall2(self, rb_intern("call"), argc, RARRAY_PTR(params));
+ ret = rb_funcall2(self, rb_intern("call"), argc, RARRAY_CONST_PTR(params));
RB_GC_GUARD(params);
type = NUM2INT(ctype);
@@ -210,7 +210,7 @@ initialize(int rbargc, VALUE argv[], VALUE self)
cl->argv = (ffi_type **)xcalloc(argc + 1, sizeof(ffi_type *));
for (i = 0; i < argc; i++) {
- int type = NUM2INT(RARRAY_PTR(args)[i]);
+ int type = NUM2INT(RARRAY_CONST_PTR(args)[i]);
cl->argv[i] = INT2FFI_TYPE(type);
}
cl->argv[argc] = NULL;
diff --git a/ext/fiddle/function.c b/ext/fiddle/function.c
index 4c19821..9db29e8 100644
--- a/ext/fiddle/function.c
+++ b/ext/fiddle/function.c
@@ -110,7 +110,7 @@ initialize(int argc, VALUE argv[], VALUE self)
arg_types = xcalloc(RARRAY_LEN(args) + 1, sizeof(ffi_type *));
for (i = 0; i < RARRAY_LEN(args); i++) {
- int type = NUM2INT(RARRAY_PTR(args)[i]);
+ int type = NUM2INT(RARRAY_CONST_PTR(args)[i]);
arg_types[i] = INT2FFI_TYPE(type);
}
arg_types[RARRAY_LEN(args)] = NULL;
@@ -164,7 +164,7 @@ function_call(int argc, VALUE argv[], VALUE self)
values = (void **)((char *)generic_args + (size_t)argc * sizeof(fiddle_generic));
for (i = 0; i < argc; i++) {
- VALUE type = RARRAY_PTR(types)[i];
+ VALUE type = RARRAY_CONST_PTR(types)[i];
VALUE src = argv[i];
if(NUM2INT(type) == TYPE_VOIDP) {