summaryrefslogtreecommitdiff
path: root/extra/sip/fix-regression.patch
blob: d4dc794add705bd27b0533c86775829a0d3832e8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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;