[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