From 469d1a70cecc918499c288fc0e5e3d79711bc5e5 Mon Sep 17 00:00:00 2001 From: Jeroen Demeyer Date: Wed, 3 Jul 2019 12:52:21 +0200 Subject: [PATCH] bpo-37484: use _PyObject_Vectorcall for __exit__ (GH-14557) --- Python/ceval.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/Python/ceval.c b/Python/ceval.c index 5d29d41cf8..888749b699 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -3314,7 +3314,6 @@ main_loop: Finally we push the result of the call. */ - PyObject *stack[3]; PyObject *exit_func; PyObject *exc, *val, *tb, *res; @@ -3351,10 +3350,9 @@ main_loop: block->b_level--; } - stack[0] = exc; - stack[1] = val; - stack[2] = tb; - res = _PyObject_FastCall(exit_func, stack, 3); + PyObject *stack[4] = {NULL, exc, val, tb}; + res = _PyObject_Vectorcall(exit_func, stack + 1, + 3 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL); Py_DECREF(exit_func); if (res == NULL) goto error; -- 2.40.0