Skip to content

Commit e356588

Browse files
Stop using statics in PyCode_NewEmpty().
1 parent fa5d83e commit e356588

File tree

1 file changed

+13
-10
lines changed

1 file changed

+13
-10
lines changed

Objects/codeobject.c

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -400,27 +400,28 @@ PyCode_New(int argcount, int kwonlyargcount,
400400
PyCodeObject *
401401
PyCode_NewEmpty(const char *filename, const char *funcname, int firstlineno)
402402
{
403-
static PyObject *emptystring = NULL;
404-
static PyObject *nulltuple = NULL;
403+
PyObject *emptystring = NULL;
404+
PyObject *nulltuple = NULL;
405405
PyObject *filename_ob = NULL;
406406
PyObject *funcname_ob = NULL;
407407
PyCodeObject *result = NULL;
408+
409+
emptystring = PyBytes_FromString("");
408410
if (emptystring == NULL) {
409-
emptystring = PyBytes_FromString("");
410-
if (emptystring == NULL)
411-
goto failed;
411+
goto failed;
412412
}
413+
nulltuple = PyTuple_New(0);
413414
if (nulltuple == NULL) {
414-
nulltuple = PyTuple_New(0);
415-
if (nulltuple == NULL)
416-
goto failed;
415+
goto failed;
417416
}
418417
funcname_ob = PyUnicode_FromString(funcname);
419-
if (funcname_ob == NULL)
418+
if (funcname_ob == NULL) {
420419
goto failed;
420+
}
421421
filename_ob = PyUnicode_DecodeFSDefault(filename);
422-
if (filename_ob == NULL)
422+
if (filename_ob == NULL) {
423423
goto failed;
424+
}
424425

425426
struct _PyCodeConstructor con = {
426427
.filename = filename_ob,
@@ -438,6 +439,8 @@ PyCode_NewEmpty(const char *filename, const char *funcname, int firstlineno)
438439
result = _PyCode_New(&con);
439440

440441
failed:
442+
Py_XDECREF(emptystring);
443+
Py_XDECREF(nulltuple);
441444
Py_XDECREF(funcname_ob);
442445
Py_XDECREF(filename_ob);
443446
return result;

0 commit comments

Comments
 (0)