Ticket #1346: cage.2.patch
File cage.2.patch, 1.9 KB (added by jimmy, 12 years ago) |
---|
-
include/parrot/pobj.h
100 100 101 101 #define PMC_data(pmc) (pmc)->data 102 102 #define PMC_data_typed(pmc, type) (type)(pmc)->data 103 /* do not allow PMC_data2 as lvalue */104 #define PMC_data0(pmc) (1 ? (pmc)->data : 0)105 #define PMC_data0_typed(pmc) (type)(1 ? (pmc)->data : 0)106 103 #define PMC_metadata(pmc) ((pmc)->_metadata) 107 104 #define PMC_sync(pmc) ((pmc)->_synchronize) 108 105 -
src/call/args.c
939 939 { 940 940 ASSERT_ARGS(fill_params) 941 941 PMC *named_used_list = PMCNULL; 942 PMC *arg_sig;943 942 INTVAL *raw_params; 944 943 INTVAL param_count = VTABLE_elements(interp, raw_sig); 945 944 INTVAL param_index = 0; … … 963 962 return; 964 963 } 965 964 966 positional_args = VTABLE_elements(interp, call_object);967 GETATTR_CallSignature_arg_flags(interp, call_object, arg_sig);968 965 GETATTR_FixedIntegerArray_int_array(interp, raw_sig, raw_params); 969 966 970 967 /* EXPERIMENTAL! This block adds provisional :call_sig param support on the … … 988 985 /* First iterate over positional args and positional parameters. */ 989 986 arg_index = 0; 990 987 param_index = 0; 988 positional_args = VTABLE_elements(interp, call_object); 991 989 while (1) { 992 990 INTVAL param_flags; 993 991 … … 1169 1167 } 1170 1168 1171 1169 if (arg_index < positional_args) { 1170 PMC *arg_sig; 1171 1172 GETATTR_CallSignature_arg_flags(interp, call_object, arg_sig); 1173 1172 1174 /* We've used up all the positional parameters, but have extra 1173 1175 * positional args left over. */ 1174 1176 if (VTABLE_get_integer_keyed_int(interp, arg_sig, arg_index) & PARROT_ARG_NAME) {