Kaydet (Commit) c5e060de authored tarafından Neal Norwitz's avatar Neal Norwitz

_PyWeakref_GetWeakrefCount() now returns a Py_ssize_t instead of long.

üst 5fb9c20f
...@@ -62,7 +62,7 @@ PyAPI_FUNC(PyObject *) PyWeakref_NewProxy(PyObject *ob, ...@@ -62,7 +62,7 @@ PyAPI_FUNC(PyObject *) PyWeakref_NewProxy(PyObject *ob,
PyObject *callback); PyObject *callback);
PyAPI_FUNC(PyObject *) PyWeakref_GetObject(PyObject *ref); PyAPI_FUNC(PyObject *) PyWeakref_GetObject(PyObject *ref);
PyAPI_FUNC(long) _PyWeakref_GetWeakrefCount(PyWeakReference *head); PyAPI_FUNC(Py_ssize_t) _PyWeakref_GetWeakrefCount(PyWeakReference *head);
PyAPI_FUNC(void) _PyWeakref_ClearRef(PyWeakReference *self); PyAPI_FUNC(void) _PyWeakref_ClearRef(PyWeakReference *self);
......
...@@ -12,6 +12,9 @@ What's New in Python 2.5 beta 3? ...@@ -12,6 +12,9 @@ What's New in Python 2.5 beta 3?
Core and builtins Core and builtins
----------------- -----------------
- _PyWeakref_GetWeakrefCount() now returns a Py_ssize_t, it previously
returned a long (see PEP 353).
- Bug #1515471: string.replace() accepts character buffers again. - Bug #1515471: string.replace() accepts character buffers again.
- Add PyErr_WarnEx() so C code can pass the stacklevel to warnings.warn(). - Add PyErr_WarnEx() so C code can pass the stacklevel to warnings.warn().
......
...@@ -17,7 +17,7 @@ weakref_getweakrefcount(PyObject *self, PyObject *object) ...@@ -17,7 +17,7 @@ weakref_getweakrefcount(PyObject *self, PyObject *object)
if (PyType_SUPPORTS_WEAKREFS(object->ob_type)) { if (PyType_SUPPORTS_WEAKREFS(object->ob_type)) {
PyWeakReference **list = GET_WEAKREFS_LISTPTR(object); PyWeakReference **list = GET_WEAKREFS_LISTPTR(object);
result = PyInt_FromLong(_PyWeakref_GetWeakrefCount(*list)); result = PyInt_FromSsize_t(_PyWeakref_GetWeakrefCount(*list));
} }
else else
result = PyInt_FromLong(0); result = PyInt_FromLong(0);
...@@ -37,12 +37,12 @@ weakref_getweakrefs(PyObject *self, PyObject *object) ...@@ -37,12 +37,12 @@ weakref_getweakrefs(PyObject *self, PyObject *object)
if (PyType_SUPPORTS_WEAKREFS(object->ob_type)) { if (PyType_SUPPORTS_WEAKREFS(object->ob_type)) {
PyWeakReference **list = GET_WEAKREFS_LISTPTR(object); PyWeakReference **list = GET_WEAKREFS_LISTPTR(object);
long count = _PyWeakref_GetWeakrefCount(*list); Py_ssize_t count = _PyWeakref_GetWeakrefCount(*list);
result = PyList_New(count); result = PyList_New(count);
if (result != NULL) { if (result != NULL) {
PyWeakReference *current = *list; PyWeakReference *current = *list;
long i; Py_ssize_t i;
for (i = 0; i < count; ++i) { for (i = 0; i < count; ++i) {
PyList_SET_ITEM(result, i, (PyObject *) current); PyList_SET_ITEM(result, i, (PyObject *) current);
Py_INCREF(current); Py_INCREF(current);
......
...@@ -6,10 +6,10 @@ ...@@ -6,10 +6,10 @@
((PyWeakReference **) PyObject_GET_WEAKREFS_LISTPTR(o)) ((PyWeakReference **) PyObject_GET_WEAKREFS_LISTPTR(o))
long Py_ssize_t
_PyWeakref_GetWeakrefCount(PyWeakReference *head) _PyWeakref_GetWeakrefCount(PyWeakReference *head)
{ {
long count = 0; Py_ssize_t count = 0;
while (head != NULL) { while (head != NULL) {
++count; ++count;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment