@@ -400,27 +400,28 @@ PyCode_New(int argcount, int kwonlyargcount,
400
400
PyCodeObject *
401
401
PyCode_NewEmpty (const char * filename , const char * funcname , int firstlineno )
402
402
{
403
- static PyObject * emptystring = NULL ;
404
- static PyObject * nulltuple = NULL ;
403
+ PyObject * emptystring = NULL ;
404
+ PyObject * nulltuple = NULL ;
405
405
PyObject * filename_ob = NULL ;
406
406
PyObject * funcname_ob = NULL ;
407
407
PyCodeObject * result = NULL ;
408
+
409
+ emptystring = PyBytes_FromString ("" );
408
410
if (emptystring == NULL ) {
409
- emptystring = PyBytes_FromString ("" );
410
- if (emptystring == NULL )
411
- goto failed ;
411
+ goto failed ;
412
412
}
413
+ nulltuple = PyTuple_New (0 );
413
414
if (nulltuple == NULL ) {
414
- nulltuple = PyTuple_New (0 );
415
- if (nulltuple == NULL )
416
- goto failed ;
415
+ goto failed ;
417
416
}
418
417
funcname_ob = PyUnicode_FromString (funcname );
419
- if (funcname_ob == NULL )
418
+ if (funcname_ob == NULL ) {
420
419
goto failed ;
420
+ }
421
421
filename_ob = PyUnicode_DecodeFSDefault (filename );
422
- if (filename_ob == NULL )
422
+ if (filename_ob == NULL ) {
423
423
goto failed ;
424
+ }
424
425
425
426
struct _PyCodeConstructor con = {
426
427
.filename = filename_ob ,
@@ -438,6 +439,8 @@ PyCode_NewEmpty(const char *filename, const char *funcname, int firstlineno)
438
439
result = _PyCode_New (& con );
439
440
440
441
failed :
442
+ Py_XDECREF (emptystring );
443
+ Py_XDECREF (nulltuple );
441
444
Py_XDECREF (funcname_ob );
442
445
Py_XDECREF (filename_ob );
443
446
return result ;
0 commit comments