[Image-SIG] PIL patch
Richard Jones
richard.jones@bom.gov.au
Wed, 27 May 1998 05:31:11 +0000
Fredrik,
Here's a small patch for path.c so PyPath_Flatten copes with sequences
a little better...
*** path.c.orig Wed May 27 05:04:43 1998
--- path.c Wed May 27 05:28:22 1998
***************
*** 111,116 ****
--- 111,120 ----
j = 0;
n = PyObject_Length(data);
+ /* just in case __len__ breaks (or doesn't exist) */
+ if (PyErr_Occurred()) {
+ return -1;
+ }
/* Allocate for worst case */
xy = malloc(2 * n * sizeof(double));
***************
*** 123,128 ****
--- 127,142 ----
for (i = 0; i < n; i++) {
double x, y;
PyObject *op = PySequence_GetItem(data, i);
+ if (!op) {
+ /* IndexError is OK */
+ if (PyErr_Occurred() == PyExc_IndexError) {
+ PyErr_Clear();
+ break;
+ } else {
+ free(xy);
+ return -1;
+ }
+ }
if (PyNumber_Check(op))
xy[j++] = PyFloat_AsDouble(op);
else if (PyArg_ParseTuple(op, "dd", &x, &y)) {