--- src/ufuncs.c.orig 2022-12-12 08:21:17 UTC +++ src/ufuncs.c @@ -132,7 +132,7 @@ static void* is_ccw_data[1] = {GEOSGeom_isCCW_r}; typedef char FuncGEOS_Y_b(void* context, void* a); static char Y_b_dtypes[2] = {NPY_OBJECT, NPY_BOOL}; -static void Y_b_func(char** args, npy_intp* dimensions, npy_intp* steps, void* data) { +static void Y_b_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { FuncGEOS_Y_b* func = (FuncGEOS_Y_b*)data; GEOSGeometry* in1 = NULL; char ret; @@ -189,7 +189,7 @@ static char IsValidInput(void* context, PyObject* obj) static void* is_valid_input_data[1] = {IsValidInput}; typedef char FuncGEOS_O_b(void* context, PyObject* obj); static char O_b_dtypes[2] = {NPY_OBJECT, NPY_BOOL}; -static void O_b_func(char** args, npy_intp* dimensions, npy_intp* steps, void* data) { +static void O_b_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { FuncGEOS_O_b* func = (FuncGEOS_O_b*)data; GEOS_INIT_THREADS; UNARY_LOOP { *(npy_bool*)op1 = func(ctx, *(PyObject**)ip1); } @@ -201,7 +201,7 @@ static PyUFuncGenericFunction O_b_funcs[1] = {&O_b_fun static void* equals_data[1] = {GEOSEquals_r}; typedef char FuncGEOS_YY_b(void* context, void* a, void* b); static char YY_b_dtypes[3] = {NPY_OBJECT, NPY_OBJECT, NPY_BOOL}; -static void YY_b_func(char** args, npy_intp* dimensions, npy_intp* steps, void* data) { +static void YY_b_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { FuncGEOS_YY_b* func = (FuncGEOS_YY_b*)data; GEOSGeometry *in1 = NULL, *in2 = NULL; char ret; @@ -273,7 +273,7 @@ static void* touches_data[1] = {touches_func_tuple}; static void* within_func_tuple[2] = {GEOSWithin_r, GEOSPreparedWithin_r}; static void* within_data[1] = {within_func_tuple}; static char YY_b_p_dtypes[3] = {NPY_OBJECT, NPY_OBJECT, NPY_BOOL}; -static void YY_b_p_func(char** args, npy_intp* dimensions, npy_intp* steps, void* data) { +static void YY_b_p_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { FuncGEOS_YY_b* func = ((FuncGEOS_YY_b**)data)[0]; FuncGEOS_YY_b* func_prepared = ((FuncGEOS_YY_b**)data)[1]; @@ -320,7 +320,7 @@ finish: static PyUFuncGenericFunction YY_b_p_funcs[1] = {&YY_b_p_func}; static char is_prepared_dtypes[2] = {NPY_OBJECT, NPY_BOOL}; -static void is_prepared_func(char** args, npy_intp* dimensions, npy_intp* steps, +static void is_prepared_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { GEOSGeometry* in1 = NULL; GEOSPreparedGeometry* in1_prepared = NULL; @@ -411,7 +411,7 @@ static void* oriented_envelope_data[1] = {GEOSMinimumR #endif typedef void* FuncGEOS_Y_Y(void* context, void* a); static char Y_Y_dtypes[2] = {NPY_OBJECT, NPY_OBJECT}; -static void Y_Y_func(char** args, npy_intp* dimensions, npy_intp* steps, void* data) { +static void Y_Y_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { FuncGEOS_Y_Y* func = (FuncGEOS_Y_Y*)data; GEOSGeometry* in1 = NULL; GEOSGeometry** geom_arr; @@ -479,7 +479,7 @@ static void* prepare_data[1] = {PrepareGeometryObject} static void* destroy_prepared_data[1] = {DestroyPreparedGeometryObject}; typedef char FuncPyGEOS_Y(void* ctx, GeometryObject* geom); static char Y_dtypes[1] = {NPY_OBJECT}; -static void Y_func(char** args, npy_intp* dimensions, npy_intp* steps, void* data) { +static void Y_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { FuncPyGEOS_Y* func = (FuncPyGEOS_Y*)data; GEOSGeometry* in1 = NULL; GeometryObject* geom_obj = NULL; @@ -546,7 +546,7 @@ static void* segmentize_data[1] = {GEOSDensify_r}; typedef void* FuncGEOS_Yd_Y(void* context, void* a, double b); static char Yd_Y_dtypes[3] = {NPY_OBJECT, NPY_DOUBLE, NPY_OBJECT}; -static void Yd_Y_func(char** args, npy_intp* dimensions, npy_intp* steps, void* data) { +static void Yd_Y_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { FuncGEOS_Yd_Y* func = (FuncGEOS_Yd_Y*)data; GEOSGeometry* in1 = NULL; GEOSGeometry** geom_arr; @@ -681,7 +681,7 @@ static void* GEOSSetSRID_r_with_clone(void* context, v static void* set_srid_data[1] = {GEOSSetSRID_r_with_clone}; typedef void* FuncGEOS_Yi_Y(void* context, void* a, int b); static char Yi_Y_dtypes[3] = {NPY_OBJECT, NPY_INT, NPY_OBJECT}; -static void Yi_Y_func(char** args, npy_intp* dimensions, npy_intp* steps, void* data) { +static void Yi_Y_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { FuncGEOS_Yi_Y* func = (FuncGEOS_Yi_Y*)data; GEOSGeometry* in1 = NULL; GEOSGeometry** geom_arr; @@ -817,7 +817,7 @@ static void YY_Y_func_reduce(char** args, npy_intp* di } } -static void YY_Y_func(char** args, npy_intp* dimensions, npy_intp* steps, void* data) { +static void YY_Y_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { // A reduce is characterized by multiple iterations (dimension[0] > 1) that // are output on the same place in memory (steps[2] == 0). if ((steps[2] == 0) && (dimensions[0] > 1)) { @@ -952,7 +952,7 @@ static void* minimum_bounding_radius_data[1] = {GEOSMi #endif typedef int FuncGEOS_Y_d(void* context, void* a, double* b); static char Y_d_dtypes[2] = {NPY_OBJECT, NPY_DOUBLE}; -static void Y_d_func(char** args, npy_intp* dimensions, npy_intp* steps, void* data) { +static void Y_d_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { FuncGEOS_Y_d* func = (FuncGEOS_Y_d*)data; GEOSGeometry* in1 = NULL; @@ -1029,7 +1029,7 @@ static void* get_num_coordinates_data[1] = {get_num_co typedef int FuncGEOS_Y_i(void* context, void* a); static char Y_i_dtypes[2] = {NPY_OBJECT, NPY_INT}; -static void Y_i_func(char** args, npy_intp* dimensions, npy_intp* steps, void* data) { +static void Y_i_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { FuncGEOS_Y_i* func = ((FuncGEOS_Y_i**)data)[0]; int errcode = (int)((int**)data)[1]; int none_value = (int)((int**)data)[2]; @@ -1119,7 +1119,7 @@ static int GEOSProjectNormalizedWrapped_r(void* contex static void* line_locate_point_normalized_data[1] = {GEOSProjectNormalizedWrapped_r}; typedef int FuncGEOS_YY_d(void* context, void* a, void* b, double* c); static char YY_d_dtypes[3] = {NPY_OBJECT, NPY_OBJECT, NPY_DOUBLE}; -static void YY_d_func(char** args, npy_intp* dimensions, npy_intp* steps, void* data) { +static void YY_d_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { FuncGEOS_YY_d* func = (FuncGEOS_YY_d*)data; GEOSGeometry *in1 = NULL, *in2 = NULL; @@ -1165,7 +1165,7 @@ static void* frechet_distance_densify_data[1] = {GEOSF #endif typedef int FuncGEOS_YYd_d(void* context, void* a, void* b, double c, double* d); static char YYd_d_dtypes[4] = {NPY_OBJECT, NPY_OBJECT, NPY_DOUBLE, NPY_DOUBLE}; -static void YYd_d_func(char** args, npy_intp* dimensions, npy_intp* steps, void* data) { +static void YYd_d_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { FuncGEOS_YYd_d* func = (FuncGEOS_YYd_d*)data; GEOSGeometry *in1 = NULL, *in2 = NULL; @@ -1209,7 +1209,7 @@ static void* union_prec_data[1] = {GEOSUnionPrec_r}; typedef void* FuncGEOS_YYd_Y(void* context, void* a, void* b, double c); static char YYd_Y_dtypes[4] = {NPY_OBJECT, NPY_OBJECT, NPY_DOUBLE, NPY_OBJECT}; -static void YYd_Y_func(char** args, npy_intp* dimensions, npy_intp* steps, void* data) { +static void YYd_Y_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { FuncGEOS_YYd_Y* func = (FuncGEOS_YYd_Y*)data; GEOSGeometry *in1 = NULL, *in2 = NULL; GEOSGeometry** geom_arr; @@ -1256,7 +1256,7 @@ static PyUFuncGenericFunction YYd_Y_funcs[1] = {&YYd_Y /* Define functions with unique call signatures */ static char box_dtypes[6] = {NPY_DOUBLE, NPY_DOUBLE, NPY_DOUBLE, NPY_DOUBLE, NPY_BOOL, NPY_OBJECT}; -static void box_func(char** args, npy_intp* dimensions, npy_intp* steps, void* data) { +static void box_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { char *ip1 = args[0], *ip2 = args[1], *ip3 = args[2], *ip4 = args[3], *ip5 = args[4]; npy_intp is1 = steps[0], is2 = steps[1], is3 = steps[2], is4 = steps[3], is5 = steps[4]; npy_intp n = dimensions[0]; @@ -1321,7 +1321,7 @@ static char buffer_inner(void* ctx, GEOSBufferParams* static char buffer_dtypes[8] = {NPY_OBJECT, NPY_DOUBLE, NPY_INT, NPY_INT, NPY_INT, NPY_DOUBLE, NPY_BOOL, NPY_OBJECT}; -static void buffer_func(char** args, npy_intp* dimensions, npy_intp* steps, void* data) { +static void buffer_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { char *ip1 = args[0], *ip2 = args[1], *ip3 = args[2], *ip4 = args[3], *ip5 = args[4], *ip6 = args[5], *ip7 = args[6]; npy_intp is1 = steps[0], is2 = steps[1], is3 = steps[2], is4 = steps[3], is5 = steps[4], @@ -1390,7 +1390,7 @@ static PyUFuncGenericFunction buffer_funcs[1] = {&buff static char offset_curve_dtypes[6] = {NPY_OBJECT, NPY_DOUBLE, NPY_INT, NPY_INT, NPY_DOUBLE, NPY_OBJECT}; -static void offset_curve_func(char** args, npy_intp* dimensions, npy_intp* steps, +static void offset_curve_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { char *ip1 = args[0], *ip2 = args[1], *ip3 = args[2], *ip4 = args[3], *ip5 = args[4]; npy_intp is1 = steps[0], is2 = steps[1], is3 = steps[2], is4 = steps[3], is5 = steps[4]; @@ -1451,7 +1451,7 @@ static void offset_curve_func(char** args, npy_intp* d static PyUFuncGenericFunction offset_curve_funcs[1] = {&offset_curve_func}; static char snap_dtypes[4] = {NPY_OBJECT, NPY_OBJECT, NPY_DOUBLE, NPY_OBJECT}; -static void snap_func(char** args, npy_intp* dimensions, npy_intp* steps, void* data) { +static void snap_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { GEOSGeometry *in1 = NULL, *in2 = NULL; GEOSGeometry** geom_arr; @@ -1497,7 +1497,7 @@ static PyUFuncGenericFunction snap_funcs[1] = {&snap_f static char clip_by_rect_dtypes[6] = {NPY_OBJECT, NPY_DOUBLE, NPY_DOUBLE, NPY_DOUBLE, NPY_DOUBLE, NPY_OBJECT}; -static void clip_by_rect_func(char** args, npy_intp* dimensions, npy_intp* steps, +static void clip_by_rect_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { char *ip1 = args[0], *ip2 = args[1], *ip3 = args[2], *ip4 = args[3], *ip5 = args[4]; npy_intp is1 = steps[0], is2 = steps[1], is3 = steps[2], is4 = steps[3], is5 = steps[4]; @@ -1557,7 +1557,7 @@ static void clip_by_rect_func(char** args, npy_intp* d static PyUFuncGenericFunction clip_by_rect_funcs[1] = {&clip_by_rect_func}; static char equals_exact_dtypes[4] = {NPY_OBJECT, NPY_OBJECT, NPY_DOUBLE, NPY_BOOL}; -static void equals_exact_func(char** args, npy_intp* dimensions, npy_intp* steps, +static void equals_exact_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { GEOSGeometry *in1 = NULL, *in2 = NULL; double in3; @@ -1597,7 +1597,7 @@ static PyUFuncGenericFunction equals_exact_funcs[1] = #if GEOS_SINCE_3_10_0 static char dwithin_dtypes[4] = {NPY_OBJECT, NPY_OBJECT, NPY_DOUBLE, NPY_BOOL}; -static void dwithin_func(char** args, npy_intp* dimensions, npy_intp* steps, void* data) { +static void dwithin_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { GEOSGeometry *in1 = NULL, *in2 = NULL; GEOSPreparedGeometry* in1_prepared = NULL; double in3; @@ -1645,7 +1645,7 @@ static PyUFuncGenericFunction dwithin_funcs[1] = {&dwi #endif // GEOS_SINCE_3_10_0 static char delaunay_triangles_dtypes[4] = {NPY_OBJECT, NPY_DOUBLE, NPY_BOOL, NPY_OBJECT}; -static void delaunay_triangles_func(char** args, npy_intp* dimensions, npy_intp* steps, +static void delaunay_triangles_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { GEOSGeometry* in1 = NULL; GEOSGeometry** geom_arr; @@ -1692,7 +1692,7 @@ static PyUFuncGenericFunction delaunay_triangles_funcs static char voronoi_polygons_dtypes[5] = {NPY_OBJECT, NPY_DOUBLE, NPY_OBJECT, NPY_BOOL, NPY_OBJECT}; -static void voronoi_polygons_func(char** args, npy_intp* dimensions, npy_intp* steps, +static void voronoi_polygons_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { GEOSGeometry *in1 = NULL, *in3 = NULL; GEOSGeometry** geom_arr; @@ -1739,7 +1739,7 @@ static void voronoi_polygons_func(char** args, npy_int static PyUFuncGenericFunction voronoi_polygons_funcs[1] = {&voronoi_polygons_func}; static char is_valid_reason_dtypes[2] = {NPY_OBJECT, NPY_OBJECT}; -static void is_valid_reason_func(char** args, npy_intp* dimensions, npy_intp* steps, +static void is_valid_reason_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { char* reason; GEOSGeometry* in1 = NULL; @@ -1777,7 +1777,7 @@ finish: static PyUFuncGenericFunction is_valid_reason_funcs[1] = {&is_valid_reason_func}; static char relate_dtypes[3] = {NPY_OBJECT, NPY_OBJECT, NPY_OBJECT}; -static void relate_func(char** args, npy_intp* dimensions, npy_intp* steps, void* data) { +static void relate_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { char* pattern; GEOSGeometry *in1 = NULL, *in2 = NULL; @@ -1818,7 +1818,7 @@ finish: static PyUFuncGenericFunction relate_funcs[1] = {&relate_func}; static char relate_pattern_dtypes[4] = {NPY_OBJECT, NPY_OBJECT, NPY_OBJECT, NPY_BOOL}; -static void relate_pattern_func(char** args, npy_intp* dimensions, npy_intp* steps, +static void relate_pattern_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { GEOSGeometry *in1 = NULL, *in2 = NULL; const char* pattern = NULL; @@ -1878,7 +1878,7 @@ finish: static PyUFuncGenericFunction relate_pattern_funcs[1] = {&relate_pattern_func}; static char polygonize_dtypes[2] = {NPY_OBJECT, NPY_OBJECT}; -static void polygonize_func(char** args, npy_intp* dimensions, npy_intp* steps, +static void polygonize_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { GEOSGeometry* geom = NULL; unsigned int n_geoms; @@ -1923,7 +1923,7 @@ static PyUFuncGenericFunction polygonize_funcs[1] = {& static char polygonize_full_dtypes[5] = {NPY_OBJECT, NPY_OBJECT, NPY_OBJECT, NPY_OBJECT, NPY_OBJECT}; -static void polygonize_full_func(char** args, npy_intp* dimensions, npy_intp* steps, +static void polygonize_full_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { GEOSGeometry* geom = NULL; GEOSGeometry* geom_copy = NULL; @@ -1999,7 +1999,7 @@ finish: static PyUFuncGenericFunction polygonize_full_funcs[1] = {&polygonize_full_func}; static char shortest_line_dtypes[3] = {NPY_OBJECT, NPY_OBJECT, NPY_OBJECT}; -static void shortest_line_func(char** args, npy_intp* dimensions, npy_intp* steps, +static void shortest_line_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { GEOSGeometry* in1 = NULL; GEOSGeometry* in2 = NULL; @@ -2072,7 +2072,7 @@ static PyUFuncGenericFunction shortest_line_funcs[1] = #if GEOS_SINCE_3_6_0 static char set_precision_dtypes[4] = {NPY_OBJECT, NPY_DOUBLE, NPY_INT, NPY_OBJECT}; -static void set_precision_func(char** args, npy_intp* dimensions, npy_intp* steps, +static void set_precision_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { GEOSGeometry* in1 = NULL; GEOSGeometry** geom_arr; @@ -2140,7 +2140,7 @@ static PyUFuncGenericFunction set_precision_funcs[1] = /* define double -> geometry construction functions */ static char points_dtypes[2] = {NPY_DOUBLE, NPY_OBJECT}; -static void points_func(char** args, npy_intp* dimensions, npy_intp* steps, void* data) { +static void points_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { GEOSCoordSequence* coord_seq = NULL; GEOSGeometry** geom_arr; @@ -2194,7 +2194,7 @@ finish: static PyUFuncGenericFunction points_funcs[1] = {&points_func}; static char linestrings_dtypes[2] = {NPY_DOUBLE, NPY_OBJECT}; -static void linestrings_func(char** args, npy_intp* dimensions, npy_intp* steps, +static void linestrings_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { GEOSCoordSequence* coord_seq = NULL; GEOSGeometry** geom_arr; @@ -2234,7 +2234,7 @@ finish: static PyUFuncGenericFunction linestrings_funcs[1] = {&linestrings_func}; static char linearrings_dtypes[2] = {NPY_DOUBLE, NPY_OBJECT}; -static void linearrings_func(char** args, npy_intp* dimensions, npy_intp* steps, +static void linearrings_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { GEOSCoordSequence* coord_seq = NULL; GEOSGeometry** geom_arr; @@ -2298,7 +2298,7 @@ finish: static PyUFuncGenericFunction linearrings_funcs[1] = {&linearrings_func}; static char polygons_dtypes[3] = {NPY_OBJECT, NPY_OBJECT, NPY_OBJECT}; -static void polygons_func(char** args, npy_intp* dimensions, npy_intp* steps, +static void polygons_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { GEOSGeometry *hole, *shell, *hole_copy, *shell_copy; GEOSGeometry **holes, **geom_arr; @@ -2410,7 +2410,7 @@ finish: static PyUFuncGenericFunction polygons_funcs[1] = {&polygons_func}; static char create_collection_dtypes[3] = {NPY_OBJECT, NPY_INT, NPY_OBJECT}; -static void create_collection_func(char** args, npy_intp* dimensions, npy_intp* steps, +static void create_collection_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { GEOSGeometry *g, *g_copy; int n_geoms, type, actual_type, expected_type, alt_expected_type; @@ -2513,7 +2513,7 @@ finish: static PyUFuncGenericFunction create_collection_funcs[1] = {&create_collection_func}; static char bounds_dtypes[2] = {NPY_OBJECT, NPY_DOUBLE}; -static void bounds_func(char** args, npy_intp* dimensions, npy_intp* steps, void* data) { +static void bounds_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { GEOSGeometry *envelope = NULL, *in1; const GEOSGeometry* ring; const GEOSCoordSequence* coord_seq; @@ -2609,7 +2609,7 @@ static PyUFuncGenericFunction bounds_funcs[1] = {&boun /* Define the object -> geom functions (O_Y) */ static char from_wkb_dtypes[3] = {NPY_OBJECT, NPY_UINT8, NPY_OBJECT}; -static void from_wkb_func(char** args, npy_intp* dimensions, npy_intp* steps, +static void from_wkb_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { char *ip1 = args[0], *ip2 = args[1], *op1 = args[2]; npy_intp is1 = steps[0], is2 = steps[1], os1 = steps[2]; @@ -2700,7 +2700,7 @@ finish: static PyUFuncGenericFunction from_wkb_funcs[1] = {&from_wkb_func}; static char from_wkt_dtypes[3] = {NPY_OBJECT, NPY_UINT8, NPY_OBJECT}; -static void from_wkt_func(char** args, npy_intp* dimensions, npy_intp* steps, +static void from_wkt_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { char *ip1 = args[0], *ip2 = args[1], *op1 = args[2]; npy_intp is1 = steps[0], is2 = steps[1], os1 = steps[2]; @@ -2777,7 +2777,7 @@ finish: static PyUFuncGenericFunction from_wkt_funcs[1] = {&from_wkt_func}; static char from_shapely_dtypes[2] = {NPY_OBJECT, NPY_OBJECT}; -static void from_shapely_func(char** args, npy_intp* dimensions, npy_intp* steps, +static void from_shapely_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { GEOSGeometry *in_ptr, *ret_ptr; PyObject *in1, *attr; @@ -2832,7 +2832,7 @@ static PyUFuncGenericFunction from_shapely_funcs[1] = static char to_wkb_dtypes[6] = {NPY_OBJECT, NPY_BOOL, NPY_INT, NPY_INT, NPY_BOOL, NPY_OBJECT}; -static void to_wkb_func(char** args, npy_intp* dimensions, npy_intp* steps, void* data) { +static void to_wkb_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { char *ip1 = args[0], *ip2 = args[1], *ip3 = args[2], *ip4 = args[3], *ip5 = args[4], *op1 = args[5]; npy_intp is1 = steps[0], is2 = steps[1], is3 = steps[2], is4 = steps[3], is5 = steps[4], @@ -2937,7 +2937,7 @@ static PyUFuncGenericFunction to_wkb_funcs[1] = {&to_w static char to_wkt_dtypes[6] = {NPY_OBJECT, NPY_INT, NPY_BOOL, NPY_INT, NPY_BOOL, NPY_OBJECT}; -static void to_wkt_func(char** args, npy_intp* dimensions, npy_intp* steps, void* data) { +static void to_wkt_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { char *ip1 = args[0], *ip2 = args[1], *ip3 = args[2], *ip4 = args[3], *ip5 = args[4], *op1 = args[5]; npy_intp is1 = steps[0], is2 = steps[1], is3 = steps[2], is4 = steps[3], is5 = steps[4], @@ -3022,7 +3022,7 @@ static PyUFuncGenericFunction to_wkt_funcs[1] = {&to_w #if GEOS_SINCE_3_10_0 static char from_geojson_dtypes[3] = {NPY_OBJECT, NPY_UINT8, NPY_OBJECT}; -static void from_geojson_func(char** args, npy_intp* dimensions, npy_intp* steps, +static void from_geojson_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { char *ip1 = args[0], *ip2 = args[1], *op1 = args[2]; npy_intp is1 = steps[0], is2 = steps[1], os1 = steps[2]; @@ -3100,7 +3100,7 @@ finish: static PyUFuncGenericFunction from_geojson_funcs[1] = {&from_geojson_func}; static char to_geojson_dtypes[3] = {NPY_OBJECT, NPY_INT, NPY_OBJECT}; -static void to_geojson_func(char** args, npy_intp* dimensions, npy_intp* steps, +static void to_geojson_func(char** args, const npy_intp* dimensions, const npy_intp* steps, void* data) { char *ip1 = args[0], *ip2 = args[1], *op1 = args[2]; npy_intp is1 = steps[0], is2 = steps[1], os1 = steps[2];