@@ -259,6 +259,19 @@ import_get_module(PyThreadState *tstate, PyObject *name)
259259 return m ;
260260}
261261
262+ static PyObject *
263+ get_importtime_name (PyObject * name )
264+ {
265+ PyObject * exc = PyErr_GetRaisedException ();
266+ PyObject * encoded = PyUnicode_AsEncodedString (name , "utf-8" ,
267+ "backslashreplace" );
268+ if (encoded == NULL ) {
269+ PyErr_Clear ();
270+ }
271+ PyErr_SetRaisedException (exc );
272+ return encoded ;
273+ }
274+
262275static int
263276import_ensure_initialized (PyInterpreterState * interp , PyObject * mod , PyObject * name )
264277{
@@ -296,8 +309,11 @@ import_ensure_initialized(PyInterpreterState *interp, PyObject *mod, PyObject *n
296309 if (_PyInterpreterState_GetConfig (interp )-> import_time == 2 ) {
297310 _IMPORT_TIME_HEADER (interp );
298311#define import_level FIND_AND_LOAD(interp).import_level
312+ PyObject * encoded_name = get_importtime_name (name );
299313 fprintf (stderr , "import time: cached | cached | %*s\n" ,
300- import_level * 2 , PyUnicode_AsUTF8 (name ));
314+ import_level * 2 ,
315+ encoded_name != NULL ? PyBytes_AS_STRING (encoded_name ) : "?" );
316+ Py_XDECREF (encoded_name );
301317#undef import_level
302318 }
303319
@@ -3880,10 +3896,13 @@ import_find_and_load(PyThreadState *tstate, PyObject *abs_name)
38803896 PyTime_t cum = t2 - t1 ;
38813897
38823898 import_level -- ;
3899+ PyObject * encoded_name = get_importtime_name (abs_name );
38833900 fprintf (stderr , "import time: %9ld | %10ld | %*s%s\n" ,
38843901 (long )_PyTime_AsMicroseconds (cum - accumulated , _PyTime_ROUND_CEILING ),
38853902 (long )_PyTime_AsMicroseconds (cum , _PyTime_ROUND_CEILING ),
3886- import_level * 2 , "" , PyUnicode_AsUTF8 (abs_name ));
3903+ import_level * 2 , "" ,
3904+ encoded_name != NULL ? PyBytes_AS_STRING (encoded_name ) : "?" );
3905+ Py_XDECREF (encoded_name );
38873906
38883907 accumulated = accumulated_copy + cum ;
38893908 }
0 commit comments