Message114458
Thank you for the patch.
We should only iterate over the shorter set if the longer set is really a set and not just a sequence. PySequence_Contains may take O(n) time on a list, making the algorithm an expensive O(n**2) overall. I note that set_isdisjoint doesn't try to examine the lengths.
Also, since PyIter_Next returns NULL to indicate the end of the iteration OR to indicate an exception, the end of the function should look like this:
Py_DECREF(it);
if (PyErr_Occurred())
return NULL;
Py_RETURN_TRUE;
Other than those two issues, the patch looks good to me. |
|
Date |
User |
Action |
Args |
2010-08-20 21:35:27 | stutzbach | set | recipients:
+ stutzbach, rhettinger, terry.reedy, eric.araujo, daniel.urban |
2010-08-20 21:35:27 | stutzbach | set | messageid: <1282340127.65.0.367879505868.issue9212@psf.upfronthosting.co.za> |
2010-08-20 21:35:26 | stutzbach | link | issue9212 messages |
2010-08-20 21:35:25 | stutzbach | create | |
|