MCPcopy Create free account
hub / github.com/boostorg/build / argument_list_pop

Function argument_list_pop

src/engine/function.cpp:3395–3421  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3393}
3394
3395void argument_list_pop( struct arg_list * formal, int32_t formal_count,
3396 FRAME * frame, STACK * s )
3397{
3398 int32_t i;
3399 for ( i = formal_count - 1; i >= 0; --i )
3400 {
3401 int32_t j;
3402 for ( j = formal[ i ].size - 1; j >= 0 ; --j )
3403 {
3404 struct argument * formal_arg = &formal[ i ].args[ j ];
3405
3406 if ( formal_arg->flags == ARG_VARIADIC )
3407 continue;
3408 if ( formal_arg->index != -1 )
3409 {
3410 LIST * const old = stack_pop( s );
3411 LIST * * const pos = &frame->module->fixed_variables[
3412 formal_arg->index ];
3413 list_free( *pos );
3414 *pos = old;
3415 }
3416 else
3417 var_set( frame->module, formal_arg->arg_name, stack_pop( s ),
3418 VAR_SET );
3419 }
3420 }
3421}
3422
3423
3424struct argument_compiler

Callers 1

function_runFunction · 0.85

Calls 3

stack_popFunction · 0.85
list_freeFunction · 0.85
var_setFunction · 0.85

Tested by

no test coverage detected