[Python-checkins] python/dist/src/Python errors.c,2.71,2.72

Neal Norwitz neal@metaslash.com
Thu, 3 Oct 2002 09:02:11 -0400


On Wed, Oct 02, 2002 at 10:10:41PM -0700, mhammond@users.sourceforge.net wrote:
>   
>   PyObject *
> + PyErr_SetFromErrnoWithFilename(PyObject *exc, char *filename)
> + {
> + 	PyObject *name = filename ? PyString_FromString(filename) : NULL;
> + 	PyObject *result = PyErr_SetFromErrnoWithFilenameObject(exc, name);
> + 	Py_DECREF(name);

Should be Py_XDECREF().

> --- 441,467 ----
>   	const char *filename)
>   {
> ! 	PyObject *name = filename ? PyString_FromString(filename) : NULL;
> ! 	PyObject *result = PyErr_SetExcFromWindowsErrWithFilenameObject(
> ! 						      PyExc_WindowsError,
> ! 						      ierr, name);
> ! 	Py_XDECREF(result);
> ! 	return result;

Should be DECREFing name, right?

> + 
> + #ifdef Py_WIN_WIDE_FILENAMES
> + PyObject *PyErr_SetFromWindowsErrWithUnicodeFilename(
> + 	int ierr,
> + 	const Py_UNICODE *filename)
> + {
> + 	PyObject *name = filename ? 
> + 	                 PyUnicode_FromUnicode(filename, wcslen(filename)) : 
> + 	                 NULL;
> + 	PyObject *result = PyErr_SetExcFromWindowsErrWithFilenameObject(
> + 						      PyExc_WindowsError,
> + 						      ierr, name);
> + 	Py_XDECREF(result);
> + 	return result;

Should be DECREFing name here too?

Neal