awk: in parsing, remove superfluous NEWLINE check; optimize builtin arg evaluation

function                                             old     new   delta
exec_builtin                                        1149    1145      -4

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2021-07-12 13:30:30 +02:00
parent 8d269ef859
commit ab755e3717

View File

@ -1589,8 +1589,8 @@ static void chain_group(void)
chain_until_rbrace(); chain_until_rbrace();
return; return;
} }
if (tc & (TS_OPSEQ | TC_SEMICOL | TC_NEWLINE)) { if (tc & (TS_OPSEQ | TC_SEMICOL)) {
debug_printf_parse("%s: TS_OPSEQ | TC_SEMICOL | TC_NEWLINE\n", __func__); debug_printf_parse("%s: TS_OPSEQ | TC_SEMICOL\n", __func__);
rollback_token(); rollback_token();
chain_expr(OC_EXEC | Vx); chain_expr(OC_EXEC | Vx);
return; return;
@ -2582,10 +2582,11 @@ static NOINLINE var *exec_builtin(node *op, var *res)
av[2] = av[3] = NULL; av[2] = av[3] = NULL;
for (i = 0; i < 4 && op; i++) { for (i = 0; i < 4 && op; i++) {
an[i] = nextarg(&op); an[i] = nextarg(&op);
if (isr & 0x09000000) if (isr & 0x09000000) {
av[i] = evaluate(an[i], TMPVAR(i)); av[i] = evaluate(an[i], TMPVAR(i));
if (isr & 0x08000000) if (isr & 0x08000000)
as[i] = getvar_s(av[i]); as[i] = getvar_s(av[i]);
}
isr >>= 1; isr >>= 1;
} }