Skip to content

Commit 10ef702

Browse files
committed
avoid duplicating name lookup
1 parent 9f71f16 commit 10ef702

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

Python/codegen.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3760,10 +3760,11 @@ maybe_optimize_function_call(compiler *c, expr_ty e, jump_target_label end)
37603760
const_oparg = CONSTANT_BUILTIN_TUPLE;
37613761
}
37623762
if (const_oparg != -1) {
3763-
RETURN_IF_ERROR(codegen_nameop(c, loc, func->v.Name.id, Load));
3763+
ADDOP_I(c, loc, COPY, 1); // the function
37643764
ADDOP_I(c, loc, LOAD_COMMON_CONSTANT, const_oparg);
37653765
ADDOP_COMPARE(c, loc, Is);
37663766
ADDOP_JUMP(c, loc, POP_JUMP_IF_FALSE, skip_optimization);
3767+
ADDOP(c, loc, POP_TOP);
37673768

37683769
if (const_oparg == CONSTANT_BUILTIN_TUPLE) {
37693770
ADDOP_I(c, loc, BUILD_LIST, 0);
@@ -3916,9 +3917,9 @@ codegen_call(compiler *c, expr_ty e)
39163917
return SUCCESS;
39173918
}
39183919
NEW_JUMP_TARGET_LABEL(c, skip_normal_call);
3919-
RETURN_IF_ERROR(maybe_optimize_function_call(c, e, skip_normal_call));
39203920
RETURN_IF_ERROR(check_caller(c, e->v.Call.func));
39213921
VISIT(c, expr, e->v.Call.func);
3922+
RETURN_IF_ERROR(maybe_optimize_function_call(c, e, skip_normal_call));
39223923
location loc = LOC(e->v.Call.func);
39233924
ADDOP(c, loc, PUSH_NULL);
39243925
loc = LOC(e);

0 commit comments

Comments
 (0)