Skip to content

Commit b3ff73d

Browse files
committed
labels removed
1 parent 1a8a56c commit b3ff73d

File tree

1 file changed

+15
-13
lines changed

1 file changed

+15
-13
lines changed

Modules/_functoolsmodule.c

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -460,11 +460,18 @@ partial_vectorcall(PyObject *self, PyObject *const *args,
460460
if (pto_kw_merged == NULL) {
461461
pto_kw_merged = PyDict_Copy(pto->kw);
462462
if (pto_kw_merged == NULL) {
463-
goto error_2;
463+
if (stack != small_stack) {
464+
PyMem_Free(stack);
465+
}
466+
return NULL;
464467
}
465468
}
466469
if (PyDict_SetItem(pto_kw_merged, key, val) < 0) {
467-
goto error_1;
470+
Py_XDECREF(pto_kw_merged);
471+
if (stack != small_stack) {
472+
PyMem_Free(stack);
473+
}
474+
return NULL;
468475
}
469476
}
470477
else {
@@ -497,8 +504,13 @@ partial_vectorcall(PyObject *self, PyObject *const *args,
497504
if (n_merges && stack != small_stack) {
498505
tmp_stack = PyMem_Realloc(stack, (tot_nargskw - n_merges) * sizeof(PyObject *));
499506
if (tmp_stack == NULL) {
507+
Py_DECREF(tot_kwnames);
508+
Py_XDECREF(pto_kw_merged);
509+
if (stack != small_stack) {
510+
PyMem_Free(stack);
511+
}
500512
PyErr_NoMemory();
501-
goto error_0;
513+
return NULL;
502514
}
503515
stack = tmp_stack;
504516
}
@@ -539,16 +551,6 @@ partial_vectorcall(PyObject *self, PyObject *const *args,
539551
Py_DECREF(tot_kwnames);
540552
}
541553
return ret;
542-
543-
error_0:
544-
Py_DECREF(tot_kwnames);
545-
error_1:
546-
Py_XDECREF(pto_kw_merged);
547-
error_2:
548-
if (stack != small_stack) {
549-
PyMem_Free(stack);
550-
}
551-
return NULL;
552554
}
553555

554556
/* Set pto->vectorcall depending on the parameters of the partial object */

0 commit comments

Comments
 (0)