Author: Ronan Lamy <[email protected]>
Branch: rffi-parser
Changeset: r89153:e7350a8db95b
Date: 2016-12-18 17:17 +0000
http://bitbucket.org/pypy/pypy/changeset/e7350a8db95b/

Log:    Use object_h definitions in methodobject.py

diff --git a/pypy/module/cpyext/api.py b/pypy/module/cpyext/api.py
--- a/pypy/module/cpyext/api.py
+++ b/pypy/module/cpyext/api.py
@@ -293,7 +293,11 @@
         argtypesw = zip(self.argtypes,
                         [_name.startswith("w_") for _name in self.argnames])
         error_value = getattr(self, "error_value", CANNOT_FAIL)
-        if (isinstance(self.restype, lltype.Ptr)
+        if isinstance(self.restype, lltype.Typedef):
+            real_restype = self.restype.OF
+        else:
+            real_restype = self.restype
+        if (isinstance(real_restype, lltype.Ptr)
                 and error_value is not CANNOT_FAIL):
             assert lltype.typeOf(error_value) == self.restype
             assert not error_value    # only support error=NULL
diff --git a/pypy/module/cpyext/methodobject.py 
b/pypy/module/cpyext/methodobject.py
--- a/pypy/module/cpyext/methodobject.py
+++ b/pypy/module/cpyext/methodobject.py
@@ -11,22 +11,14 @@
     CONST_STRING, METH_CLASS, METH_COEXIST, METH_KEYWORDS, METH_NOARGS, METH_O,
     METH_STATIC, METH_VARARGS, PyObject, PyObjectFields, bootstrap_function,
     build_type_checkers, cpython_api, cpython_struct, generic_cpy_call,
-    PyTypeObjectPtr)
+    PyTypeObjectPtr, object_h)
 from pypy.module.cpyext.pyobject import (
     Py_DecRef, from_ref, make_ref, as_pyobj, make_typedescr)
 
 PyCFunction_typedef = rffi.COpaquePtr(typedef='PyCFunction')
-PyCFunction = lltype.Ptr(lltype.FuncType([PyObject, PyObject], PyObject))
-PyCFunctionKwArgs = lltype.Ptr(lltype.FuncType([PyObject, PyObject, PyObject],
-                                               PyObject))
-
-PyMethodDef = cpython_struct(
-    'PyMethodDef',
-    [('ml_name', rffi.CONST_CCHARP),
-     ('ml_meth', PyCFunction_typedef),
-     ('ml_flags', rffi.INT_real),
-     ('ml_doc', rffi.CONST_CCHARP),
-     ])
+PyCFunction = object_h.definitions['PyCFunction']
+PyCFunctionKwArgs = object_h.definitions['PyCFunctionWithKeywords']
+PyMethodDef = object_h.definitions['PyMethodDef']
 
 PyCFunctionObjectStruct = cpython_struct(
     'PyCFunctionObject',
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to