mirror of
https://github.com/python/cpython.git
synced 2025-11-02 03:01:58 +00:00
Merged revisions 65677-65678,65683 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r65677 | martin.v.loewis | 2008-08-14 17:54:27 +0200 (Do, 14 Aug 2008) | 3 lines Make obj an owned reference in Py_buffer; this checkin was missing from the patch for #3139. ........ r65678 | martin.v.loewis | 2008-08-14 17:56:07 +0200 (Do, 14 Aug 2008) | 2 lines Properly INCREF reference in Py_buffer. ........ r65683 | martin.v.loewis | 2008-08-14 22:12:06 +0200 (Do, 14 Aug 2008) | 2 lines Fix memory leak: Always DECREF obj in PyBuffer_Release. ........
This commit is contained in:
parent
23e3856b1e
commit
74bbea7ed7
1 changed files with 6 additions and 5 deletions
|
|
@ -670,6 +670,8 @@ PyBuffer_FillInfo(Py_buffer *view, PyObject *obj, void *buf, Py_ssize_t len,
|
||||||
}
|
}
|
||||||
|
|
||||||
view->obj = obj;
|
view->obj = obj;
|
||||||
|
if (obj)
|
||||||
|
Py_INCREF(obj);
|
||||||
view->buf = buf;
|
view->buf = buf;
|
||||||
view->len = len;
|
view->len = len;
|
||||||
view->readonly = readonly;
|
view->readonly = readonly;
|
||||||
|
|
@ -693,11 +695,10 @@ void
|
||||||
PyBuffer_Release(Py_buffer *view)
|
PyBuffer_Release(Py_buffer *view)
|
||||||
{
|
{
|
||||||
PyObject *obj = view->obj;
|
PyObject *obj = view->obj;
|
||||||
if (!obj || !Py_TYPE(obj)->tp_as_buffer || !Py_TYPE(obj)->tp_as_buffer->bf_releasebuffer)
|
if (obj && Py_TYPE(obj)->tp_as_buffer && Py_TYPE(obj)->tp_as_buffer->bf_releasebuffer)
|
||||||
/* Unmanaged buffer */
|
Py_TYPE(obj)->tp_as_buffer->bf_releasebuffer(obj, view);
|
||||||
return;
|
Py_XDECREF(obj);
|
||||||
Py_TYPE(obj)->tp_as_buffer->bf_releasebuffer(obj, view);
|
view->obj = NULL;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
PyObject *
|
PyObject *
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue