@@ -301,61 +301,6 @@ void _cleanup_ffi_type(ffi_type * p_rtype) {
301
301
free (p_rtype );
302
302
}
303
303
304
- metac_value_t * metac_new_value_with_call_params (metac_entry_t * p_entry ) {
305
- metac_value_t * p_val = NULL ;
306
- metac_parameter_storage_t * p_param_storage = metac_new_parameter_storage ();
307
- if (p_param_storage != NULL ) {
308
- p_val = metac_new_value (p_entry , p_param_storage );
309
- }
310
- return p_val ;
311
- }
312
-
313
- void metac_value_with_call_params_delete (metac_value_t * p_param_value ) {
314
- metac_parameter_storage_t * p_param_storage = (metac_parameter_storage_t * )metac_value_addr (p_param_value );
315
- metac_value_delete (p_param_value );
316
- metac_parameter_storage_delete (p_param_storage );
317
- }
318
-
319
- metac_value_t * metac_new_value_with_call_result (metac_value_t * p_param_storage_val ) {
320
- _check_ (
321
- p_param_storage_val == NULL ||
322
- metac_value_has_parameter_load (p_param_storage_val ) == 0 , NULL );
323
-
324
- metac_value_t * p_res_value = NULL ;
325
- metac_size_t res_sz = 0 ;
326
-
327
- metac_entry_t * p_param_storage_entry = metac_value_entry (p_param_storage_val );
328
- _check_ (p_param_storage_entry == NULL , NULL );
329
- _check_ (metac_entry_has_parameters (p_param_storage_entry ) == 0 , NULL );
330
-
331
- if (metac_entry_has_result (p_param_storage_entry ) != 0 ) {
332
- metac_entry_t * p_res_entry = metac_entry_result_type (p_param_storage_entry );
333
- _check_ (p_res_entry == NULL , NULL );
334
-
335
- if (metac_entry_byte_size (p_res_entry , & res_sz ) != 0 ) {
336
- return NULL ;
337
- }
338
- _check_ (res_sz <= 0 , NULL );
339
-
340
- void * p_res_mem = calloc (1 , res_sz );
341
- p_res_value = metac_new_value (p_res_entry , p_res_mem );
342
- if (p_res_value == NULL ) {
343
- free (p_res_mem );
344
- return NULL ;
345
- }
346
- }
347
-
348
- return p_res_value ;
349
- }
350
-
351
- void metac_value_with_call_result_delete (metac_value_t * p_res_value ) {
352
- if (p_res_value == NULL ) {
353
- return ;
354
- }
355
- free (metac_value_addr (p_res_value ));
356
- metac_value_delete (p_res_value );
357
- }
358
-
359
304
int metac_value_call (metac_value_t * p_param_storage_val , void (* fn )(void ), metac_value_t * p_res_value ) {
360
305
_check_ (
361
306
p_param_storage_val == NULL ||
@@ -475,6 +420,7 @@ int metac_value_call(metac_value_t * p_param_storage_val, void (*fn)(void), meta
475
420
476
421
_cleanup_ffi_type (rtype );
477
422
if (res_addr == & rc ) {
423
+ assert (metac_entry_has_result (p_param_storage_entry ) != 0 );
478
424
// we need to pass result back to p_res_value if we used rc as buf (for small data)
479
425
uint8_t * p_res_buf = metac_value_addr (p_res_value );
480
426
for (metac_size_t i = 0 ; i < res_sz ; ++ i ) {
0 commit comments