[pypy-svn] r72702 - pypy/branch/cpython-extension/pypy/module/cpyext

afa at codespeak.net afa at codespeak.net
Wed Mar 24 13:46:10 CET 2010


Author: afa
Date: Wed Mar 24 13:46:09 2010
New Revision: 72702

Modified:
   pypy/branch/cpython-extension/pypy/module/cpyext/methodobject.py
Log:
fix arguments passed to the C function


Modified: pypy/branch/cpython-extension/pypy/module/cpyext/methodobject.py
==============================================================================
--- pypy/branch/cpython-extension/pypy/module/cpyext/methodobject.py	(original)
+++ pypy/branch/cpython-extension/pypy/module/cpyext/methodobject.py	Wed Mar 24 13:46:09 2010
@@ -45,16 +45,24 @@
 @unwrap_spec(ObjSpace, W_Root, Arguments)
 def cfunction_descr_call(space, w_self, __args__):
     self = space.interp_w(W_PyCFunctionObject, w_self)
-    w_tuple = __args__.unpack_cpy()
-    ret = self.call(None, w_tuple)
+    args_w, kw_w = __args__.unpack()
+    w_args = space.newtuple(args_w)
+    if kw_w:
+        raise OperationError(space.w_TypeError,
+                             space.wrap("keywords not yet supported"))
+    ret = self.call(None, space.newtuple(args_w))
     return ret
 
 @unwrap_spec(ObjSpace, W_Root, Arguments)
 def cmethod_descr_call(space, w_self, __args__):
     self = space.interp_w(W_PyCFunctionObject, w_self)
-    w_tuple = __args__.unpack_cpy(1)
-    w_self = __args__.arguments_w[0]
-    ret = self.call(w_self, w_tuple)
+    args_w, kw_w = __args__.unpack()
+    w_instance = args_w[0]
+    w_args = space.newtuple(args_w[1:])
+    if kw_w:
+        raise OperationError(space.w_TypeError,
+                             space.wrap("keywords not yet supported"))
+    ret = self.call(w_instance, w_args)
     return ret
 
 def cmethod_descr_get(space, w_function, w_obj, w_cls=None):



More information about the Pypy-commit mailing list