bc: eliminate struct BcInstPtr::results_len_before_call, it is redundant
function old new delta zbc_program_call 332 318 -14 zxc_program_exec 4147 4087 -60 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-74) Total: -74 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
		| @@ -378,7 +378,6 @@ typedef struct BcResult { | ||||
| typedef struct BcInstPtr { | ||||
| 	size_t func; | ||||
| 	size_t inst_idx; | ||||
| 	IF_BC(size_t results_len_before_call;) | ||||
| } BcInstPtr; | ||||
|  | ||||
| typedef enum BcLexType { | ||||
| @@ -5311,7 +5310,6 @@ static BC_STATUS zxc_program_read(void) | ||||
|  | ||||
| 	ip.func = BC_PROG_READ; | ||||
| 	ip.inst_idx = 0; | ||||
| 	IF_BC(ip.results_len_before_call = G.prog.results.len;) | ||||
| 	bc_vec_push(&G.prog.exestack, &ip); | ||||
|  | ||||
|  exec_err: | ||||
| @@ -5971,7 +5969,6 @@ static BC_STATUS zbc_program_call(char *code, size_t *idx) | ||||
| 		RETURN_STATUS(bc_error_fmt("function has %u parameters, but called with %u", func->nparams, nparams)); | ||||
| 	} | ||||
| 	ip.inst_idx = 0; | ||||
| 	ip.results_len_before_call = G.prog.results.len - nparams; | ||||
|  | ||||
| 	for (i = 0; i < nparams; ++i) { | ||||
| 		BcResult *arg; | ||||
| @@ -6019,11 +6016,6 @@ static BC_STATUS zbc_program_return(char inst) | ||||
| 	size_t i; | ||||
| 	BcInstPtr *ip = bc_vec_top(&G.prog.exestack); | ||||
|  | ||||
| #if SANITY_CHECKS | ||||
| 	if (!STACK_HAS_EQUAL_OR_MORE_THAN(&G.prog.results, ip->results_len_before_call + (inst == XC_INST_RET))) | ||||
| 		RETURN_STATUS(bc_error_stack_has_too_few_elements()); | ||||
| #endif | ||||
|  | ||||
| 	if (inst == XC_INST_RET) { | ||||
| 		BcStatus s; | ||||
| 		BcNum *num; | ||||
| @@ -6033,6 +6025,7 @@ static BC_STATUS zbc_program_return(char inst) | ||||
| 		if (s) RETURN_STATUS(s); | ||||
| 		bc_num_init(&res.d.n, num->len); | ||||
| 		bc_num_copy(&res.d.n, num); | ||||
| 		bc_vec_pop(&G.prog.results); | ||||
| 	//} else if (f->void_func) { | ||||
| 		//prepare "void" result in res | ||||
| 	} else { | ||||
| @@ -6040,8 +6033,6 @@ static BC_STATUS zbc_program_return(char inst) | ||||
| 		//bc_num_zero(&res.d.n); - already is | ||||
| 	} | ||||
| 	res.t = XC_RESULT_TEMP; | ||||
|  | ||||
| 	bc_vec_npop(&G.prog.results, G.prog.results.len - ip->results_len_before_call); | ||||
| 	bc_vec_push(&G.prog.results, &res); | ||||
|  | ||||
| 	bc_vec_pop(&G.prog.exestack); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user