@@ -9,14 +9,6 @@ static_assert(DICTIONARY_ENTRY_MAX_LEN < HOSTCALL_BUFFER_LEN);
9
9
static_assert (METHOD_MAX_LEN < HOSTCALL_BUFFER_LEN);
10
10
static_assert (URI_MAX_LEN < HOSTCALL_BUFFER_LEN);
11
11
12
- extern " C" {
13
-
14
- __attribute__ ((weak, export_name(" cabi_realloc" ))) void *
15
- cabi_realloc(void *ptr, size_t orig_size, size_t align, size_t new_size) {
16
- return JS_realloc (CONTEXT, ptr, orig_size, new_size);
17
- }
18
- }
19
-
20
12
#define LIST_ALLOC_SIZE 50
21
13
22
14
static bool convert_result (int res, fastly_error_t *err) {
@@ -98,7 +90,7 @@ bool xqd_fastly_http_body_append(fastly_body_handle_t src, fastly_body_handle_t
98
90
99
91
bool xqd_fastly_http_body_read (fastly_body_handle_t h, uint32_t chunk_size, fastly_list_u8_t *ret,
100
92
fastly_error_t *err) {
101
- ret->ptr = static_cast <uint8_t *>(JS_malloc (CONTEXT, chunk_size ));
93
+ ret->ptr = static_cast <uint8_t *>(cabi_malloc (chunk_size, 1 ));
102
94
return convert_result (xqd_body_read (h, reinterpret_cast <char *>(ret->ptr ),
103
95
static_cast <size_t >(chunk_size), &ret->len ),
104
96
err);
@@ -172,7 +164,7 @@ bool xqd_fastly_http_req_cache_override_set(fastly_request_handle_t h,
172
164
}
173
165
174
166
bool xqd_fastly_http_req_downstream_client_ip_addr (fastly_list_u8_t *ret, fastly_error_t *err) {
175
- ret->ptr = static_cast <uint8_t *>(JS_malloc (CONTEXT, 16 ));
167
+ ret->ptr = static_cast <uint8_t *>(cabi_malloc ( 16 , 1 ));
176
168
return convert_result (
177
169
xqd_req_downstream_client_ip_addr_get (reinterpret_cast <char *>(ret->ptr ), &ret->len ), err);
178
170
}
@@ -184,19 +176,20 @@ bool xqd_fastly_http_req_new(fastly_request_handle_t *ret, fastly_error_t *err)
184
176
bool xqd_fastly_http_req_header_names_get (fastly_request_handle_t h, fastly_list_string_t *ret,
185
177
fastly_error_t *err) {
186
178
size_t str_max = LIST_ALLOC_SIZE;
179
+
187
180
xqd_world_string_t *strs =
188
- static_cast <xqd_world_string_t *>(JS_malloc (CONTEXT, str_max * sizeof (xqd_world_string_t )));
181
+ static_cast <xqd_world_string_t *>(cabi_malloc ( str_max * sizeof (xqd_world_string_t ), 1 ));
189
182
size_t str_cnt = 0 ;
190
183
size_t nwritten;
191
- char *buf = static_cast <char *>(JS_malloc (CONTEXT, HOSTCALL_BUFFER_LEN ));
184
+ char *buf = static_cast <char *>(cabi_malloc (HOSTCALL_BUFFER_LEN, 1 ));
192
185
uint32_t cursor = 0 ;
193
186
int64_t next_cursor = 0 ;
194
187
while (true ) {
195
188
if (!convert_result (
196
189
xqd_req_header_names_get (h, buf, HEADER_MAX_LEN, cursor, &next_cursor, &nwritten),
197
190
err)) {
198
- JS_free (CONTEXT, strs);
199
- JS_free (CONTEXT, buf);
191
+ cabi_free ( strs);
192
+ cabi_free ( buf);
200
193
return false ;
201
194
}
202
195
if (nwritten == 0 )
@@ -207,11 +200,11 @@ bool xqd_fastly_http_req_header_names_get(fastly_request_handle_t h, fastly_list
207
200
continue ;
208
201
if (str_cnt == str_max) {
209
202
strs = static_cast <xqd_world_string_t *>(
210
- JS_realloc (CONTEXT, strs, str_max * sizeof (xqd_world_string_t ),
211
- (str_max + LIST_ALLOC_SIZE) * sizeof (xqd_world_string_t )));
203
+ cabi_realloc ( strs, str_max * sizeof (xqd_world_string_t ), 1 ,
204
+ (str_max + LIST_ALLOC_SIZE) * sizeof (xqd_world_string_t )));
212
205
str_max += LIST_ALLOC_SIZE;
213
206
}
214
- strs[str_cnt].ptr = static_cast <char *>(JS_malloc (CONTEXT, i - offset + 1 ));
207
+ strs[str_cnt].ptr = static_cast <char *>(cabi_malloc ( i - offset + 1 , 1 ));
215
208
strs[str_cnt].len = i - offset;
216
209
memcpy (strs[str_cnt].ptr , buf + offset, i - offset + 1 );
217
210
offset = i + 1 ;
@@ -221,9 +214,9 @@ bool xqd_fastly_http_req_header_names_get(fastly_request_handle_t h, fastly_list
221
214
break ;
222
215
cursor = (uint32_t )next_cursor;
223
216
}
224
- JS_free (CONTEXT, buf);
225
- strs = static_cast <xqd_world_string_t *>(JS_realloc (
226
- CONTEXT, strs, str_max * sizeof ( xqd_world_string_t ) , str_cnt * sizeof (xqd_world_string_t )));
217
+ cabi_free ( buf);
218
+ strs = static_cast <xqd_world_string_t *>(cabi_realloc (strs, str_max * sizeof ( xqd_world_string_t ),
219
+ 1 , str_cnt * sizeof (xqd_world_string_t )));
227
220
ret->ptr = strs;
228
221
ret->len = str_cnt;
229
222
return true ;
@@ -233,17 +226,17 @@ bool xqd_fastly_http_req_header_values_get(fastly_request_handle_t h, xqd_world_
233
226
fastly_option_list_string_t *ret, fastly_error_t *err) {
234
227
size_t str_max = LIST_ALLOC_SIZE;
235
228
xqd_world_string_t *strs =
236
- static_cast <xqd_world_string_t *>(JS_malloc (CONTEXT, str_max * sizeof (xqd_world_string_t )));
229
+ static_cast <xqd_world_string_t *>(cabi_malloc ( str_max * sizeof (xqd_world_string_t ), 1 ));
237
230
size_t str_cnt = 0 ;
238
231
size_t nwritten;
239
- char *buf = static_cast <char *>(JS_malloc (CONTEXT, HOSTCALL_BUFFER_LEN ));
232
+ char *buf = static_cast <char *>(cabi_malloc (HOSTCALL_BUFFER_LEN, 1 ));
240
233
uint32_t cursor = 0 ;
241
234
int64_t next_cursor = 0 ;
242
235
while (true ) {
243
236
if (!convert_result (xqd_req_header_values_get (h, name->ptr , name->len , buf, HEADER_MAX_LEN,
244
237
cursor, &next_cursor, &nwritten),
245
238
err)) {
246
- JS_free (CONTEXT, buf);
239
+ cabi_free ( buf);
247
240
return false ;
248
241
}
249
242
if (nwritten == 0 )
@@ -254,11 +247,11 @@ bool xqd_fastly_http_req_header_values_get(fastly_request_handle_t h, xqd_world_
254
247
continue ;
255
248
if (str_cnt == str_max) {
256
249
strs = static_cast <xqd_world_string_t *>(
257
- JS_realloc (CONTEXT, strs, str_max * sizeof (xqd_world_string_t ),
258
- (str_max + LIST_ALLOC_SIZE) * sizeof (xqd_world_string_t )));
250
+ cabi_realloc ( strs, str_max * sizeof (xqd_world_string_t ), 1 ,
251
+ (str_max + LIST_ALLOC_SIZE) * sizeof (xqd_world_string_t )));
259
252
str_max += LIST_ALLOC_SIZE;
260
253
}
261
- strs[str_cnt].ptr = static_cast <char *>(JS_malloc (CONTEXT, i - offset + 1 ));
254
+ strs[str_cnt].ptr = static_cast <char *>(cabi_malloc ( i - offset + 1 , 1 ));
262
255
strs[str_cnt].len = i - offset;
263
256
memcpy (strs[str_cnt].ptr , buf + offset, i - offset + 1 );
264
257
offset = i + 1 ;
@@ -268,16 +261,16 @@ bool xqd_fastly_http_req_header_values_get(fastly_request_handle_t h, xqd_world_
268
261
break ;
269
262
cursor = (uint32_t )next_cursor;
270
263
}
271
- JS_free (CONTEXT, buf);
264
+ cabi_free ( buf);
272
265
if (str_cnt > 0 ) {
273
266
ret->is_some = true ;
274
267
ret->val .ptr = strs;
275
268
ret->val .len = str_cnt;
276
- strs = static_cast <xqd_world_string_t *>(JS_realloc (
277
- CONTEXT, strs, str_max * sizeof (xqd_world_string_t ), str_cnt * sizeof (xqd_world_string_t )));
269
+ strs = static_cast <xqd_world_string_t *>(cabi_realloc (
270
+ strs, str_max * sizeof (xqd_world_string_t ), 1 , str_cnt * sizeof (xqd_world_string_t )));
278
271
} else {
279
272
ret->is_some = false ;
280
- JS_free (CONTEXT, strs);
273
+ cabi_free ( strs);
281
274
}
282
275
return true ;
283
276
}
@@ -301,7 +294,7 @@ bool xqd_fastly_http_req_header_remove(fastly_request_handle_t h, xqd_world_stri
301
294
302
295
bool xqd_fastly_http_req_method_get (fastly_request_handle_t h, xqd_world_string_t *ret,
303
296
fastly_error_t *err) {
304
- ret->ptr = static_cast <char *>(JS_malloc (CONTEXT, METHOD_MAX_LEN ));
297
+ ret->ptr = static_cast <char *>(cabi_malloc (METHOD_MAX_LEN, 1 ));
305
298
return convert_result (
306
299
xqd_req_method_get (h, reinterpret_cast <char *>(ret->ptr ), METHOD_MAX_LEN, &ret->len ), err);
307
300
}
@@ -314,12 +307,12 @@ bool xqd_fastly_http_req_method_set(fastly_request_handle_t h, xqd_world_string_
314
307
315
308
bool xqd_fastly_http_req_uri_get (fastly_request_handle_t h, xqd_world_string_t *ret,
316
309
fastly_error_t *err) {
317
- ret->ptr = static_cast <char *>(JS_malloc (CONTEXT, URI_MAX_LEN ));
310
+ ret->ptr = static_cast <char *>(cabi_malloc (URI_MAX_LEN, 1 ));
318
311
if (!convert_result (xqd_req_uri_get (h, ret->ptr , URI_MAX_LEN, &ret->len ), err)) {
319
- JS_free (CONTEXT, ret->ptr );
312
+ cabi_free ( ret->ptr );
320
313
return false ;
321
314
}
322
- ret->ptr = static_cast <char *>(JS_realloc (CONTEXT, ret->ptr , URI_MAX_LEN, ret->len ));
315
+ ret->ptr = static_cast <char *>(cabi_realloc ( ret->ptr , URI_MAX_LEN, 1 , ret->len ));
323
316
return true ;
324
317
}
325
318
@@ -410,18 +403,18 @@ bool xqd_fastly_http_resp_new(fastly_response_handle_t *ret, fastly_error_t *err
410
403
bool xqd_fastly_http_resp_header_names_get (fastly_response_handle_t h, fastly_list_string_t *ret,
411
404
fastly_error_t *err) {
412
405
xqd_world_string_t *strs = static_cast <xqd_world_string_t *>(
413
- JS_malloc (CONTEXT, LIST_ALLOC_SIZE * sizeof (xqd_world_string_t )));
406
+ cabi_malloc ( LIST_ALLOC_SIZE * sizeof (xqd_world_string_t ), 1 ));
414
407
size_t str_max = LIST_ALLOC_SIZE;
415
408
size_t str_cnt = 0 ;
416
409
size_t nwritten;
417
- char *buf = static_cast <char *>(JS_malloc (CONTEXT, HOSTCALL_BUFFER_LEN ));
410
+ char *buf = static_cast <char *>(cabi_malloc (HOSTCALL_BUFFER_LEN, 1 ));
418
411
uint32_t cursor = 0 ;
419
412
int64_t next_cursor = 0 ;
420
413
while (true ) {
421
414
if (!convert_result (
422
415
xqd_resp_header_names_get (h, buf, HEADER_MAX_LEN, cursor, &next_cursor, &nwritten),
423
416
err)) {
424
- JS_free (CONTEXT, buf);
417
+ cabi_free ( buf);
425
418
return false ;
426
419
}
427
420
if (nwritten == 0 ) {
@@ -433,11 +426,11 @@ bool xqd_fastly_http_resp_header_names_get(fastly_response_handle_t h, fastly_li
433
426
continue ;
434
427
if (str_cnt == str_max) {
435
428
strs = static_cast <xqd_world_string_t *>(
436
- JS_realloc (CONTEXT, strs, str_max * sizeof (xqd_world_string_t ),
437
- (str_max + LIST_ALLOC_SIZE) * sizeof (xqd_world_string_t )));
429
+ cabi_realloc ( strs, str_max * sizeof (xqd_world_string_t ), 1 ,
430
+ (str_max + LIST_ALLOC_SIZE) * sizeof (xqd_world_string_t )));
438
431
str_max += LIST_ALLOC_SIZE;
439
432
}
440
- strs[str_cnt].ptr = static_cast <char *>(JS_malloc (CONTEXT, i - offset + 1 ));
433
+ strs[str_cnt].ptr = static_cast <char *>(cabi_malloc ( i - offset + 1 , 1 ));
441
434
strs[str_cnt].len = i - offset;
442
435
memcpy (strs[str_cnt].ptr , buf + offset, i - offset + 1 );
443
436
offset = i + 1 ;
@@ -447,9 +440,9 @@ bool xqd_fastly_http_resp_header_names_get(fastly_response_handle_t h, fastly_li
447
440
break ;
448
441
cursor = (uint32_t )next_cursor;
449
442
}
450
- JS_free (CONTEXT, buf);
451
- strs = static_cast <xqd_world_string_t *>(JS_realloc (
452
- CONTEXT, strs, str_max * sizeof ( xqd_world_string_t ) , str_cnt * sizeof (xqd_world_string_t )));
443
+ cabi_free ( buf);
444
+ strs = static_cast <xqd_world_string_t *>(cabi_realloc (strs, str_max * sizeof ( xqd_world_string_t ),
445
+ 1 , str_cnt * sizeof (xqd_world_string_t )));
453
446
ret->ptr = strs;
454
447
ret->len = str_cnt;
455
448
return true ;
@@ -458,17 +451,17 @@ bool xqd_fastly_http_resp_header_names_get(fastly_response_handle_t h, fastly_li
458
451
bool xqd_fastly_http_resp_header_values_get (fastly_response_handle_t h, xqd_world_string_t *name,
459
452
fastly_option_list_string_t *ret, fastly_error_t *err) {
460
453
size_t str_max = LIST_ALLOC_SIZE;
461
- xqd_world_string_t *strs = static_cast <xqd_world_string_t *>(JS_malloc (CONTEXT, str_max ));
454
+ xqd_world_string_t *strs = static_cast <xqd_world_string_t *>(cabi_malloc (str_max, 1 ));
462
455
size_t str_cnt = 0 ;
463
456
size_t nwritten;
464
- char *buf = static_cast <char *>(JS_malloc (CONTEXT, HOSTCALL_BUFFER_LEN ));
457
+ char *buf = static_cast <char *>(cabi_malloc (HOSTCALL_BUFFER_LEN, 1 ));
465
458
uint32_t cursor = 0 ;
466
459
int64_t next_cursor = 0 ;
467
460
while (true ) {
468
461
if (!convert_result (xqd_resp_header_values_get (h, name->ptr , name->len , buf, HEADER_MAX_LEN,
469
462
cursor, &next_cursor, &nwritten),
470
463
err)) {
471
- JS_free (CONTEXT, buf);
464
+ cabi_free ( buf);
472
465
return false ;
473
466
}
474
467
if (nwritten == 0 )
@@ -479,11 +472,11 @@ bool xqd_fastly_http_resp_header_values_get(fastly_response_handle_t h, xqd_worl
479
472
continue ;
480
473
if (str_cnt == str_max) {
481
474
strs = static_cast <xqd_world_string_t *>(
482
- JS_realloc (CONTEXT, strs, str_max * sizeof (xqd_world_string_t ),
483
- (str_max + LIST_ALLOC_SIZE) * sizeof (xqd_world_string_t )));
475
+ cabi_realloc ( strs, str_max * sizeof (xqd_world_string_t ), 1 ,
476
+ (str_max + LIST_ALLOC_SIZE) * sizeof (xqd_world_string_t )));
484
477
str_max += LIST_ALLOC_SIZE;
485
478
}
486
- strs[str_cnt].ptr = static_cast <char *>(JS_malloc (CONTEXT, i - offset + 1 ));
479
+ strs[str_cnt].ptr = static_cast <char *>(cabi_malloc ( i - offset + 1 , 1 ));
487
480
strs[str_cnt].len = i - offset;
488
481
memcpy (strs[str_cnt].ptr , buf + offset, i - offset + 1 );
489
482
offset = i + 1 ;
@@ -493,16 +486,16 @@ bool xqd_fastly_http_resp_header_values_get(fastly_response_handle_t h, xqd_worl
493
486
break ;
494
487
cursor = (uint32_t )next_cursor;
495
488
}
496
- JS_free (CONTEXT, buf);
489
+ cabi_free ( buf);
497
490
if (str_cnt > 0 ) {
498
491
ret->is_some = true ;
499
492
ret->val .ptr = strs;
500
493
ret->val .len = str_cnt;
501
- strs = static_cast <xqd_world_string_t *>(JS_realloc (
502
- CONTEXT, strs, str_max * sizeof (xqd_world_string_t ), str_cnt * sizeof (xqd_world_string_t )));
494
+ strs = static_cast <xqd_world_string_t *>(cabi_realloc (
495
+ strs, str_max * sizeof (xqd_world_string_t ), 1 , str_cnt * sizeof (xqd_world_string_t )));
503
496
} else {
504
497
ret->is_some = false ;
505
- JS_free (CONTEXT, strs);
498
+ cabi_free ( strs);
506
499
}
507
500
return true ;
508
501
}
@@ -556,34 +549,34 @@ bool xqd_fastly_dictionary_open(xqd_world_string_t *name, fastly_dictionary_hand
556
549
557
550
bool xqd_fastly_dictionary_get (fastly_dictionary_handle_t h, xqd_world_string_t *key,
558
551
fastly_option_string_t *ret, fastly_error_t *err) {
559
- ret->val .ptr = static_cast <char *>(JS_malloc (CONTEXT, DICTIONARY_ENTRY_MAX_LEN ));
552
+ ret->val .ptr = static_cast <char *>(cabi_malloc (DICTIONARY_ENTRY_MAX_LEN, 1 ));
560
553
if (!convert_result (xqd_dictionary_get (h, key->ptr , key->len , ret->val .ptr ,
561
554
DICTIONARY_ENTRY_MAX_LEN, &ret->val .len ),
562
555
err)) {
563
556
if (*err == FASTLY_ERROR_OPTIONAL_NONE) {
564
557
ret->is_some = false ;
565
558
return true ;
566
559
} else {
567
- JS_free (CONTEXT, ret->val .ptr );
560
+ cabi_free ( ret->val .ptr );
568
561
return false ;
569
562
}
570
563
}
571
564
ret->is_some = true ;
572
- ret->val .ptr = static_cast < char *>(
573
- JS_realloc (CONTEXT, ret->val .ptr , DICTIONARY_ENTRY_MAX_LEN, ret->val .len ));
565
+ ret->val .ptr =
566
+ static_cast < char *>( cabi_realloc ( ret->val .ptr , DICTIONARY_ENTRY_MAX_LEN, 1 , ret->val .len ));
574
567
return true ;
575
568
}
576
569
577
570
bool xqd_fastly_geo_lookup (fastly_list_u8_t *addr_octets, xqd_world_string_t *ret,
578
571
fastly_error_t *err) {
579
- ret->ptr = static_cast <char *>(JS_malloc (CONTEXT, HOSTCALL_BUFFER_LEN ));
572
+ ret->ptr = static_cast <char *>(cabi_malloc (HOSTCALL_BUFFER_LEN, 1 ));
580
573
if (!convert_result (xqd_geo_lookup (reinterpret_cast <char *>(addr_octets->ptr ), addr_octets->len ,
581
574
ret->ptr , HOSTCALL_BUFFER_LEN, &ret->len ),
582
575
err)) {
583
- JS_free (CONTEXT, ret->ptr );
576
+ cabi_free ( ret->ptr );
584
577
return false ;
585
578
}
586
- ret->ptr = static_cast <char *>(JS_realloc (CONTEXT, ret->ptr , HOSTCALL_BUFFER_LEN, ret->len ));
579
+ ret->ptr = static_cast <char *>(cabi_realloc ( ret->ptr , HOSTCALL_BUFFER_LEN, 1 , ret->len ));
587
580
return true ;
588
581
}
589
582
0 commit comments