| 17 | static void ProcCallFree(OpBase *opBase); |
| 18 | |
| 19 | static Record _yield(OpProcCall *op) { |
| 20 | SIValue *outputs = Proc_Step(op->procedure); |
| 21 | if(outputs == NULL) return NULL; |
| 22 | |
| 23 | Record clone = OpBase_CloneRecord(op->r); |
| 24 | for(uint i = 0; i < array_len(op->output); i++) { |
| 25 | int idx = op->yield_map[i].rec_idx; |
| 26 | uint proc_out_idx = op->yield_map[i].proc_out_idx; |
| 27 | SIValue val = outputs[proc_out_idx]; |
| 28 | Record_Add(clone, idx, val); |
| 29 | } |
| 30 | |
| 31 | return clone; |
| 32 | } |
| 33 | |
| 34 | static void _evaluate_proc_args(OpProcCall *op) { |
| 35 | // evaluate arguments, free args from previous call |
no test coverage detected