[pypy-commit] pypy default: expand test, fix translation

mattip pypy.commits at gmail.com
Tue May 30 02:45:34 EDT 2017


Author: Matti Picus <matti.picus at gmail.com>
Branch: 
Changeset: r91439:b17c6b5755f2
Date: 2017-05-30 09:44 +0300
http://bitbucket.org/pypy/pypy/changeset/b17c6b5755f2/

Log:	expand test, fix translation

diff --git a/pypy/module/cpyext/test/test_tupleobject.py b/pypy/module/cpyext/test/test_tupleobject.py
--- a/pypy/module/cpyext/test/test_tupleobject.py
+++ b/pypy/module/cpyext/test/test_tupleobject.py
@@ -164,12 +164,20 @@
 
     def test_setitem(self):
         module = self.import_extension('foo', [
-            ("set_after_use", "METH_NOARGS",
+            ("set_after_use", "METH_O",
              """
                 PyObject *t2, *tuple = PyTuple_New(1);
                 PyObject * one = PyLong_FromLong(1);
+                int res;
                 Py_INCREF(one);
-                int res = PyTuple_SetItem(tuple, 0, one);
+                res = PyTuple_SetItem(tuple, 0, one);
+                if (res != 0)
+                {
+                    Py_DECREF(tuple);
+                    return NULL;
+                }
+                Py_INCREF(args);
+                res = PyTuple_SetItem(tuple, 0, args);
                 if (res != 0)
                 {
                     Py_DECREF(tuple);
@@ -191,8 +199,9 @@
              """),
             ])
         import sys
+        s = 'abc'
         if '__pypy__' in sys.builtin_module_names:
-            raises(SystemError, module.set_after_use)
+            raises(SystemError, module.set_after_use, s)
         else:
-            module.set_after_use()
+            module.set_after_use(s)
 
diff --git a/pypy/module/cpyext/tupleobject.py b/pypy/module/cpyext/tupleobject.py
--- a/pypy/module/cpyext/tupleobject.py
+++ b/pypy/module/cpyext/tupleobject.py
@@ -135,17 +135,17 @@
     if not tuple_check_ref(space, ref):
         decref(space, py_obj)
         PyErr_BadInternalCall(space)
-    ref = rffi.cast(PyTupleObject, ref)
-    size = ref.c_ob_size
+    tupleobj = rffi.cast(PyTupleObject, ref)
+    size = tupleobj.c_ob_size
     if index < 0 or index >= size:
         decref(space, py_obj)
         raise oefmt(space.w_IndexError, "tuple assignment index out of range")
-    old_ref = ref.c_ob_item[index]
+    old_ref = tupleobj.c_ob_item[index]
     if pyobj_has_w_obj(ref):
         # similar but not quite equal to ref.c_ob_refcnt != 1 on CPython
         raise oefmt(space.w_SystemError, "PyTuple_SetItem called on tuple after"
                                         " use of tuple")
-    ref.c_ob_item[index] = py_obj    # consumes a reference
+    tupleobj.c_ob_item[index] = py_obj    # consumes a reference
     if old_ref:
         decref(space, old_ref)
     return 0


More information about the pypy-commit mailing list