@@ -586,50 +586,43 @@ PyObject *PyErr_SetFromWindowsErrWithUnicodeFilename(
586586#endif /* MS_WINDOWS */
587587
588588PyObject *
589- PyErr_SetExcWithArgsKwargs (PyObject * exc , PyObject * args , PyObject * kwargs )
589+ PyErr_SetImportError (PyObject * msg , PyObject * name , PyObject * path )
590590{
591- PyObject * val ;
591+ PyObject * args , * kwargs , * error ;
592592
593- /* args must at least be an empty tuple */
593+ args = PyTuple_New ( 1 );
594594 if (args == NULL )
595- args = PyTuple_New (0 );
596-
597- val = PyObject_Call (exc , args , kwargs );
598- if (val != NULL ) {
599- PyErr_SetObject ((PyObject * ) Py_TYPE (val ), val );
600- Py_DECREF (val );
601- }
595+ return NULL ;
602596
603- return NULL ;
604- }
597+ kwargs = PyDict_New ();
598+ if (args == NULL )
599+ return NULL ;
605600
606- PyObject *
607- PyErr_SetFromImportErrorWithNameAndPath (PyObject * msg ,
608- PyObject * name , PyObject * path )
609- {
610- PyObject * args = PyTuple_New (1 );
611- PyObject * kwargs = PyDict_New ();
612- PyObject * result ;
601+ if (name == NULL )
602+ name = Py_None ;
613603
614604 if (path == NULL )
615605 path = Py_None ;
616606
607+ Py_INCREF (msg );
617608 PyTuple_SetItem (args , 0 , msg );
618609 PyDict_SetItemString (kwargs , "name" , name );
619610 PyDict_SetItemString (kwargs , "path" , path );
620611
621- result = PyErr_SetExcWithArgsKwargs (PyExc_ImportError , args , kwargs );
612+ /* args must at least be an empty tuple */
613+ if (args == NULL )
614+ args = PyTuple_New (0 );
615+
616+ error = PyObject_Call (PyExc_ImportError , args , kwargs );
617+ if (error != NULL ) {
618+ PyErr_SetObject ((PyObject * ) Py_TYPE (error ), error );
619+ Py_DECREF (error );
620+ }
622621
623622 Py_DECREF (args );
624623 Py_DECREF (kwargs );
625624
626- return result ;
627- }
628-
629- PyObject *
630- PyErr_SetFromImportErrorWithName (PyObject * msg , PyObject * name )
631- {
632- return PyErr_SetFromImportErrorWithNameAndPath (msg , name , NULL );
625+ return NULL ;
633626}
634627
635628void
0 commit comments