[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

AltStyle によって変換されたページ (->オリジナル) /