[pypy-svn] r74411 - pypy/trunk/pypy/module/cpyext

afa at codespeak.net afa at codespeak.net
Thu May 6 14:17:08 CEST 2010


Author: afa
Date: Thu May  6 14:17:06 2010
New Revision: 74411

Modified:
   pypy/trunk/pypy/module/cpyext/object.py
   pypy/trunk/pypy/module/cpyext/pyobject.py
   pypy/trunk/pypy/module/cpyext/typeobject.py
Log:
make_ref() does not really need the "nbitems" argument


Modified: pypy/trunk/pypy/module/cpyext/object.py
==============================================================================
--- pypy/trunk/pypy/module/cpyext/object.py	(original)
+++ pypy/trunk/pypy/module/cpyext/object.py	Thu May  6 14:17:06 2010
@@ -2,8 +2,9 @@
 from pypy.module.cpyext.api import cpython_api, generic_cpy_call, CANNOT_FAIL,\
         Py_ssize_t, PyVarObject, Py_TPFLAGS_HEAPTYPE,\
         Py_LT, Py_LE, Py_EQ, Py_NE, Py_GT, Py_GE, CONST_STRING
-from pypy.module.cpyext.pyobject import PyObject, PyObjectP, make_ref, from_ref
-from pypy.module.cpyext.pyobject import Py_IncRef, Py_DecRef
+from pypy.module.cpyext.pyobject import (
+    PyObject, PyObjectP, create_ref, from_ref, Py_IncRef, Py_DecRef,
+    track_reference)
 from pypy.module.cpyext.typeobject import PyTypeObjectPtr, W_PyCTypeObject
 from pypy.module.cpyext.pyerrors import PyErr_NoMemory, PyErr_BadInternalCall
 from pypy.objspace.std.objectobject import W_ObjectObject
@@ -21,7 +22,9 @@
     w_type = from_ref(space, rffi.cast(PyObject, type))
     if isinstance(w_type, W_PyCTypeObject):
         w_obj = space.allocate_instance(W_ObjectObject, w_type)
-        return make_ref(space, w_obj, items=size)
+        py_obj = create_ref(space, w_obj, items=size)
+        track_reference(space, py_obj, w_obj)
+        return py_obj
     assert False, "Please add more cases in _PyObject_New"
 
 @cpython_api([rffi.VOIDP_real], lltype.Void)

Modified: pypy/trunk/pypy/module/cpyext/pyobject.py
==============================================================================
--- pypy/trunk/pypy/module/cpyext/pyobject.py	(original)
+++ pypy/trunk/pypy/module/cpyext/pyobject.py	Thu May  6 14:17:06 2010
@@ -221,7 +221,7 @@
     if ptr: # init_typeobject() bootstraps with NULL references
         state.py_objects_r2w[ptr] = w_obj
 
-def make_ref(space, w_obj, steal=False, items=0):
+def make_ref(space, w_obj, steal=False):
     """
     Returns a reference to an intepreter object.
     """
@@ -233,7 +233,7 @@
         py_obj = state.py_objects_w2r[w_obj]
     except KeyError:
         assert not steal
-        py_obj = create_ref(space, w_obj, items)
+        py_obj = create_ref(space, w_obj)
         track_reference(space, py_obj, w_obj)
         return py_obj
 

Modified: pypy/trunk/pypy/module/cpyext/typeobject.py
==============================================================================
--- pypy/trunk/pypy/module/cpyext/typeobject.py	(original)
+++ pypy/trunk/pypy/module/cpyext/typeobject.py	Thu May  6 14:17:06 2010
@@ -338,7 +338,7 @@
     # - object.tp_bases is a tuple
     # - tuple.tp_bases is a tuple
 
-    # insert null placeholders to please make_ref()
+    # insert null placeholders to please create_ref()
     track_reference(space, lltype.nullptr(PyObject.TO), space.w_type)
     track_reference(space, lltype.nullptr(PyObject.TO), space.w_object)
     track_reference(space, lltype.nullptr(PyObject.TO), space.w_tuple)



More information about the Pypy-commit mailing list