Merge pull request #104 from syun03/issues/103

replace ALLOCA_N to RB_ALLOC_N (#103)
This commit is contained in:
ser1zw 2020-06-21 05:12:03 +09:00 committed by GitHub
commit 196ee65ade
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 27 additions and 27 deletions

View File

@ -95,19 +95,19 @@ rb_initialize(int argc, VALUE *argv, VALUE self)
rb_scan_args(argc, argv, "32", &_dims, &_sizes, &_type, &_ranges, &_uniform);
int sizes_len = RARRAY_LEN(_sizes);
sizes = ALLOCA_N(int, sizes_len);
sizes = RB_ALLOC_N(int, sizes_len);
if (NIL_P(_ranges)) {
sizes = ary2intptr(_sizes, sizes);
ranges = NULL;
}
else {
ranges = ALLOCA_N(float*, sizes_len);
ranges = RB_ALLOC_N(float*, sizes_len);
VALUE* range_ptr = RARRAY_PTR(_ranges);
int i;
for (i = 0; i < sizes_len; i++) {
sizes[i] = NUM2INT(RARRAY_PTR(_sizes)[i]);
ranges[i] = ary2fltptr(range_ptr[i], ALLOCA_N(float, 2));
ranges[i] = ary2fltptr(range_ptr[i], RB_ALLOC_N(float, 2));
}
}
uniform = TRUE_OR_FALSE(_uniform, 1);
@ -196,7 +196,7 @@ rb_calc_hist_bang(int argc, VALUE* argv, VALUE self)
if (num_images == 0) {
rb_raise(rb_eArgError, "One or more arrays are required.");
}
IplImage** img = ALLOCA_N(IplImage*, num_images);
IplImage** img = RB_ALLOC_N(IplImage*, num_images);
VALUE* images_ptr = RARRAY_PTR(images);
for (int i = 0; i < num_images; i++) {
img[i] = IPLIMAGE_WITH_CHECK(images_ptr[i]);
@ -228,7 +228,7 @@ VALUE
rb_aref(VALUE self, VALUE args)
{
int num_idx = RARRAY_LEN(args);
int* idx = ALLOCA_N(int, num_idx);
int* idx = RB_ALLOC_N(int, num_idx);
VALUE* args_ptr = RARRAY_PTR(args);
for (int i = 0; i < num_idx; i++) {
idx[i] = NUM2INT(args_ptr[i]);
@ -281,8 +281,8 @@ rb_min_max_value(VALUE self)
int *max_idx = NULL;
try {
dims = cvGetDims(self_ptr->bins, NULL);
min_idx = ALLOCA_N(int, dims);
max_idx = ALLOCA_N(int, dims);
min_idx = RB_ALLOC_N(int, dims);
max_idx = RB_ALLOC_N(int, dims);
cvGetMinMaxHistValue(CVHISTOGRAM(self), &min_value, &max_value, min_idx, max_idx);
}
catch (cv::Exception& e) {
@ -495,10 +495,10 @@ rb_set_hist_bin_ranges_bang(int argc, VALUE* argv, VALUE self)
Check_Type(_ranges, T_ARRAY);
int ranges_size = RARRAY_LEN(_ranges);
float** ranges = ALLOCA_N(float*, ranges_size);
float** ranges = RB_ALLOC_N(float*, ranges_size);
VALUE* range_ptr = RARRAY_PTR(_ranges);
for (int i = 0; i < ranges_size; ++i) {
ranges[i] = ary2fltptr(range_ptr[i], ALLOCA_N(float, 2));
ranges[i] = ary2fltptr(range_ptr[i], RB_ALLOC_N(float, 2));
}
int uniform = TRUE_OR_FALSE(_uniform, 1);
@ -532,7 +532,7 @@ rb_calc_back_project(VALUE self, VALUE image)
return Qnil;
}
IplImage** img = ALLOCA_N(IplImage*, num_images);
IplImage** img = RB_ALLOC_N(IplImage*, num_images);
VALUE* image_ptr = RARRAY_PTR(image);
for (int i = 0; i < num_images; ++i) {
img[i] = IPLIMAGE_WITH_CHECK(image_ptr[i]);
@ -579,7 +579,7 @@ rb_calc_back_project_patch(VALUE self, VALUE image, VALUE patch_size, VALUE meth
return Qnil;
}
IplImage** img = ALLOCA_N(IplImage*, num_images);
IplImage** img = RB_ALLOC_N(IplImage*, num_images);
VALUE* image_ptr = RARRAY_PTR(image);
for (int i = 0; i < num_images; ++i) {
img[i] = IPLIMAGE_WITH_CHECK(image_ptr[i]);

View File

@ -3087,14 +3087,14 @@ rb_fill_poly_bang(int argc, VALUE *argv, VALUE self)
Check_Type(polygons, T_ARRAY);
drawing_option = DRAWING_OPTION(drawing_option);
num_polygons = RARRAY_LEN(polygons);
num_points = ALLOCA_N(int, num_polygons);
num_points = RB_ALLOC_N(int, num_polygons);
p = ALLOCA_N(CvPoint*, num_polygons);
p = RB_ALLOC_N(CvPoint*, num_polygons);
for (j = 0; j < num_polygons; ++j) {
points = rb_ary_entry(polygons, j);
Check_Type(points, T_ARRAY);
num_points[j] = RARRAY_LEN(points);
p[j] = ALLOCA_N(CvPoint, num_points[j]);
p[j] = RB_ALLOC_N(CvPoint, num_points[j]);
for (i = 0; i < num_points[j]; ++i) {
p[j][i] = VALUE_TO_CVPOINT(rb_ary_entry(points, i));
}
@ -3160,7 +3160,7 @@ rb_fill_convex_poly_bang(int argc, VALUE *argv, VALUE self)
Check_Type(points, T_ARRAY);
drawing_option = DRAWING_OPTION(drawing_option);
num_points = RARRAY_LEN(points);
p = ALLOCA_N(CvPoint, num_points);
p = RB_ALLOC_N(CvPoint, num_points);
for (i = 0; i < num_points; ++i)
p[i] = VALUE_TO_CVPOINT(rb_ary_entry(points, i));
@ -3236,14 +3236,14 @@ rb_poly_line_bang(int argc, VALUE *argv, VALUE self)
Check_Type(polygons, T_ARRAY);
drawing_option = DRAWING_OPTION(drawing_option);
num_polygons = RARRAY_LEN(polygons);
num_points = ALLOCA_N(int, num_polygons);
p = ALLOCA_N(CvPoint*, num_polygons);
num_points = RB_ALLOC_N(int, num_polygons);
p = RB_ALLOC_N(CvPoint*, num_polygons);
for (j = 0; j < num_polygons; ++j) {
points = rb_ary_entry(polygons, j);
Check_Type(points, T_ARRAY);
num_points[j] = RARRAY_LEN(points);
p[j] = ALLOCA_N(CvPoint, num_points[j]);
p[j] = RB_ALLOC_N(CvPoint, num_points[j]);
for (i = 0; i < num_points[j]; ++i) {
p[j][i] = VALUE_TO_CVPOINT(rb_ary_entry(points, i));
}
@ -3562,7 +3562,7 @@ rb_find_chessboard_corners(int argc, VALUE *argv, VALUE self)
int flag = NIL_P(flag_val) ? CV_CALIB_CB_ADAPTIVE_THRESH : NUM2INT(flag_val);
CvSize pattern_size = VALUE_TO_CVSIZE(pattern_size_val);
CvPoint2D32f* corners = ALLOCA_N(CvPoint2D32f, pattern_size.width * pattern_size.height);
CvPoint2D32f* corners = RB_ALLOC_N(CvPoint2D32f, pattern_size.width * pattern_size.height);
int num_found_corners = 0;
int pattern_was_found = 0;
try {
@ -3598,7 +3598,7 @@ rb_find_corner_sub_pix(VALUE self, VALUE corners, VALUE win_size, VALUE zero_zon
{
Check_Type(corners, T_ARRAY);
int count = RARRAY_LEN(corners);
CvPoint2D32f* corners_buff = ALLOCA_N(CvPoint2D32f, count);
CvPoint2D32f* corners_buff = RB_ALLOC_N(CvPoint2D32f, count);
VALUE* corners_ptr = RARRAY_PTR(corners);
for (int i = 0; i < count; i++) {
@ -3907,8 +3907,8 @@ rb_get_perspective_transform(VALUE self, VALUE source, VALUE dest)
int count = RARRAY_LEN(source);
CvPoint2D32f* source_buff = ALLOCA_N(CvPoint2D32f, count);
CvPoint2D32f* dest_buff = ALLOCA_N(CvPoint2D32f, count);
CvPoint2D32f* source_buff = RB_ALLOC_N(CvPoint2D32f, count);
CvPoint2D32f* dest_buff = RB_ALLOC_N(CvPoint2D32f, count);
for (int i = 0; i < count; i++) {
source_buff[i] = *(CVPOINT2D32F(RARRAY_PTR(source)[i]));
@ -4883,7 +4883,7 @@ rb_draw_chessboard_corners_bang(VALUE self, VALUE pattern_size, VALUE corners, V
{
Check_Type(corners, T_ARRAY);
int count = RARRAY_LEN(corners);
CvPoint2D32f* corners_buff = ALLOCA_N(CvPoint2D32f, count);
CvPoint2D32f* corners_buff = RB_ALLOC_N(CvPoint2D32f, count);
VALUE* corners_ptr = RARRAY_PTR(corners);
for (int i = 0; i < count; i++) {
corners_buff[i] = *(CVPOINT2D32F(corners_ptr[i]));
@ -5367,9 +5367,9 @@ rb_snake_image(int argc, VALUE *argv, VALUE self)
(RARRAY_LEN(beta) != length) ||
(RARRAY_LEN(gamma) != length))
rb_raise(rb_eArgError, "alpha, beta, gamma should be same size of points");
a = ALLOCA_N(float, length);
b = ALLOCA_N(float, length);
c = ALLOCA_N(float, length);
a = RB_ALLOC_N(float, length);
b = RB_ALLOC_N(float, length);
c = RB_ALLOC_N(float, length);
for (i = 0; i < length; ++i) {
a[i] = (float)NUM2DBL(RARRAY_PTR(alpha)[i]);
b[i] = (float)NUM2DBL(RARRAY_PTR(beta)[i]);

View File

@ -75,7 +75,7 @@ rb_initialize(int argc, VALUE *argv, VALUE self)
if (NIL_P(values))
rb_raise(rb_eArgError, "argument 6 (values) should not be nil when the shape is :custom.");
num_values = RARRAY_LEN(values);
_values = ALLOCA_N(int, num_values);
_values = RB_ALLOC_N(int, num_values);
VALUE *values_ptr = RARRAY_PTR(values);
for (int i = 0; i < num_values; ++i)
_values[i] = NUM2INT(values_ptr[i]);