@ -1,4 +1,5 @@
# include "Python.h"
# include "pycore_initconfig.h"
# include "pycore_pyerrors.h"
# include "pycore_pystate.h"
# include "frameobject.h"
@ -28,12 +29,12 @@ _Py_IDENTIFIER(__name__);
/* Given a module object, get its per-module state. */
static WarningsState *
_Warnings_GetState ( )
warnings_get_state ( void )
{
PyThreadState * tstate = _PyThreadState_GET ( ) ;
if ( tstate = = NULL ) {
_PyErr_SetString ( tstate , PyExc_RuntimeError ,
" _Warnings_GetS tate: could not identify "
" warnings_get_s tate: could not identify "
" current interpreter " ) ;
return NULL ;
}
@ -42,7 +43,7 @@ _Warnings_GetState()
/* Clear the given warnings module state. */
static void
_Warnings_ClearS tate( WarningsState * st )
warnings_clear_s tate( WarningsState * st )
{
Py_CLEAR ( st - > filters ) ;
Py_CLEAR ( st - > once_registry ) ;
@ -112,7 +113,7 @@ init_filters(void)
/* Initialize the given warnings module state. */
static int
_Warnings_InitS tate( WarningsState * st )
warnings_init_s tate( WarningsState * st )
{
if ( st - > filters = = NULL ) {
st - > filters = init_filters ( ) ;
@ -140,7 +141,7 @@ _Warnings_InitState(WarningsState *st)
return 0 ;
error :
_Warnings_ClearS tate( st ) ;
warnings_clear_s tate( st ) ;
return - 1 ;
}
@ -286,7 +287,7 @@ get_filter(PyObject *category, PyObject *text, Py_ssize_t lineno,
Py_ssize_t i ;
PyObject * warnings_filters ;
_Py_IDENTIFIER ( filters ) ;
WarningsState * st = _Warnings_GetS tate( ) ;
WarningsState * st = warnings_get_s tate( ) ;
if ( st = = NULL ) {
return NULL ;
}
@ -388,7 +389,7 @@ already_warned(PyObject *registry, PyObject *key, int should_set)
if ( key = = NULL )
return - 1 ;
WarningsState * st = _Warnings_GetS tate( ) ;
WarningsState * st = warnings_get_s tate( ) ;
if ( st = = NULL ) {
return - 1 ;
}
@ -706,7 +707,7 @@ warn_explicit(PyObject *category, PyObject *message,
if ( _PyUnicode_EqualToASCIIString ( action , " once " ) ) {
if ( registry = = NULL | | registry = = Py_None ) {
WarningsState * st = _Warnings_GetS tate( ) ;
WarningsState * st = warnings_get_s tate( ) ;
if ( st = = NULL ) {
goto cleanup ;
}
@ -1066,7 +1067,7 @@ warnings_warn_explicit(PyObject *self, PyObject *args, PyObject *kwds)
static PyObject *
warnings_filters_mutated ( PyObject * self , PyObject * args )
{
WarningsState * st = _Warnings_GetS tate( ) ;
WarningsState * st = warnings_get_s tate( ) ;
if ( st = = NULL ) {
return NULL ;
}
@ -1333,6 +1334,16 @@ static struct PyModuleDef warningsmodule = {
} ;
PyStatus
_PyWarnings_InitState ( PyThreadState * tstate )
{
if ( warnings_init_state ( & tstate - > interp - > warnings ) < 0 ) {
return _PyStatus_ERR ( " can't initialize warnings " ) ;
}
return _PyStatus_OK ( ) ;
}
PyMODINIT_FUNC
_PyWarnings_Init ( void )
{
@ -1343,11 +1354,11 @@ _PyWarnings_Init(void)
return NULL ;
}
WarningsState * st = _Warnings_GetS tate( ) ;
WarningsState * st = warnings_get_s tate( ) ;
if ( st = = NULL ) {
goto error ;
}
if ( _Warnings_InitS tate( st ) < 0 ) {
if ( warnings_init_s tate( st ) < 0 ) {
goto error ;
}
@ -1370,7 +1381,7 @@ _PyWarnings_Init(void)
error :
if ( st ! = NULL ) {
_Warnings_ClearS tate( st ) ;
warnings_clear_s tate( st ) ;
}
Py_DECREF ( m ) ;
return NULL ;
@ -1380,5 +1391,5 @@ error:
void
_PyWarnings_Fini ( PyInterpreterState * interp )
{
_Warnings_ClearS tate( & interp - > warnings ) ;
warnings_clear_s tate( & interp - > warnings ) ;
}