@@ -564,7 +564,8 @@ PyObject *
564564_PyLazyImport_LoadChild (PyThreadState * tstate , PyObject * declaration ,
565565 PyObject * name )
566566{
567- PyLazyImportObject * source = (PyLazyImportObject * )declaration ;
567+ assert (PyLazyImport_CheckExact (declaration ));
568+ PyLazyImportObject * source = PyLazyImportObject_CAST (declaration );
568569 PyObject * lz = _PyLazyImport_New (NULL , source -> lz_builtins , name , NULL );
569570 Py_ssize_t end = PyUnicode_GET_LENGTH (name );
570571 Py_ssize_t dot = PyUnicode_FindChar (name , '.' , 0 , end , 1 );
@@ -587,7 +588,7 @@ _PyLazyImport_LoadChild(PyThreadState *tstate, PyObject *declaration,
587588 if (lz == NULL ) {
588589 return NULL ;
589590 }
590- PyLazyImportObject * child = ( PyLazyImportObject * ) lz ;
591+ PyLazyImportObject * child = PyLazyImportObject_CAST ( lz ) ;
591592 child -> lz_code = (PyCodeObject * )Py_XNewRef (source -> lz_code );
592593 child -> lz_instr_offset = source -> lz_instr_offset ;
593594 PyObject * result = _PyImport_LoadLazyImportTstate (tstate , lz );
@@ -605,8 +606,9 @@ _PyLazyImport_LoadChild(PyThreadState *tstate, PyObject *declaration,
605606int
606607_PyLazyImport_IsActive (PyObject * declaration )
607608{
609+ assert (PyLazyImport_CheckExact (declaration ));
608610 return FT_ATOMIC_LOAD_INT_RELAXED (
609- (( PyLazyImportObject * ) declaration )-> lz_active );
611+ PyLazyImportObject_CAST ( declaration )-> lz_active );
610612}
611613
612614// Loading pkg.child can replace a placeholder in pkg.child with the module
0 commit comments