summaryrefslogtreecommitdiff
path: root/graphics/py-pygeos/files/patch-clang16
blob: d5f1d76adc148abe36ea726014e9bf46a23ef37e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
--- 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];