summaryrefslogtreecommitdiff
path: root/extra/sip/fix-regression.patch
diff options
context:
space:
mode:
Diffstat (limited to 'extra/sip/fix-regression.patch')
-rw-r--r--extra/sip/fix-regression.patch26
1 files changed, 26 insertions, 0 deletions
diff --git a/extra/sip/fix-regression.patch b/extra/sip/fix-regression.patch
new file mode 100644
index 000000000..d4dc794ad
--- /dev/null
+++ b/extra/sip/fix-regression.patch
@@ -0,0 +1,26 @@
+
+# HG changeset patch
+# User Phil Thompson <phil@riverbankcomputing.com>
+# Date 1308852953 -3600
+# Node ID f9f4b161c94021c117e995eccba945d4dd3d0ed4
+# Parent df42f6bf92c8cd12dd7cc5a30231728a4c23ead4
+Fixed a regression introduced in the recent sipIsPyMethod() changes in the
+handling of special methods implemented by object (eg. __lt__).
+
+diff -r df42f6bf92c8 -r f9f4b161c940 siplib/siplib.c.in
+--- a/siplib/siplib.c.in Thu Jun 23 17:24:41 2011 +0100
++++ b/siplib/siplib.c.in Thu Jun 23 19:15:53 2011 +0100
+@@ -7604,9 +7604,10 @@
+ #endif
+
+ /*
+- * Check any possible reimplementation is not the wrapped C++ method.
++ * Check any possible reimplementation is not the wrapped C++ method or
++ * a default special method implementation..
+ */
+- if (cls_dict != NULL && (cls_attr = PyDict_GetItem(cls_dict, mname_obj)) != NULL && Py_TYPE(cls_attr) != &sipMethodDescr_Type)
++ if (cls_dict != NULL && (cls_attr = PyDict_GetItem(cls_dict, mname_obj)) != NULL && Py_TYPE(cls_attr) != &sipMethodDescr_Type && Py_TYPE(cls_attr) != &PyWrapperDescr_Type)
+ {
+ reimp = cls_attr;
+ break;
+