Ticket #1346: src.call.args.c.patch

File src.call.args.c.patch, 1.3 KB (added by jkeenan, 5 years ago)

Reduction of jimmy's cage.2.patch to the one remaining file to be considered

  • src/call/args.c

     
    939939{ 
    940940    ASSERT_ARGS(fill_params) 
    941941    PMC    *named_used_list = PMCNULL; 
    942     PMC    *arg_sig; 
    943942    INTVAL *raw_params; 
    944943    INTVAL  param_count     = VTABLE_elements(interp, raw_sig); 
    945944    INTVAL  param_index     = 0; 
     
    963962        return; 
    964963    } 
    965964 
    966     positional_args = VTABLE_elements(interp, call_object); 
    967     GETATTR_CallSignature_arg_flags(interp, call_object, arg_sig); 
    968965    GETATTR_FixedIntegerArray_int_array(interp, raw_sig, raw_params); 
    969966 
    970967    /* EXPERIMENTAL! This block adds provisional :call_sig param support on the 
     
    988985    /* First iterate over positional args and positional parameters. */ 
    989986    arg_index = 0; 
    990987    param_index = 0; 
     988    positional_args = VTABLE_elements(interp, call_object); 
    991989    while (1) { 
    992990        INTVAL param_flags; 
    993991 
     
    11691167        } 
    11701168 
    11711169        if (arg_index < positional_args) { 
     1170            PMC *arg_sig; 
     1171 
     1172            GETATTR_CallSignature_arg_flags(interp, call_object, arg_sig); 
     1173 
    11721174            /* We've used up all the positional parameters, but have extra 
    11731175             * positional args left over. */ 
    11741176            if (VTABLE_get_integer_keyed_int(interp, arg_sig, arg_index) & PARROT_ARG_NAME) {