Commit dc9c9ea5 authored by Stefan Behnel's avatar Stefan Behnel

fix method calls on Cython generated Python classes

parent 68f891c8
......@@ -2483,7 +2483,7 @@ class UnboundMethodNode(ExprNode):
def generate_result_code(self, code):
code.putln(
"%s = __Pyx_PyMethod_New(%s, 0, %s); %s" % (
"%s = PyMethod_New(%s, 0, %s); %s" % (
self.result_code,
self.function.py_result(),
self.class_cname,
......
......@@ -416,9 +416,7 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
code.putln("#if PY_MAJOR_VERSION >= 3")
code.putln(" #define PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y)")
code.putln(" #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, klass)")
code.putln("#else")
code.putln(" #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass)")
code.putln(" #define PyMethod_New(func, self, klass) PyInstanceMethod_New(func)")
code.putln("#endif")
code.putln("#ifndef __stdcall")
......
......@@ -21,16 +21,12 @@ None
[1, 2, (3, 4), 5, 6]
"""
cdef extern from "Python.h":
ctypedef class __builtin__.list [ object PyListObject ]:
pass
class A:
def append(self, x):
print u"appending"
return x
cdef class B(list):
class B(list):
def append(self, *args):
for arg in args:
list.append(self, arg)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment