[Image-SIG] PIL patch
Fred L. Drake
Fred L. Drake, Jr." <fdrake@acm.org
Wed, 27 May 1998 09:23:16 -0400 (EDT)
Richard Jones writes:
> + /* IndexError is OK */
> + if (PyErr_Occurred() == PyExc_IndexError) {
> + PyErr_Clear();
Richard,
This is an inappropriate use of PyErr_Occurred() in recent versions
of Python (starting from when the standard exceptions became
classes). The right way to make this test is:
/* IndexError is OK */
if ((PyErr_Occurred() != NULL)
&& PyErr_ExceptionMatches(PyExc_IndexError)) {
PyErr_Clear();
This allows the sequence implementation to raise a subclass of
IndexError and this will still work. Note that PyErr_Occurred() must
be true before calling PyErr_ExceptionMatches().
-Fred
--
Fred L. Drake, Jr.
fdrake@cnri.reston.va.us
Corporation for National Research Initiatives
1895 Preston White Drive Reston, VA 20191